Afficher un message
Vieux 02/06/2010, 00h24   #2897 (permalink)
Profil
SiZiOUS
ドリームキャストメンバー
Ancienneté  85%
Ancienneté 85%
 
Avatar de SiZiOUS
 
Date d'inscription: mai 2006
Âge: 39
Pays :
Messages: 914
Téléchargements: 0
Uploads: 0
Merci: 51
Remercié 60 fois dans 30 Posts
Par défaut

Bon j'ai réussi à modifier le DEFAULT.XBE avec une nouvelle approche, qui facilitera la modification avec ton outil Ayla.

J'ai réussi à allonger une section du XBE afin de créer de la place libre pour mettre nos strings traduites. J'ai fait le test et ça marche bien. En gros voilà ce que j'ai fait:

- J'ai allongé de 2048 octets la section D4_CNST de l'exécutable, puis dans ces 2048 octets, j'y ai inscrit une chaine ("SiZ!").

- J'ai modifié la valeur de mon pointeur pour la string "Challenge" vers la section D4_CNST + offset de la chaîne "SiZ!" (de la même façon expliqué plus haut).

- Je teste, et le jeu affiche bien "SiZ!" à la place de "Challenge" à l'écran.

Cette découverte implique donc que nous n'aurons pas de problèmes de place avec la version Xbox, étant donné que les exécutables XBE sont bien structurés avec un principe de sections (et là on voit bien que M$ ne s'est vraiment pas fait chier, le XBE ça ressemble grosso modo à du PE, le format de Windows... pourquoi réinventer la roue après tout!).

Reste à détecter toutes les chaines à traduire. Pour cela, il faut qu'on utilise les outils qu'on avait fait pour la Dreamcast à l'époque, à ceci près qu'il faut remplacer l'adresse base 0x8c010000 de la Dreamcast par chaque adresse base de chaque section du XBE.

En gros, voici l'algorithme tel que je le vois:

1 - On lit l'adresse base de la section (dans le header du XBE, je sais comment faire car je me base sur la doc de Caustik, auteur de Cxbx).

2 - On scanne le binaire pour chaque octet lu + l'adresse base de la section (de la même façon que pour la DC)

3 - Si la valeur lue pointe vers une string, on l'enregistre --> on trira ce qu'il y'a à traduire plus tard.

4 - On recommence pour la section suivante (21 sections en tout).

Je peux t'aider Ayla sur cette partie si tu le souhaites.
__________________
[big_fury]SiZiOUS, http://sbibuilder.shorturl.com/
SiZiOUS est déconnecté   Réponse avec citation
Cet utilisateur dit Merci à SiZiOUS pour ce poste utile:
Shendream (02/06/2010)