La meilleure solution pour patcher le ELF est d'utiliser un éditeur hexadécimal à côté, comme par exemple
HexEdit ou
HxD qui sont gratuits.
1) Une fois que tu as trouvé le jal dans ps2dis, ouvres ton ELF dans l'éditeur héxa.
2) Recherches le code hexadécimal du jal dans ton ELF, patches-le et sauvegardes ton ELF modifié.
En pratique :
- Je fais tout ce que tu as fait jusqu'à avoir mon curseur bleu sur le jal, dans ps2dis. Je laisse ps2dis ouvert.
- J'ouvre mon ELF dans mon éditeur hexadécimal
- Je retourne sur la fenêtre de ps2dis. Dans la partie blanche en haut de la fenêtre apparait le contenu de mon ELF en hexadécimal, avec un curseur carré placé sur le jal. Le jal ressemble à XX XX XX
0C (les XX sont des valeurs qui varient selon le ELF. En 4ème position on trouve toujours 0C pour un jal.)
- Je retourne à mon éditeur hexadécimal, et je recherche ce XX XX XX 0C. Je le remplace par 01 00 02 24 et je sauvegarde le ELF modifié.
Comme je ne sais pas quelle valeur correspond au Français, je sauvegarde plusieurs ELFs avec des valeurs différentes pour tester dans ma console :
01 00 02 24, sauvegarde du ELF avec le nom TEST1.ELF
02 00 02 24, sauvegarde du ELF avec le nom TEST2.ELF
03 00 02 24, sauvegarde du ELF avec le nom TEST3.ELF
04 00 02 24, sauvegarde du ELF avec le nom TEST4.ELF
05 00 02 24, sauvegarde du ELF avec le nom TEST5.ELF
06 00 02 24, sauvegarde du ELF avec le nom TEST6.ELF
07 00 02 24, sauvegarde du ELF avec le nom TEST7.ELF
Dans la plupart des jeux, hardcoder la valeur
01 force l'Anglais et hardcoder la valeur
02 force le Français.
Pour résumer :
On trouve le code qui correspond au jal de sceScfGetLanguage avec ps2dis;
Une fois qu'on a trouvé ce code, on le recherche et on le remplace avec un éditeur hexadécimal.
On peut aussi se faire un code CodeBreaker pour ne pas avoir à patcher physiquement le jeu, c'est le but du
tutoriel de CMP, mais ça implique aussi d'avoir le
mastercode du jeu. Il y a des outils récents pour trouver le mastercode automatiquement, sur PSX-Scene. Je ne connais pas leurs noms, vu que je fais toujours mes hacks manuellement avec ps2dis.