Un Save WHDLoad agit il comme un pointeur de pile assembleur ?Un

14 sujets de 1 à 14 (sur un total de 14)

  • bigbernie

      #272907

      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.

       

       

       

       

       

       

       

      cyb0rg

        #272908

        tu ne reviendrais pas a la charge pour civilization en version whdload …

        Only amiga makes it possible
        XTR Games
        Magic Productions
        tilde

        __sam__

          #272915

          Ca y ressemble 😉

          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.)

          bigbernie

            #272919

            Bonsoir

            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

            bigdan

              #273018

              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).

              thellier

                #273024

                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 size

                Admin

                bigdan

                  #273027

                  Thellier : tu es trop gentil 😉

                  bigbernie

                    #273031

                    Merci

                    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……

                    .

                     

                     

                     

                     

                     

                     

                     

                    __sam__

                      #273040

                      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.)

                      bigbernie

                        #273044

                        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.

                         

                         

                         

                         

                         

                         

                        __sam__

                          #273052

                          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.)

                          bigbernie

                            #273079

                            Bonjour

                            Quelle compétence !   Et le style explicatif qui va avec.

                            Je ne chercherai plus a comprendre le mécanisme logique de whdl.

                            Bonne continuation et encore merci.

                            __sam__

                              #273084

                              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.)

                              bigbernie

                                #273101

                                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

                              Amiga Impact