[ MH3rd ] Créer son propre patch de traduction

Voir le sujet précédent Voir le sujet suivant Aller en bas

[ MH3rd ] Créer son propre patch de traduction

Message  Gougouts le Sam 19 Jan - 16:32

I/ Ce dont nous aurons besoin
Voici une liste des programmes dont nous aurons besoin. Une présentation de chacun d’eux et de leurs utilisation est présente dans la partie suivante.

[*]UMDGen: [Vous devez être inscrit et connecté pour voir ce lien]
[*]Java: [Vous devez être inscrit et connecté pour voir ce lien]
[*]MHTrans: [Vous devez être inscrit et connecté pour voir ce lien]
[*]Enc: [Vous devez être inscrit et connecté pour voir ce lien]
[*]Find Offset: [Vous devez être inscrit et connecté pour voir ce lien]
[*]MHP2 Patch Builder: [Vous devez être inscrit et connecté pour voir ce lien]
[*]MHP2 Patcher: [Vous devez être inscrit et connecté pour voir ce lien]
[*]Wine pour ceux qui sont sous Linux.

II/ Présentations des outils
Donc voilà, nous avons eu besoin de quelques outils pour faire le patch, certains sont fais maison, d’autres non.

[*]MHTrans
Il s’agit d’un programme codé par Codestation. Il a été fait codé en Java. Vous pouvez récupérer le code source de ce logiciel sur le [Vous devez être inscrit et connecté pour voir ce lien]. Ce programme nous a essentiellement servit à décrypter le DATA.bin et ce qu’il contient. Il nous a aussi permis de développer les mods. C’est ce programme qui nous a le plus servit. Un grand merci encore à Codestation.
[*]Enc
Je ne connais pas l’auteur du programme. Je pense qu’il a été codé en C. Il nous a servis à encoder les fichiers décryptés par MHTrans. Maintenant, MHTrans permet aussi d’encoder et reconstruire des .bin.
[*]Find Offset
Il s’agit d’un programme que j’ai codé. Il a été fait en C. Vous pouvez récupérer le code source de ce logiciel [Vous devez être inscrit et connecté pour voir ce lien]. Ce logiciel m’a permis de trouver à quelles adresse dans l’iso étaient stockés les fichier contenant les textes. Il m’a aussi permis de trouver toutes les adresses des fichiers nécessaires au modding.
[*]MHP2 Patch Builder
Il s’agit d’un programme que j’ai codé. Il a été fait en C. Vous pouvez récupérer le code source de ce logiciel [Vous devez être inscrit et connecté pour voir ce lien]. Ce logiciel nous a permis de construire le patch .mhp2.
[*]MHP2 Patcher
Il s’agit d’un programme que j’ai aussi codé. Lui aussi a été fait en C et a utiliser la bibliothèque [Vous devez être inscrit et connecté pour voir ce lien]. Vous pouvez récupérer le code source de ce logiciel [Vous devez être inscrit et connecté pour voir ce lien]. Ce logiciel nous a permis de patcher les isos de MHP3rd avec le patch .mhp2.

III/ Extraction et décryptage
Donc pour cette étape vous aurez besoin d’extraire le data.bin de votre ISO en utilisant UMD GEN.

UMDGenOuvrez votre iso, rendez vous dans le dossier USRDIR:


Cliquez droit et selectionnez « Extract Selected » Et attendez la fin de l’extraction.


Une fois le data.bin extrait, créez un dossier spécialement pour l’extraction. Dedans, placez le fichier DATA.BIN et créez un dossier pour les fichiers qui seront extraits avec MHTrans.

Placez MHTrans dans à la racine du dossier. Et entrez cette commande dans un Terminal/Console:

[*]Linux:
Code:
tartine@Yggdrasil:$ java -jar MHTrans.jar --dec-all DATA.BIN Out

[*]Windows:
Code:
user@computer:$ java.exe -jar MHTrans.jar --dec-all DATA.BIN Out

Vous verrez alors des lignes défiler dans votre Terminal/Console:
Cela peut prendre un certain temps, il y a pas mal de fichiers.

IV/ Extraction et encryptage des fichiers de textes
Donc voilà, vous avez extrait tout les fichiers de l’iso.
Ils sont répartit dans plusieurs dossiers allant de 00 à 05.

Les fichiers de textes qui nous intéressent sont les fichiers:
[*]1: 0017
[*]1: 2813->2818
[*]4: 3973->3980 3984->3987
[*]3: 4202->4204

Il y a plusieurs façon de décrypter ces fichiers. Vous pouvez faire ça à la main à l’aide de la commande:

[*]Linux:
Code:
tartine@Yggdrasil:$ java -jar MHTrans.jar --extract Out/00/0017.bin 1

[*]Windows:
Code:
user@computer:$ java.exe -jar MHTrans.jar --extract Out/00/0017.bin 1

Le 1 en fin de ligne correspond à une méthode de décryptage. Vous pouvez voir que 1 s’applique aussi pour les fichiers allant de 2813 à 2818. En revanche pour ceux allant de 3973 à 3987 il faut utiliser un 4 en fin de ligne, etc..
Normalement, un dossier par fichier est créé à la racine de dossier:
Vous pouvez dès maintenant éditer les fichiers textes que vous avez obtenu ! Si vous avez tous réaliser sur un DATA.BIN provenant d’un iso ayant été patché, vous obtenez les fichiers de traduction. Génial hein ? Vous pouvez donc améliorer le patch de ce forum ou créer le votre de à A à Z.

V/ Modification des fichiers
Vous avez décrypter les fichiers contenant du texte, vous pouvez dès maintenant les éditer mais certaines règles sont à respecter.

[*]La structure
Vous devez respecter la structure globale du fichier. Par exemple, le fichier 0017/string_table_1.txt qui est le fichier qui contient la liste des objets. Il y a un nom d’objet par ligne. Vous devez donc mettre qu’un seul et unique objet par ligne. Autre exemple, le fichier 0017/string_table_36.txt qui contient je sais pas quoi d’ailleurs Very Happy (J’ai décrypter un DATA.BIN d’un iso non patché ^^), vous pouvez voir des balises ce qui indique que dans le jeu, cette balise de traduira par un retour à la ligne. Vous pouvez adapter les retours à la ligne en fonction de la longueur de vos phrases mais il ne faut pas écrire ou encore, il faut respecter la syntaxe.

[*]Le nombre de caractères
Il y a une limite de caractères en fonction de l’endroit où ce sera afficher dans le jeu. Si vous ne voulez pas que ça déborde, il vous faudra couper dans les mots. A vous de trouvez quelle est la limite pour chaque endroit où ça sera affiché, aidez vous de la traduction déjà effectuée et voyez à peut près cette limite.

[*]Les nom
Vous ne devez surtout pas renommer un fichier. Si vous le renommez, vous devez remplacer son nom dans le filelist contenu dans chaque dossiers.

VI/ Reconstruction et encryptage
Vous avez terminer de modifier un fichier où vous vouez simplement tester votre modification pour voir si ça fonctionne ? Ben cette étape est faite pour vous !
C’est très simple. Vous aurez besoin de vous rappeler comme est-ce que vous avez décrypter vos fichiers 0017.bin etc…

Bon, je suis sympa je vous redonne la liste:
[*]1: 0017
[*]1: 2813->2818
[*]4: 3973->3980 3984->3987
[*]3: 4202->4204

Comme précédemment, il y a plusieurs façon de procéder à la reconstruction, vous pouvez soit le faire à la main à l’aide de ses commandes:

[*]Linux:
Code:
tartine@Yggdrasil:$ java -jar MHTrans.jar --rebuild 0017.bin 1

[*]Windows:
Code:
user@computer:$ java.exe -jar MHTrans.jar --rebuild 0017.bin 1

Ou alors vous faire un script Wink (Oui j’aime les scripts, vous comprendrez pourquoi dans un prochain article)
Vous obtiendrez un 0017.bin.out.

Passons maintenant à l’encryptage. Créez un dossier Enc à la racine du dossier dans lequel vous placerez le contenu de l’archive Enc.zip. Comme dis précédemment, ce programme sert à encrypter les fichiers.

Vous devrez placez soit votre fichier dans le dossier Enc/enc, soit le mettre directement à coté de l’application. J’ai choisi de le placer dans Enc/enc.
Vous pouvez encrypter votre fichier à l’aide de la commande:

[*]Linux:
Code:
tartine@Yggdrasil:$ wine enc.exe enc/0017.bin.out 0017.bin.enc

[*]Windows:
Code:
user@computer:$ enc.exe 0017.bin.out enc/0017.bin.enc

Si vous avez plusieurs fichiers a encryptez, vous pouvez tout mettre sur la même ligne:
Code:
tartine@Yggdrasil:$ enc.exe enc/0017.bin.out enc/2813.bin.out 0017.bin.enc 2813.bin.enc

Vous obtiendrez le fichier de sortie à coté de l’application, ici, 0017.bin.enc. C’est avec ce fichier que vous devrez construire le patch.

VII/ Récupération des offsets et construction du patch
Donc voilà nous avons un fichier encrypté mais ne nous savons pas où le placer dans l’iso. C’est là que Find Offset fait sont entrée. Comme dit plus haut, ce programme permet de trouver l’adresse d’un fichier dans un autre fichier.
Créez un dossier à la racine où vous extrairez l’archive du Find-Offset. Vous y trouverez deux dossiers, un Linux et un Windows. Placez les fichiers dont vous voulez trouver l’adresse dans le dossier correspondant à votre système d’exploitation:

Le programme Find-Offset prend en argument:
[*]L’adresse à partir de laquelle vous voulez cherchez (Hexa obligatoire)
[*]Le fichier que vous voulez localiser
[*]Le fichier dans lequel vous cherchez

[*]Linux:

Code:
tartine@Yggdrasil:$ ./Find-Offset 6d50000 0017.bin.enc /media/Alex/mhp3.iso

[*]Windows:

Code:
user@computer:$ Find-Offset.exe 6d50000 0017.bin.enc D:\ISO\mhp3.iso

[*]Hein ? Qu’est-ce que c’est que 6d50000 ? et /media/Alex/mhp3.iso ?
Le 6d50000 correspond à l’adresse ou le DATA.BIN commence dans l’iso, pour vous faire gagner de la vitesse, il vaut mieux commencer à cette adresse ^^ Et pour /media/Alex/mhp3.iso il s’agit de mon disque dur externe dans lequel j’ai placé mon iso mhp3 Very Happy

Vous obtiendrez ceci: 8a7a000. Voilà, vous connaissez maintenant où est placé le fichier 0017.bin.enc dans l’iso de MHP3rd ! Vous pouvez passez à la création du patch Very Happy
Créez un dossier à la racine de votre dossier où vous extrairez l’archive du patch-builder. Vous trouverez deux dossiers, un Linux et un Windows. Placez les fichiers avec lesquels vous voulez créez un patch dans le dossier correspondant à votre système d’exploitation:

Le programme Patch-Builder prend en argument:
[*]Le fichier que vous voulez ajouter au patch
[*]L’adresse que vous avez trouvé précédemment (Hexa obligatoire)

[*]Linux:

Code:
tartine@Yggdrasil:$ ./Patch-Builder 0017.bin.enc 08A7A000

[*]Windows:

Code:
user@computer:$ Patch-Builder.exe 0017.bin.enc 08A7A000

Voilà, un fichier patch.mhp2 se créer dans le dossier de l’application Very Happy

Petite parenthèse pour expliquer la structure du patch .mhp2:
Celui-ci est basé sur les patch IPS.
Dans notre patch, les 4 premiers octets sont l’adresse où nous écrirons.
Les 3 octets suivant sont la taille du segment que nous allons écrire.
C’est un structure simple mais efficace.
Elle permet de packer plusieurs fichier dans un seul et même pour plus de confort.

VIII/ Application du patch et test
Pour appliquer le patch il vous suffit d’utiliser le patcher mis à disposition plus haut.
Il vous faudra placez le patch .mhp2 à coté de l’application et mettre l’iso nommé iso à coté de l’application et cliquer sur patch.
Voilà, vous venez de patch votre propre jeu avec votre propre patch Very Happy Félicitation ^^

Gougouts

Sexe: Masculin
Astuce(s) postée(s): 47
Messages: 378
Rg mhfu: 9
Rg mh3: 771
Rg mh3rd: 6
Rg mh3u: 125
Rg mh4u: 194

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum