Un Save WHDLoad agit il comme un pointeur de pile assembleur ?Un
14 sujets de 1 à 14 (sur un total de 14)
-
Bonjour
Question pour des super balezes comme il y en a des tas ici.
Le fonctionnement des SAVE de whdl.
A chaque fois que whdl plante ( ou bien le jeu plante, ou bien je coupe la machine sans « sortir » de whdl ou bien  ça le fait tout seul,  voici  ce qui se produit.
J’ai le dernier save dans DH0. C’est a dire bien enregistrĂ© sur le HD.
Le plantage a pour effet 2 possibilités.
Ou bien le dernier save INSCRIT SUR LE HD est totalement vĂ©rolĂ© et le jeu fait n’importe quoi.  ArmĂ©es disparaissent, villes disparaissent, mais d’autres restent etc etc..
Dans un logiciel normal une fois qu’un save est enregistrĂ© tout peut planter ( sauf le HD !)  mais le save reste. Pas avec whdl.
Ou bien alors le MEME SAVE disparait complĂ©tement et se charge a la place l’avant dernier.
J’ai renoncĂ© a comprendre ce comportement hallucinant. En 30 ans d’informatique,  ou bien un save est inscrit  sur le HD ou bien il ne l’est pas. De mĂȘme que si je travaille sur un  disque virtuel  et que je choisis d’enregistrer en non virtuel ( ce que je fais avec whdl) l’enregistrement ne va pas disparaitree ou se veroler en cas de « plantage ».
Je me suis souvenu….presque 30 ans en arriĂšre, de l’assembleur 68.000 Motorola Atari,  que ça me rappelait le pointeur de pile.
Comme chacun sait ici le pointeur de pile dispatche les  instructions vers les registres d’adresses ou de donnĂ©es et c’est une pile ( un tas ) en mode LIFO.
Si par exemple » j’atomise  » « pante » le dernier jeton qui vient d’etre mis, eh bien sur la mĂȘme pile il existe l’ensemble de tous les autres jetons d’instruction en dessous.
Le comportement hallucinant de whdl question saves (uniquement) m’a soudain fait penser a la gestion du pointeur de pile assembleur.
Si un plantage abĂźme ou efface la derniĂšre instruction, celle qui est au dessus, Â les autres vont rester. Â Dans une pile de bouquins, si on massacre ( comme sait si bien le faire whdl) celui du dessus, les autres en dessous sont lĂ .
Si un plantage abime le dernier save de whdl ( Sur le HD bien sur) et les plantages font TOUJOURS ça, il arrive de recupĂ©rer le save prĂ©cĂ©dent en dessous. Sauver au dessus d’un autre save veut dire dans l’univers entier que le save precedent a Ă©tĂ© Ă©crasĂ©. Pas avec whdl. 100000 logiciels font ça sauf whdl.
Ca deviendrait compréhensible si ce soft fonctionnait comme une pile ( pour les saves).
Dans une pile assembleur les  instructions PUSH et POP n’Ă©crasent pas les instructions prĂ©cedents, ça rajoute une couche a chaque fois a dĂ©piler ensuite.
Certains de vous connaissent ils le fonctionnement des saves dans whdl ?
Bonne soirée et bon weekend.
tu ne reviendrais pas a la charge pour civilization en version whdload …
Only amiga makes it possible
XTR Games
Magic Productions
tildeBonsoir
Quelle importance puisque je parle de la programmation du soft.
Oubliez civ.  Ce soft fonctionne maintenant normalement et d’autres aussi sauf lorsque ça plante.  J’ai exactement les mĂȘmes  effets avec K 240 et UFO.
Ca m’intrigue toujours  de savoir comment whdl save.
D’un seul coup la similitude avec le pointeur de pile LIFO m’est revenue.
* Un Save whdl.  Tu retires ( le plantage le retire ou le pollue)  le dernier save effectué et ensuite ça restitue le save précédent cache en dessus.
*Dans les centaines de milliers de logiciels existants  tu saves janvier. Ensuite tu saves fevrier PAR DESSUS et janvier disparait totalement.
*Dans un pointeur de pile tu empiles les instructions. Lorsque tu supprimes l’instruction la plus haute eh bien il reste l’autre en dessous invisible mais bien rĂ©elle.
Comme ici la plupart d’entre vous sont programmeurs je me permets donc de poser la question qui devrait etre intĂ©ressante ?
WHDL ne sauve t il pas en accumulant  ( combien de fois possibles ?) les saves les unes sur les autres SANS SUPPRIMER LA PRECEDENTE ?
Ma question a un rapport exclusivement avec  les plantages et l’action sur les saves. .
Je sauve fevrier sur janvier. Je quitte whdl normalement et je le relance.  C’est bien fevrier qui est restituĂ©.
Je sauve fevrier sur janvier. Je plante whdl. Et c’est janvier qui est restituĂ©. Fevrier garde son nom mais n’existe plus ou est boguĂ©.
Exactement comme les empilements  des pointeurs LIFO.
Si pour des experts comme vous ça n’est pas Ă©tonnant alors la ça serait incomprĂ©hensible.
Je veux seulement comprendre comment fait whdl pour sauver sur le disque dur.  Je tente dans cet onglet réservé aux cracks.
Bonne nuit.
Admin Bigbernie : au lieu de poster des posts de 45 lignes ou plus, tu lis la doc de WHDLoad et si tu as une question tu Ă©cris un mail de 4 ou 5 lignes en anglais ou allemand Ă l’auteur de WHDLoad ?
Bon je retourne bosser sur quelques chose de constructif (enfin j’espĂšre).
Hello
Cela n’a probablement rien Ă voir avec la pile…>Dans un pointeur de pile tu empiles les instructions.
Pas vraiment : en fait tu empile les adresses de retour Ă ton programme cad que si tu appelle un « sous programme » la pile stocke oĂč « revenir » une fois ce sous prog fini
La pile stocke aussi les parametres Ă transmettre Ă ce sous prog
En plus ce sous prog peut utiliser une part de cette pile pour y stocker des variables temporaires (les vars locales)Le pointeur de pile ne fait pas grand chose en fait il stocke juste « oĂč en est » la pile cad que si on compare Ă une pile de 12 assiette alors le pointeur de pile ne contient aucune assiette mais la valeur 12
Trouvé dans le package whdload :
; :Modul. savegame.s
; :Contents. routine for multiple save game support
; it creates an interface from which the user can choice between
; 9 different savegames, a description can be entered for each
; savegame, all savegames will be stored in one single file which
; grows dynamically
; the savegames must have always the same sizeMerci
bigdan ne me reproche pas mon insistance.
TOUS les ennuis, mais absolument TOUS avec ZERO exceptions que j’ai eu avec whdl sur plusieurs jeux ont un rapport avec les saves.
Maintenant avec la nouvelle version de whdl ça va beaucoup mieux mais  en cas de plantage c’est encore et toujours  les saves qui trinquent.
Je pense etre normal en m’interrogeant
Je vais  tenter de reformuler en anglais court et precis ceci :
Je sauve sur DHO. Â Disons janvier. Â SUR LE HD DONC
Je resauve AU MEME ENDROIT février.
Je quitte le jeu en « retournant au DOS »
Je relance et je récupÚre février qui est mon dernier save.
Tout fonctionne bien.
Maintenant je fais pareil mais au lieu de quitter normalement je coupe la machine. Ou alors ça bogue. Bref, je ne quitte pas normalement.
A la restitution le CONTENU de fevrier est,  soit totalement Ă©liminĂ© ou bien totalement bogue  mais le nom du save fevrier existe toujours. et c’est l’ancien  contenu de janvier ECRASE ( en principe) qui reapparait.
Ca le fait avec CIV 1 mais aussi K 240 Â ( je n’ai que 3 jeux WHDL)
Lorsque je pose des question de programmation ou d’ennuis structurels bizarres  soit sur les Developpeurs français soit sur Labo Microsoft  je n’ai pas besoin de me reexpliquer 50 fois pendant 2 ans pour obtenir une explication informatique.
Ici vous ĂȘtes des experts Amiga et  certains aussi whdl …..Ce genre de fonctionnement ne vous Ă©tonne pas ? Et c’est moi qui « vous » ennuie.
whdl doit etre un soft vraiment extraterrestre !
Donc je ne crois pas du tout  que le site WHDL me répondra  mais bon. Je vais y penser.
bigdan dĂ©solĂ© d’aimer comprendre et d’avoir la tĂ©nacitĂ© d’un morpion sur une paire de balloches.
Bonne soirĂ©e et ..pas grave, tout fonctionne sauf……
.
En soit ce que fait WHDL dĂ©passe de loin ce que font les dĂ©veloppeurs Francais de Microsoft. En gros WHDL ne devrait *pas* marcher puisqu’il arrive Ă faire marcher des jeux concus pour bouziller l’OS hĂŽte et accĂ©der aux resources de façon bien crado en tapant dans le hardware.
Ce qu’il fait est une prouesse qui marche (relativement) bien tant qu’on reste dans les clous avec les jeux supportĂ©s. En particulier sortir proprement du jeu me semble impĂ©ratif si on ne veut pas corrompre l’image des disquettes.
Rends toi compte: il remappe les accĂšs physique hors-OS aux diskette dans un bon fichier sur ton disk dur alors que le jeu a pris la main complĂšte sur le matĂ©riel en bouzillant totalement l’OS. C’est miraculeux que ca marche comme approche car l’amiga n’a absolument aucun support propre pour la virtualisation.
De part sa spĂ©cificitĂ© et sa technicitĂ©, on ne peux pas comparer WHDLoad a un gentil soft Ă la microsoft. Les 30 ans d’experience en informatique microsoftienne ne servent en fait Ă rien quand on raisonne avec WHDLoad. Ce sont plutĂŽt les 10-15ans de dĂ©plombage de jeux sur amiga qui comptent pour comprendre comment marche WHDLoad et quelles ruses il est obligĂ© de dĂ©ployer. Or qui dit ruses, dit limitations qu’on ne doit absolument pas dĂ©passer si on veut que ca marche bien. Du coup, pour moi les corruptions que tu observes sont logiques puisque tu sors (involontairement ou pas) des specs d’un usage normal du slave.
NĂ©amoins ne desespĂšre pas et pose ton pb au dĂ©veloppeur. Si tu poses ca bien sans le prendre de haut avec des expĂ©riences de 30ans ans dans un autre contexte sans rapport et qu’il trouve tes besoins intĂ©rĂ©ssants, il se penchera sur ton soucis. Mais ne sois pas pressĂ©. Tout ceci est du bĂ©nĂ©volat sur un prog qui en principe ne devrait pas fonctionner du tout.
Samuel.
Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne đ
A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
A500 Vampire V2+ ^8^ đ
(mais aussi TO8, TO8D, TO9. Groupe PULS.)Bonsoir
Un grand merci.
Apres t’avoir lu je ne pense pas que je vais devoir dĂ©ranger les concepteurs de WHDL pour ça.  Il s’agit bien d’un soft extraterrestre donc ma logique Microsoft  ne sert a rien.
Je n’utilise que 3 jeux avec WHDL sur Amiga. Tous les autres  sont stockes sous forme dms lha lzx.
Et ça existe aussi sous DOS. JAMAIS le plus petit ennui avec DosBox.
Donc je comparais Dosbox avec WHDL
Tous les jeux Amiga sont quasiment sous DOS.  Je me triture le cerveau et j’Ă©nerve certains pour une utilitĂ© pratique de zĂ©ro.  Je n’ai pas besoin de whdl pour jouer a tout ça. J’ai TOUT sur CD de compiles ou bien sous DOS.
Disons que ce soft me met dans la situation de  Champollion devant la pierre de Rosette.
Merci beaucoup pour ton attention. Â Je laisse tomber.
DĂ©solĂ© d’avoir souvent ennuyĂ© d’autres bis repetita.
Bonne continuation.
Attends, sur PC tu ne tapes pas le hardware directement, tu passes par le bios qu’on peut trĂšs simplement intercepter et rĂ©-interprĂ©ter. C’est beaucoup moins complexe. Sur amiga les jeux sur diskette zigouillent quasiment tous l’OS sous-jacent et les routines correspondantes au bios ne sont plus utilisables et toutes les interceptions que l’OS permet sont inapplicables.
Quant Ă DosBox tout y est Ă©mulĂ©: du CPU au hardware. Du coup c’est hyper stable. On ne tape pas dans le hard rĂ©el, mais dans le hard Ă©mulĂ©. Par contre c’est beaucoup plus lent. Typiquement un dosbox sur Pentium 200mhz est incapable de faire jouer les jeux qui tournent nativement sur cette (veille) machine. Tout juste fait il marcher les jeux pour 286@6mhz (https://www.dosbox.com/wiki/Performance#Emulated_CPU_equivalency). Mais avec cette technique, il est stable puisque mĂȘme les accĂšs crados au matĂ©riels sont interceptĂ©s comme il faut et tu ne tombes pas sur des jeux qui font foirer les sauvegardes quand ils plantent.
Bref dosbox et WHDLoad ne sont pas comparables. Si tu veux comparer dosbox Ă quelque chose ce serait un UAE je pense. Quant Ă WHLoad, oui c’est vraiment un soft d’aliens. Au dĂ©but des amiga, personne n’aurait cru qu’un tel pogramme Ă©tait faisable tellement les jeux sur diskette prennaient la main sur le matĂ©riel en effacant l’OS au passage.
Samuel.
Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne đ
A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
A500 Vampire V2+ ^8^ đ
(mais aussi TO8, TO8D, TO9. Groupe PULS.)Bah pour la culture gĂ©nĂ©rale, tu peux toujours lire le code source dans: http://whdload.de/whdload/WHDLoad_dev.lha. C’est toujours instructif et permet de confirmer ou pas ta thĂ©orie de la sauvegarde par empilage (Src\sources\whdload\savegame.s). Allez une suggestion: le comportement que tu observes est liĂ© Ă la façon dont le jeu fait ses sauvegardes de son cotĂ©.
Au fait il y a une typo dans le titre Ă corriger đ
Samuel.
Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne đ
A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
A500 Vampire V2+ ^8^ đ
(mais aussi TO8, TO8D, TO9. Groupe PULS.)Titre rectifié.
Les jeux concernés je les ai et peut encore les utiliser a partir de disquettes installables.
DIFFERENTES version,  pas une seule mais au moins 4,   dont une partie m’ont Ă©tĂ© envoyĂ©es par des forumers d’ici se comportent comme  ça. C’est bien whdl qui fait ça.  Meme les slaves tirĂ©s de disquette originales non crackĂ©es faites par le cĂ©lĂšbrĂ© Psygore.
Il n’y a pas que ça mais je ne cherche meme plus.
A  la premiĂšre utilisation d’un jeu  le temps dâaccĂšs pour sauver est beaucoup plus long qu’aprĂšs 4 ou 5 saves. Hors le path vers la position des saves est  connu.  On dirait que whdl tatonne pour suivre un chemin qu’il connait. Apres ça se calme.
Je ne cherche pas a comprendre  mais il y a encore mieux..ou pire
Avec la version 18.0  au bout de 4/5 saves le dĂ©lai Ă©tait d’environ 5 secondes.
Avec la version 18.2  ça met TOUJOURS  15 secondes pour sauver.
Meme au bout de 50 saves au meme endroit. Le temps de sauver a triplé.
La version 18.0 me causait des tas d’ennuis mais plus la version 18.2
Par exemple ça jouait tout seul quasiment non stop.  Plus avec 18.2
Qui elle met 3 fois plus de temps.
Comment veux tu qu’un utilisateur mĂȘme avec une trĂšs grande habitude  des logiciels puisse comprendre  quelque chose a ça.
whdl doit ĂȘtre comme la singularitĂ© a lâintĂ©rieur des trous noirs.
Les thĂ©ories soit de la gravitation soit de la physique quantique sont incapables  d’expliquer ce que c’est.
Ca renvoie des tas d’infinis qui sont une maniĂšre de rĂ©pondre n’importe quoi
Comme la logique perso vs la logique de whdl. Â Qui est capable de renvoyer n’importe quoi a l’utilisateur.
Merci pour tout et ça n’est pas une demande de solution.
Mon cerveau ne travaille pas sous Peyotl ou LSD.
Bonne continuation.
14 sujets de 1 à 14 (sur un total de 14)
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › DĂ©veloppement › Un Save WHDLoad agit il comme un pointeur de pile assembleur ?Un
