TWW – L’histoire du Debug Menu

– 7 Septembre 2011 –

Voici le récit de mon plus gros exploit dans le hack des jeux vidéo datant du 7 Septembre 2011… Il s’agit de la découverte du Debug Menu de The Legend of Zelda – The Wind Waker ! Une sorte de menu assez semblable à celui d’Ocarina of Time (ZELDA MAP SELECT). Sa recherche aura duré une bonne année complète, mais qui fut entre-temps stoppée à plusieurs reprises.

Tout commence un 7 Septembre 2010 (Eh oui, un an jour pour jour et sacré hasard !) sur le forum de Triforce Legend en fin d’après-midi. Je venais de faire quelques recherches sur le fichier ISO de The Wind Waker avec un éditeur hexdécimale (Hex Workshop). Après de longues minutes à observer le fichier, j’ai fini par tomber sur d’étranges textes ressemblant à des options de réglage du jeu utilisées par les programmeurs du jeu. Je tombe également sur une sorte de petite liste de choix des endroits du jeu (Ce qui n’est pas le cas au final). Étant très passionné par les choses cachés ou inutilisées par les programmeurs, je me décidais à demander de l’aide pour fouiller plus en détail les données du jeu. La plupart des bons hackers parlent l’anglais et moi, je ne sais pas le parler et c’était un peu un handicap. Fort heureusement, un membre de l’équipe de Triforce Legend savait très bien parler l’anglais (Link le héros) et allait finalement me servir de traducteur. D’ailleurs il était comme moi, un grand fan du hack des jeux vidéo, ce qui allait rendre les choses plus facile. A cette époque, je ne savais pas faire des codes Action Replay pour GameCube et j’avais un peu la flemme d’apprendre, mais j’avais aussi peur que cela soit un peu compliqué à comprendre, surtout que la plupart des tutos étaient en anglais. Puis The Wind Waker n’était pas un jeu très fouillé, contrairement à Ocarina of Time et sa fameuse Debug Rom. Bref, rien de facile pour avancer dans cette recherche du Debug Mode !

Ma première mission était de trouver quelqu’un sachant faire des codes Action Replay et aussi en savoir plus sur les textes présents dans les données de The Wind Waker. Pour certaines raisons, la recherche s’arrêta au bout de quelques jours… La faute à un ordinateur pas assez puissant pour jouer à The Wind Waker, le jeu tournait à 4 secondes ou plus par images, beaucoup trop lent et très décourageant surtout !

Un Debug Mode dans The Wind Waker ?
(Triforce Legend)

Quelques mois plus tard, je tombe sur un topic d’un forum venant d’un site parlant des betas de n’importe quel jeu vidéo (Unseen64), il datait du 14 Juin 2009. Une personne avait trouvé dans les données de The Wind Waker, deux fichiers assez étranges “kanfont_fix16.bfn” et surtout “Menu1.dat”. A l’intérieur du deuxième fichier se trouvaient des noms, les noms techniques des endroits du jeu ! Il s’agissait d’un menu de chaque endroit du jeu, mais ce n’était pas le même que celui que j’avais trouvé quelques mois plus tôt. Comme moi, j’ai vu que cette personne souhaitait voir quelqu’un faire des codes Action Replay pour activer le Debug Menu et de la même façon que moi, ce début de recherche s’était stoppé très rapidement. Quant à moi, je n’ai pas vraiment cherché à en savoir plus sur cette recherche là, j’étais plutôt occupé sur d’autres choses. Entre-temps, j’ai eu un nouvel ordinateur plus puissant et donc, The Wind Waker marchait bien plus rapidement dessus.

Quelques mois plus tard encore en Juillet 2011, je me suis inscrit sur un site parlant des éléments inutilisées dans les jeux vidéo (The Cutting Room Floor). Cela faisait déjà plus d’un an que je connaissais ce très bon site et j’allais le voir très fréquemment. C’était aussi là que fut dévoilé le précieux prototype de Zelda 1 en Décembre 2010. Pendant tout l’été 2011, j’ai travaillé dessus en mettant un maximum de choses que je connaissais et qui n’était pas encore sur le site. La partie The Wind Waker n’était pas encore très complète et il manquait beaucoup de choses. Un certain JayTheHam avait déjà commencé à mettre la liste complète des endroits inutilisés du jeu, mais n’avait pas fini. Par la suite, j’ai su qu’il avait perdu son mot de passe pour pouvoir se connecter sur le site TCRF et d’où la raison qu’il n’était pas revenu depuis un bon moment. Pendant que j’amusais à compléter la partie The Wind Waker avec justement des anciennes trouvailles venant de JayTheHam lui-même, ce dernier est revenu mais sur le forum du site TCRF pour évoquer sa perte de son mot de passe et qu’il voulait se reconnecter pour également travailler à nouveau sur le site.

Le site The Cutting Room Floor était un Wiki, il y avait donc une page pour le jeu et une pour la discussion. Sur cette dernière, j’ai vu le même sujet que celui sur Unseen64. C’était la même personne et il parlait toujours des deux fameux fichiers qu’il avait trouvé en 2009. Il avait posté son sujet le 20 Février 2010, il espérait trouver quelqu’un pour l’aider, mais il n’avait eu aucune réponse finalement. Là encore, je ne m’étais pas trop penché sur le sujet, car je n’avais aucune idée pour l’aider.

Talk:The Legend of Zelda: The Wind Waker
(The Cutting Room Floor)

Cependant, j’ai fini par changer d’avis et je me suis lancé à nouveau à la recherche du Debug Menu. A l’aide d’un autre fichier du jeu “boot.dol”, j’ai fini par trouver de nouvelles lignes de textes et l’une d’elle était écrite “NDEBUG”, il se situait entre l’écran titre et l’écran des sélections des sauvegardes.

Je me décidais à faire un sujet sur le site TCRF avec l’espoir d’avoir une réponse. Celle-ci n’avait pas mis très longtemps à venir !

“Sort of offtopic but IIRC, Treeki found some kind of debug function in WW a while back, I’ll go bug him about it.

–Oaa 23:55, 13 August 2011 (EDT)”

Il parlait d’un topic venant du forum de TCRF et d’un certain Treeki qui avait découvert des fonctions de débogage dans The Wind Waker et d’autres jeux. Je n’avais pas eu de nouvelle par la suite… A partir de là, je commençais une longue recherche d’un mois environ.

Après des dizaines de méthode sans succès pour trouver un moyen de savoir comment activer le Debug Menu, j’ai commençais par me décourager après des heures et des heures à modifier dans les données du jeu. C’était usant au possible, surtout ce que j’essayais de faire ! Cependant, j’avais appris un peu les codes Action Replay grâce à Link le Héros qui m’avait traduit un tuto très intéressant. Ceci allait m’aider à trouver totalement le Debug Menu, mais je ne le savais pas encore à ce moment-là. Alors que j’étais sur le point de presque lâcher la recherche, j’avais eu la bonne idée de voir le topic où Treeki parlait des fonctions de débogage. Pourtant, je n’avais rien d’appris de plus dessus, mais une image allait me lancer sur la bonne voie…

Super Mario Sunshine Memory Map + other stuff
(Jul – Cutting Room Floor)

Une image de Super Mario Sunshine sur l’émulateur Dolphin utilisant le mode debug caché. Dessus je voyais des mots intéressants qu’il était possible de voir en utilisant un fichier “.map”. Les fichiers “.map” étaient disponibles dans les données de certains jeux comme The Wind Waker par exemple. Je m’étais mis à la recherche d’un fichier ayant un “.map” à la fin et j’avais fini par le trouver assez rapidement, c’était le fichier “framework.map”. Sans attendre, je l’utilisais sur l’émulateur Dolphin et là, surprise ! J’ai vu des tas de mots indiquant les emplacements de beaucoup de choses du jeu ! A l’aide du fichier “boot.dol” où j’avais vu “NDEBUG”, j’avais pu voir une indication très importante “d_s_menu.cpp”. Ce n’était pas un fichier, mais l’emplacement du Debug Menu dans le fichier “framework.map”. Après certaines recherches, j’avais fini par tomber sur quelques trucs intéressants, mais qui ne m’aidaient pas trop à avancer. N’ayant plus du tout d’idée après des semaines à chercher comme un fou, j’avais écrit sur TCRF les dernières recherches que j’avais faites et pour que quelqu’un vienne à mon aide, j’étais sur le point d’abandonner vraiment…

“It’s been a few days I’m working on finding the Debug Menu in The Wind Waker. Since yesterday, I know slightly more about the location of the hidden menu using the debugger of the emulator Dolphin. Contrary to what I said last time, the Debug Menu would be available just before the title screen or on the title screen.

1) “dScnLogo” is the title screen
(Create, Delete, Draw, Execute, IsDelete)
2) “dScnMenu” is the Debug Menu
(BMG, Create, Delete, Draw, Execute, IsDelete, tex)
3) “dScnName” is the screen “File Selection”
(Create, Delete, Draw, Execute, IsDelete)
“fopScnM” I suspect he is also a link with the Debug Menu.
However, I do not know if I need to change in this area. I stalled for the moment and I think I’ll need help to see further research.
I put two images to show a little more detail.

–Dark Linkaël 08:49, 6 September 2011 (EDT)”

La chance était avec moi ! J’avais eu une réponse le lendemain, une réponse d’une personne se nommant Jhameleon. Il m’avait répondu ceci :

“It’s interesting that if you run the debug menu (dScnMenu_Create__FP11scene_class) by replacing, say, the pointer to the logo routine with one to the debug menu, the debug function(s) actually all run fine, they load the level select file into memory and what not, and it’s later on that something causes an error and crashes.

Jhameleon 01:02, 7 September 2011 (EDT)”

Cette personne avait trouvé un moyen d’activer le Debug Menu avec une méthode de remplacement ! Cependant, le Debug Menu ne marchait pas très bien. Très content et excité, je tentais de faire comme lui. Mais après plusieurs minutes, j’avais laissé tomber, car je ne savais pas comment faire pour remplacer. En attendant une réponse de Jhameleon, je tentais une petite idée qui était finalement un éclair de génie. Je me mettais à chercher dans le fichier “framework.map”, un texte ressemblant à dScnMenu et celui-ci apparaissait devant moi avec des chiffres. Des chiffres ressemblant à des offsets des données de The Wind Waker.

Après quelques vérifications dans les alentours, l’idée de faire un code Action Replay m’était venue à la tête. Je m’étais mis sans attendre à remplacer l’écran du logo Nintendo par l’écran du Debug Menu en créant un code. Cependant, je n’étais sûr de rien du tout et je pensais que comme toutes mes autres recherches, celle-ci n’allait servir à rien.

Un écran noir avec des textes et chiffres blanc… Le Debug Menu de The Wind Waker était devant mes yeux… C’est complètement stupéfait par ma recherche que je testais les choix possibles sur ce menu que j’ai tant voulu découvrir. Comme l’avait dit Jhameleon, le Debug Menu ne marchait pas bien du tout. A chaque fois que je voulais entrer dans un des choix, le jeu bloquait pour une étrange raison… Avant d’en savoir plus sur les raisons du blocage, je publiais le code européen du Debug Menu sur le site TCRF pour annoncer que j’avais trouvé un moyen plus pratique pour activer ce menu dans le jeu.

0439AD54 00060000
0439AD5C 000001E4
0439AD6C 8039AD8C

Vu que je connaissais bien les emplacements de plusieurs écrans comme celui du logo Nintendo, de l’écran titre ou même de l’écran des sélections des sauvegardes. Je n’avais aucun mal avec des codes Action Replay de remplacer l’un des écrans par celui du Debug Menu. J’avais directement pris celui des sélections des sauvegardes du jeu, car le Debug Menu était logiquement placé entre l’écran titre et celui des sélections des sauvegardes. Le résultat était parfait ! Le Debug Menu se lançait à la place de l’écran que j’avais remplacé et surtout, il marchait parfaitement bien ce coup-ci ! Une nouvelle fois, je retournais sur le site TCRF pour annoncer que j’avais trouvé le moyen de faire marcher le Debug Menu pour de bon.

0439B2B0 8039AD8C (EUR)

Pendant ma dernière recherche, j’avais compris que la personne qui se nommait Jhameleon n’était autre que JayTheHam, le très célèbre hacker de jeu vidéo ! Je savais d’ailleurs qu’il était le seul à pouvoir vraiment m’aider dans la recherche finale, mais je ne pensais pas que ce serait lui-même qui viendrait répondre à mon appel d’aide avant un possible abandon, surtout qu’il ne pouvait pas revenir sur TCRF sans son mot de passe. En voyant mon message, il s’était de nouveau inscrit, mais sous un autre pseudo. Je tiens à le remercier infiniment pour m’avoir permis de ne pas laisser tomber cette recherche et de m’avoir conduit par hasard à faire des codes Action Replay, afin que tout le monde puisse en profiter. En même temps, il en profita pour faire les codes américains et japonais du Debug Menu.

043945B0 8039408C (USA)
04387C38 80387718 (JAP)

Pour terminer, je tiens aussi à remercier mon fidèle traducteur Link le Héros qui m’avait bien aidé durant les recherches, mais également à ceux qui m’ont aidé involontairement à avancer dans la découverte du Debug Menu de The Wind Waker !

Vous pouvez également retrouver d’autres choses sur The Wind Waker durant ou après la recherche du Debug Menu sur ce topic venant du forum de The Cutting Room Floor. Vous y verrez par exemple la traduction du Debug Menu.

The Legend of Zelda: Wind Waker Findings
(Jul – Cutting Room Floor)

Une petite dernière histoire pour finir… Nintendo avait également fait un Debug Menu du même genre dans Twilight Princess, mais celui-ci avait été supprimé lors de la version finale du jeu. Dans la démo de l’E3 2006, le Debug Menu existait toujours et un fichier “Menu1.dat” était présent à l’époque. Skyward Sword est également pareil ou presque, mais comme Nintendo n’aime pas les hackers, il l’a fait savoir en supprimant directement tout ce qui touche au débogage d’un de ses propres jeux. En 2003, ce n’était pas encore le cas avec The Wind Waker, les choses ont changé depuis…

 

Vous pouvez retrouver cette ou ces découverte(s) sur le site The Cutting Room Floor où je partage mes propres trouvailles.

L`Auteur

Dark_Linkaël

Dark Linkaël

Dark Linkaël (aka Crottou) : Fondateur de Triforce Legend depuis 2003.
Haut