Reprogrammer Tetris NES en pleine partie - Un hack vraiment dingue ?

par Korben -

Tetris sur NES - c’est un classique indémodable, un monument du jeu vidéo mais c’est aussi un terrain de jeu sans fin pour les hackers et les bidouilleurs de génie. Tenez-vous bien, ces derniers ont trouvé un moyen de reprogrammer Tetris en pleine partie ! Je vous jure, c’est pas une blague. Ils arrivent à exécuter leur propre code en partant d’une cartouche normale, sans aucune modification matérielle.

Voici comment ça marche :

En atteignant des scores très élevés (comme le niveau 155) et en entrant des noms bien spécifiques dans le tableau des high scores, ils réussissent à réécrire des portions de la RAM du jeu. Concrètement, ils peuvent modifier les règles, ajouter des fonctionnalités, ce qu’ils veulent.

Mais le plus dingue, c’est quand ils font leur tour de magie. Bah oui, vous connaissez le fameux kill screen de Tetris ? C’est ce moment où après une partie marathon, il y a tellement de données que le jeu plante… Et bien nos petits génies provoquent volontairement ce crash qui en réalité, devient leur porte d’entrée pour injecter leur code personnel.

Techniquement, ils exploitent une faille dans la gestion des manettes car sur les Famicom, il y avait un port d’extension pour brancher des manettes supplémentaires et quand le jeu crashe, il perd les pédales et va interpréter n’importe quoi comme instruction, y compris les fameuses entrées de manettes. Résultat : vous appuyez sur des boutons bien précis au bon moment, et ça redirige l’exécution du programme exactement où vous voulez !

Évidemment, tout ça c’est d’un niveau de difficulté extrême, il faut connaître le jeu et la console sur le bout des doigts. Mais comme ils ont désassemblé le code de Tetris en langage machine, ils savent exactement ce que fait chaque octet de la ROM. Et la beauté de la chose, c’est que ça fonctionne sur une NES standard, avec une cartouche originale. Pas besoin d’un Game Genie ou d’un émulateur. Du 100% pur jus rétro

Par contre, il ne faut pas être trop gourmand non plus. On parle de reprogrammer un jeu en passant par les high scores, donc vous n’aurez jamais de quoi coder un truc plus complexe… et puis il faut rusher le truc à chaque partie, parce que dès que vous éteignez la console, pouf ça s’efface. C’est vraiment de la bidouille éphémère, il faut aimer l’art pour l’art.


Mais je trouve ça cool car il y a un côté ‘‘hacker la Matrice’’ assez jouissif. Ça me donne presque envie de ressortir ma vieille NES pour essayer… Mais je suis pas encore assez bon à Tetris. Mais si vous voulez essayer chez vous, il vous faudra :

  • Une NES (ou une Famicom)
  • La cartouche Tetris
  • 2 manettes NES supplémentaires (ou un adaptateur pour manettes NES sur Famicom)
  • De la patience et de la persévérance

Ensuite, vous devrez franchir chacune de ces étapes :

  • Étape 1 : Atteignez le level 155 en mode A-Type. Assurez-vous qu’une seule ligne vous sépare du level suivant.
  • Étape 2 : Effacez cette ligne SANS appuyer sur bas (pour ne pas marquer de points) et en affichant la pièce suivante dans la zone Next.
  • Étape 3 : Branchez vos deux manettes NES supplémentaires (appelons-les manette 3 et manette 4).
  • Étape 4 : Sur la manette 3, maintenez Haut. Sur la manette 4, appuyez simultanément sur Gauche, Bas et Droite (bonne chance…).
  • Étape 5 : Maintenant, préparez-vous à entrer dans la partie la plus délicate : l’écriture de votre programme via les high scores ! L’astuce consiste à utiliser les noms et scores pour y cacher des instructions destinées directement au processeur de la NES. Pour cela, vous devez placer judicieusement certains caractères dans les high scores. Par exemple, mettez (G comme 2ème lettre du nom en 1ère position du tableau B-Type. Cela indique au processeur de sauter vers une autre zone du tableau et de lire la suite comme un bout de code. Ensuite, en 2ème position B-Type, commencez le nom par )). Puis continuez à remplir les noms et scores suivants selon votre programme. Attention, vous êtes très limité dans les instructions possibles ! Vous ne pouvez utiliser que les 43 caractères autorisés pour les noms et les 10 chiffres pour les scores. La plupart des opcodes du processeur sont impossibles à reproduire ainsi. Mais avec de l’astuce, c’est jouable. Par exemple, essayez ceci pour votre 1ère position en A-Type : (A name of '))"-P)' . Ce code basique injecte deux zéros dans les digits de poids fort du score, ce qui limite son augmentation et retarde le crash du jeu (sans le corriger complètement).
  • Étape 6 : Validez le high score. Le jeu va planter, c’est normal. Maintenez les boutons enfoncés sur les manettes 3 et 4.
  • Étape 7 : Tadaa ! Votre code personnalisé s’exécute. Vous pouvez maintenant modifier le comportement du jeu. Mais attention, tout s’efface à la prochaine coupure !

Voilà, vous savez tout. Avec un peu d’entraînement, vous pourrez à votre tour hacker Tetris comme un pro mais n’oubliez pas, c’est un grand pouvoir qui se mérite et qui implique de grandes responsabilités ! (non)

Happy hacking !

Source