Bon, alors je reviens avec des news, et elles sont plutôt bonnes.
J'ai réussi à "élaborer" une technique permettant de faire ce que nous voulons faire, c'est-à-dire à traduire les chaines contenues dans le binaire Dreamcast (pour
Xbox j'en sais rien et je n'ai
pas l'intention pour le moment d'y jeter un oeil). C'est une charge
énorme de travail.
Tout d'abord, j'ai remarqué deux choses. Il y'a
deux types de menus "actions" (je vais les appeler comme ça) différents dans le jeu: Ceux qui sont
fixes et les autres qui sont
variables. Qu'est-ce que j'entends par là ?
A
gauche, un exemple de
menu variable et à
droite, un exemple de
menu fixe.
En effet, les chaînes ont été hackées strictement de la même manière des deux côtés. L'élargissement de la zone est automatique, et je ne sais pas comment faire pour régler le problème des
menus fixe.
C'est un peu par hasard et par jugeote que j'ai découvert la méthode pour arriver à faire ça. Comme ce point risque d'être très long et que je considère que j'ai vraiment fait beaucoup (en gros je commence sérieusement à fatiguer) j'aimerais vraiment avoir de l'aide.
Il faudrait recenser toutes les chaînes à traduire. Je ne connais pas le jeu et du coup, je ne sais même pas quoi traduire... De plus je suis pas très bon en langue on va dire. Du genre le "Put In", j'ai traduis par "Mettre dans" (j'avais fait exprès pour que ça soit long ici), mais comment j'aurais du traduire ça: "Acheter" ?
Voici la méthode pour arriver à faire ça (Alya le sait déjà, cependant relis ça car j'ai fait un prog pour faciliter le truc):
La méthode est à appliquer avec WinHex, mais ça marche avec n'importe quel éditeur Hexa bien sûr. Je prend l'exemple de
Don't Put In mais vous pouvez modifier ce que vous souhaitez.
- Tout d'abord, télécharger la calculatrice que j'ai faite pour l'occasion.
- Rechercher dans le binaire la chaine voulue, ici Don't Put In. Dans WinHex, tapez Ctrl+F et lancez la recherche.
- Une seule occurrence est trouvée. Notez l'offset du D de Don't Put In (ici c'est 0x21E180).
- Ouvrez la calculatrice et entrez le nombre 21E180 dans la zone de texte. Une valeur est générée : 80E1228C.
- Recherchez la valeur générée 80E1228C (Ctrl+Alt+X sous WinHex) et lancez la recherche.
- Un seul offset est trouvé : 0x24931C. Cet offset est le pointeur qui contient la référence vers la chaîne Don't Put In. Voilà!
Vous avez normalement réussi à trouver l'offset
0x24931C correspondant à l'offset de la chaîne
Don't Put In. Maintenant, nous voulons la modifier. Procédez comme suit:
- Tout d'abord, il faut de la place. Trouvez une chaîne non utilisée (les chaînes en "japonais", genre ¥¹¥Ú¡¼¥¹¥Ï¥ê¥¢¡¼ située à l'offset 0x21E794. C'est là toute la difficulté, trouver des emplacements libre. A savoir qu'on peut ruser en utilisant la place laissées par les autres langues (Genre, traduisez "Guardar", "Sauveg.", "Einst." et "Save" vers "Sauvegarder", changer les pointeurs de "Guardar", "Sauveg.", "Einst." et "Save" vers le seul et unique pointeur "Sauvegarder", ce qui libère beaucoup de place pour la suite).
- Une fois cette place trouvée, tapez la chaîne que vous souhaitez (ici à l'offset 0x21E794).
- Rendez-vous à l'offset 0x24931C qui contient l'adresse de la chaîne Don't Put In.
- Lancez la calculatrice et entrez l'offset de la nouvelle chaîne traduite (ici 21E794). Un nombre est généré: 94E7228C. C'est notre nouvelle adresse.
- A l'offset 0x24931C, remplacez la valeur actuelle 80E1228C par 94E7228C. Le pointeur est mis à jour avec succès! Vous pouvez maintenant tester.
Voilà. J'espère que c'est suffisamment clair.
Si vous êtes curieux et que vous voulez les sources de la calculatrice, y'a qu'à demander, pas de soucis.
@ +