APPLICATIONSCOURS DE BIDOUILLAGE ★ JOYSTICK n°12 - Cours de Bidouilles ★

Patrice Maubert - Cours de Bidouilles - Joystick N12Applications Cours De Bidouillage

Salut les kids.Je vois d'ici les regards malicieux, de jeunes adolescents boutonneux que vous êtes, attendre avec délectation que je commence l'introduction de ce cours en abordant mon sujet d'actualité favori : l'Irak. Alors que justement celui-ci ne l'est plus (d'actualité). Et bien vous avez tout faux, puisque je ne vais pas vous parler de l'Irak, mais du nouvel Ajax WC, que les écologistes projettent d'utiliser pour nettoyer le trou de la couche d'ozone. Remarquez bien que personnellement j'utilise du déodorant aérosol depuis des années dans mes WC, et le trou ne s'est toujours pas agrandi...Mais ceci n 'a aucun rapport avec les bidouilles me direz-vous. C'est exact vous répondrai-je...

FLASH-BACK

Le mois dernier, les plus courageux d'entre vous n'avaient pas hésité à taper le copieux listing que je vous avais proposé. Et n'hésitant pas à braver le froid, la neige, et mon traitement de texte, je vous avais même promis de vous en fournir quelques explications le mois suivant. Et nous sommes justement au mois suivant (tiens donc). J"avais fort intelligemment préféré ne pas vous imposer ce lourd listing en période de digestions post-réveillonnesques.

Venons-en donc aux faits : le programme proposé permettait de rechercher automatiquement des vies infinies (ou autres) dans un fichier, et ceci de sept façons différentes. C'est-à-dire que le programme est capable de localiser et de transformer sept initialisations différentes des vies dans la mémoire. Nous allons donc les explorer une à une, ce qui nous permettra de nous rafraîchir un peu la mémoire sur quelques notions importantes et susceptibles d'avoir été oubliées.

LES PLUS SIMPLES

Je vous rappelle tout d'abord que ces sept recherches ont été plus ou moins classées par ordre de fréquence dans les jeux. C'est pourquoi la première est, de loin, la plus connue et la plus courante. Cette initialisation donnée en assembleur : (fe rappelle que l'action d'initialiser consiste à mettre dans une case mémoire le nombre de vies)

LD A,XX 3E XX met le nombre de vies dans A
LD (YYZZ),A 32 ZZ YY met le contenu de A dans la case YYZZ

La zone recherchée est en l'occurence 3E XX 32, puisque nous ne connaissons pas la valeur de YYZZ.
Ceci est de l'adressage direct par le registre A. Cette méthode d'initialisation est, de très loin, la plus courante. La deuxième recherche utilise l'adressage indirect par le registre double HL : LD (HL),XX 36 XX met le nombre de vies (=XX) dans la case mémoire pointée par HL Celte recherche étant particulièrement courte (deux octets), la fréquence d'appa-ration est beaucoup plus importante, ce qui fait que vous risquez fort de la rencontrer à d'autres occasions qu'une initialisation (d'où risque de modifier des zones n'ayant rien à voir avec le but recherché, et susceptibles de planter le programme). Les deux recherches suivantes utilisent un autre type d'adressage dont nous avons parlé plus récemment.- l'adressage indexé via les registres IX et IY. LD (IX+YY),XX DD 36 YY XX met le nombre de vies (=XX) dans la case mémoire pointée par IX+YY LD (IY+YY),XX ED 36 YY XX met le nombre de vies (=XX) dans la case mémoire pointée par IY+YY C'est là où l'on voit tout l'intérêt de notre programme de recherche automatique : en effet, si par exemple notre jeu dispose de cinq vies, il faudrait rechercher (pour IX), DD 36 YY 05. Le YY ne nous est pas connu, il a été décidé de façon arbitraire par le programmeur. Essayez donc de demander à un banal Discology de rechercher une telle zone / Il lui faudrait pour cela 'sauter un octet', c'est-à-dire rechercher les zones commençant par DD 36, se terminant par 05, avec entre les deux un octet quelconque et sans importance. Il en va de même pour le registre IY. Ces deux recherches sont autorisées par notre pokeur, ce sont les numéros 3 et 4. Ce type d'initialisation est assez peu courant, mais pas totalement improbable.

LES VICIEUSES

Par vicieuses, j'entends ici (pourtant par là on n'entend pas grand chose...) perverses, c'est-à-dire détournées. Autrement dit, ce qu'on recherche quand tout le reste a échoué.
La première est la suivante : LD A,XX 3E XX met la valeur XX dans le registre A
Comme vous l'avez sûrement remarqué, cette recherche ressemble fort à la première. En fuit, il s'agit des deux premiers octets. Au lieu de regarder quand le programme met un nombre dans le registre A pour le mettre ensuite dans une case, on regarde simplement à quel endroit le programme met un nombre dans le registre A. Plus le nombre de vies est bas, et plus cette recherche aura de chances d'être trouvée. Imaginons que vous ayez trois vies, vous allez en fait rechercher toutes les fois où le programme met la valeur 3 dans le registre A. Et cela risque d'arriver très souvent, à des endroits n'ayant rien à voir avec l'initialisation des vies.

Ce sera à vous de sélectionner ! Enfin, en voici deux antres dans le même style :
LD HL,YYXX 21 XX YY met dans le registre III. le nombre YYXX Le nombre de vies est toujours XX, et YY est un nombre quelconque. Cette recherche explore les cas où les vies sont initialisées à l'aide d'un registre double, en compagnie d'une autre donnée (YY).
YY n'étant pas connu, il n'y a donc que deux octets à rechercher : 21 XX (avec encore une fois, une fréquence accrue).

LD HL, XXYY 21 YY XX met dans le registre HL le nombre XXYY Nous avions considéré le cas où XX est placé dans l'octet de poids faible et YY dans l'octel de poids fort, mais cela peut très bien être le contraire. Dans ce cas, il s'agit encore une fois d'une recherche avec un octet à sauter, puisque nous recherchons les zones commençant par 21, se terminant par XX, avec un octet quelconque entre les deux.

EN CONCLUSION

Vous avez maintenant un peu mieux compris le fonctionnement de notre pokeur automatique de fichiers (comme je me plais à l'appeler pompeusement). Mais il n'est pas question de nous arrêter en si bon chemin, car il nous reste encore beaucoup de choses à explorer dans l'univers sans limites des bidouilles. Alors je vous donne rendez-vous ici même le mois prochain ou quand vous voudrez sur le 3615 JOYSTICK en BAL MAUBERT. Alchao bonsoir,

PATRICE MAUBERT , JOYSTICK n°12 JANVIER 1991

★ LICENCE: COMMERCIALE
★ ANNÉE: 1991
★ AUTEUR: PATRICE MAUBERT

Page précédente : Patrice Maubert - Cours de Bidouilles - Joystick N11

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 081 millisecondes et consultée 975 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.