APPLICATIONS ★ Cours de Bidouilles: LMDSPTDVIDUQSTDS "Méthode De Septh Pour Trouver Des Vies Infinies Dans Les Jeux Qui Sont Trop Difficiles Sinon" (3e et dernière partie) ★

Cours de Bidouilles - Lmdsptdviduqstds 3

Avant de continuer ce chef-d'oeuvre unique au monde qu'est La Méthode De Septh Pour Trouver Des Vies Infinies Dans Les Jeux Qui Sont Trop Difficiles Sinon, je tiens à vous adresser solennellement, à la fois mes remerciements et mon admiration. Mine de rien, vous êtes très nombreux à utiliser cette méthode, et la plupart d'entre vous m'écrivent pour en faire profiter les autres. C'est vraiment très sympa, ça fait plaisir de savoir qu'on ne se casse pas le cul QUE pour des clopinettes...

Bien, maintenant que cela est dit, essayons de faire le point. On a ISS d'un côté, Discology de l'autre, et notre bon vieux CPC des familles au centre. Le but de la manoeuvre est de mettre des vies infinies dans cet excellent jeu d'Electric Dreams, sachant qu'on est déjà parvenu à en mettre 255 (ce qui. somme toute, n'est déjà pas si mal). Au point où nous en étions resté la dernière fois, on savait que le programme stockait le nombre de vies à l'adresse &B02D. ce qui va nous permettre d'empêcher ce nombre de diminuer. Il nous suffit maintenant de rechercher, sur la disquette, toutes les fois où l'on rencontre une référence à cette adresse. En d'autres termes, il faut rechercher les octets hexadécimaux 2D-B0. Je rappelle aux cancres et apprends aux petits nouveaux, qu'en assembleur Z80. les adresses sont écrites en mémoire à l'envers, c'est-à-dire l'octet de poids faible d'abord, puis l'octet de poids fort. Bref, Dîsco nous trouve ça en deux temps trois mouvements (y'en a que deux) :

Adresse B02D

P9,   S42,   A00DD
P9,   S44,   A00CA

On a déjà rencontré la seconde occurrence y'a pas longtemps, on peut donc l'oublier. Quant à la première... On l'a encore dans le baba, c'est pas celle-là non plus. Aïe ! Aïe ! Aïe ! Ça y est. ma méthode foire complètement. Du coup, je vais continuer dans la théorie, vous aurez les vraies vies infinies juste après.

Or donc, dans 70 % des cas, les programmeurs procèdent tous de la même manière pour décrémenter le nombre de vies. Je vous ai déjà expliqué comment ils font la dernière fois, mais bon, ça fait quand même deux mois de cela, je vais donc vous la rappeler :

---------------------------------------------------------
Instruction       Codes HEXA      Le même, en Basic
---------------------------------------------------------
LD  A,(&B02D)     3A-2D-B0        a=PEEK(&B02D)
DEC A             3D              a=a-l
LD  (&B02D),A     32-2D-B0        POKE &B02D,a
---------------------------------------------------------

Pour empêcher la décrémentation, il suffit d'enlever le 3D (qui correspond au code DEC A). Seulement voilà, en assembleur, on ne vire pas une ligne comme en Basic ; il faut la remplacer par une autre, de même longueur (un octet). Mais comme on ne peut pas non plus remplacer notre octet par n'importe quoi, on choisira le 00, qui correspond à l'instruction assembleur NOP, que l'on pourrait traduire en Basic par REM. Une fois la modification effectuée, les trois lignes ci-dessus deviennent :

---------------------------------------------------------
Instruction       Codes HEXA      Le même, en Basic
---------------------------------------------------------
LD  A,(&B02D)     3A-2D-B0        a=PEEK(&B02D)
NOP               00              REM
LD  (&B02D),A     32-2D-B0        POKE (&B02D),a
---------------------------------------------------------

Et toc, le nombre de vies ne diminue plus. C'est facile, c'est pas cher, et ça rapporte gros.

RESUME

Voici résumée la marche à suivre pour mettre des vies infinies dans un jeu :

  1. Chercher l'adresse en mémoire où est stocké le nombre de vies. Pour ce faire, rechercher la chaîne 3E-Nom-bre de vies-32 ;
  2. Cette chaîne étant généralement suivie d'une adresse, la noter (en n'oubliant pas d'inverser les octets de poids fort et de poids faible) ;
  3. Rechercher ensuite sur la disquette toutes les références à cette adresse ;
  4. Parmi toutes les occurrences, on trouve généralement la chaîne 3A-Adresse (2 octets)-3D-32-Adresse (2 octets). Remplacer alors le 3D par 00, sauvegarder le tout, et le tour est joué.

VIES INFINIES DANS ISS

Bon, c'est vrai que j'ai un peu l'air d'un con, mais ma méthode ne fonctionne pas avec ISS. Pourquoi ? Parce ce que, justement, cl malgré un bon départ évident. ISS ne fait pas partie des 70 % de jeux auxquels la méthode est applicable (je ne vous l'ai pas encore dit. mais je recherchais les vies infinies en même temps que vous. Ça doit être ça qu'on appelle à la télé les aléas du direct...).

Voici donc quand même les vies infinies, avec quelques explications pour les plus branchés en assembleur. En parcourant 3e programme, j'ai trouvé un LD IX.&B000 qui traînait quelque part. Etant donné que l'adresse qu'on cherchait était &B02D, je me suis dit "tiens, il se pourrait bien que cet de programmeur ait utilisé l'adressage indexé ! C'est pourquoi j'ai recherché partout un DEC (IX+&2D). Pourquoi &2D ? Tout simplement parce que c'est la différence de &B02D avec &B000. Disco l'a trouvé en moins de temps qu'il ne m'en a fallu pour boire un coca. Hop, remplace par trois NOP, les vies infinies étaient trouvées ! C'est ce qu'on appelle avoir du pot, d'accord, mais ça marche...

Conclusion : pour les vies infinies dans ISS d'Electric Dreams, il faut rechercher la suite DD-35-2D et la remplacer par 00-00-00. Merci, tonton Septh.

Amstrad 100 % n°018 - septembre 89

★ LICENCE: COMMERCIALE
★ ANNÉES: 1989
★ AUTEUR(S): ???

Page précédente : Cours de Bidouilles - Lmdsptdviduqstds 2

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 046 millisecondes et consultée 502 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.