Rom Hacking 3DS (Up-To-Date)

Pages: [1]

lglaplante

  • Membre
  • 10 posts
21 octobre 2018, 01:26
Après avoir lu la section rom-hacking du site de Pokémon Trash, je me suis rendu compte de quelque chose: les tutoriels présentés sont tous outdate et ne marchent pas pour les nouvelles versions de la 3DS et avec les nouveaux jeux qui sont sortis depuis. Je fais donc ce topic pour présenter les méthodes de rom hacking à jour. (Les tutoriels sont en spoiler pour éviter un thread hyper long à lire d'un seul coup)

P-S: Les tutos jusqu'au tuto des textures pour la 7G ont des images mises en Spoiler

EXTRAIRE SON JEU
Spoiler
Pour extraire son jeu, il y a plusieurs méthodes disponibles mais je vais ici montrer les deux méthodes les plus simples. La première est d'utiliser HackingToolKit3DS(plus à jour depuis la V12) par Asia81. La deuxième est d'utiliser https://gbatemp.net/threads/gabrieloromtoolsgui.517483/#post-8268232 GabrieloRomTool, qui accompli les mêmes fonctions que le logiciel d'Asia81, mais avec un GUI et est maintenu a jour. Cependant, je vais présenter uniquement comment faire avec HackingToolKit ici.

Pour ce faire, vous aurez besoin :

Ouvrez le .rar de HackingToolKit et lancez le SetupFR. Une fois que c'est fait, créez un nouveau dossier dans lequel vous allez mettre votre rom au format .cia et hackingtoolkit.3ds. Lancez le logiciel et une fenêtre de commande devrait s'ouvrir, présentant les options du logiciel. Entrez la lettre correspondant à l'option que vous voulez exécuter (Vous voulez extraire un .cia donc vous devrez entrer C ou CE).
Spoiler
Tapez le nom de votre .cia (sans l'extension) et appuyez sur Entrée. Attendez quelque minutes, et plusieurs dossiers/fichiers devraient apparaître dans votre dossier.

Spoiler

Si l'extraction ne réussis pas, vérifiez que vous n'avez pas de caractères spéciaux ni d'espace dans votre nom de fichier !

Modifier son jeu avec PK3DS
Spoiler
PK3DS, c'est LE logiciel de base dans le rom hacking 3ds. Il permet de modifier les textes, les stats, les Pokémon Sauvages et j'en passe. Vous pouvez l'obtenir ici https://teamcity.projectpokemon.org/repository/download/Pk3DS_BuildWindows/34432:id/pk3DS%20Build%20385.zip. Dézippez l'archive dans un dossier à part et lancez le .exe. PK3DS devrait s'ouvrir.

Pour modifier une rom, vous devrez ouvrir le dossier des fichiers du jeu dans PK3DS. Pour ce faire, retirez la rom en.cia du dossier dans lequel vous avez extrait vos fichiers et retirez aussi HackingToolKit3DS. Dans PK3DS, allez dans File -> Open et ouvrez le dossier contenant les fichiers de votre jeu. Si un message disant "PK3DS will function best if you remove unnecessary files", mettez dans un dossier les dossiers ExtractedRomFS, ExtractedExeFS, ExtractedBanner et DecryptedExHeader.bin.

Les options de PK3DS devraient être débloquées. Voici chacune de leurs fonctions.

Conseil : Allez dans Options -> Languages et sélectionnez FR. Votre jeu affichera en français.

Spoiler

  • GameText : Modifie les textes du jeu secondaires (Pokédex, CT, noms de Pokémon..)
  • StoryText: Modifie le scénario du jeu et les textes des PNJ secondaires.
  • Personal Stats: Permet de modifier les bases stats des Pokémon.
  • Evolution: Permet de changer les évolutions et les méthodes d'évolution.
  • Level Up Moves: Permet de changer les capacités que chaque Pokémon apprend après une montée de niveau.
  • Wild Encounter: Permet de modifier les rencontres des Pokémon sauvages.
  • Mega Evolution: Permet de modifier les méthodes de Méga Évolution et d'en créer si le Pokémon spécifié à une forme Alternative.
  • Egg Moves: Permet de changer les capacités qu'un Pokémon apprendra à sa sortie de l'oeuf.
  • Trainer: Permet de modifier les Dresseurs sur les routes (Ainsi que les dresseurs important).
  • Item Stat: Permet de changer l'efficacité d'un objet.
  • Move stats: Permet de changer les Stats des capacités.
  • Maison/Battle maison: Permet de modifier les combats de la Zone de combat (je pense).
  • Pickup: Aucune idée, mais ce n'est pas une option pour changer les objets au sol. Si quelqu'un peut me préciser son utilité, ce serait apprécié.
  • OWSE: Script editor, mais en développement et inutilisable pour le moment.
  • Static Encounter: Permet de modifier les Pokémon qui ne bouge pas. (ex: les Légendaires)
  • TM/HM: Permet de changer les CT.
  • Type Chart: Permet de changer les affinités de type.
  • Shiny rate: Permet de modifier le taux de rencontre de Pokémon Chromatiques.
  • Shop/Mart: Permet de modifier les magasins.
  • Starters: Permet de changer les Starters.
PS: Dépendament de votre jeu, certains options seront à des endroit différent (Ex une fonction dans romfs qui est dans exefs) ou n'existeront même pas. Prenez en note aussi que le CRO editing ne marchera pas sur Citra, il vous faudra une 3DS hack pour jouer avec ces modifications.(Les modifications Romfs et ExeFS marcheront sur Citra, aucune inquiétude).

Faites vos modifications. Certaines options auront un bouton "Save", et il sera obligatoire de cliquer dessus pour sauvegarder vos modifications. Si il y en a pas, alors les modifications se sauvegardent automatiquement.

Modifier les textures des Pokémon dans XY/ORAS
Spoiler
Ce tutoriel est exclusif à la 6G. Le tutoriel pour la 7G est un peu plus bas.

Vous allez avoir besoin du fichier contenant les modèles des Pokémon, un logiciel pour modifier des .png(Photoshop de préférence) ainsi que OhanaXY: https://drive.google.com/open?id=1qmcdfEsbetZBplxO3xS5VEbCZCOtvle9
Le fichier contenant les modèles pour XY se trouve dans le dossier ExtractedRomFS/a/0/0/7. pour ORAS, c'est a/0/0/8.
Ouvrez PK3DS et allez dans Tools -> Garc unpacker(ou (Un)Pack bclim)
Spoiler
et glissez le garc sur le rectangle du haut. Après quelques secondes, vous allez avoir un dossier 7_g ou 8_g contenant entre 7000 et 8000 fichiers.

Spoiler

Comment retrouver le Pokémon que vous voulez modifier ? C'est très simple. Chaque Pokémon est composé de 8 fichiers, dont la structure ressemble à ceci :
1:Modèle
2:???
3:Texture normale
4:Texture SHiny
5: ???
6: ???
7:???
8:???

Suivez cette structure pour trouver votre Pokémon. Pour vérifier un fichier, glissez le .bin dans OhanaXY et vérifiez la section Texture et Model.
Spoiler
Une fois que vous avez le Pokémon ainsi que sa texture dans Ohana, allez dans la section texture et cliquez sur Export All et spécifiez un dossier d'export.
 
Spoiler
Ouvrez votre logiciel et éditez les .png à votre guise.
Spoiler
(Uniquement ceux ayant de la couleur ! Ceux ayant pas de couleur apparente et projection_dummy ne doivent pas être touchés.) Une fois que c'est fait, retournez dans OhanaXY, Texture et faites Import All et sélectionnez le dossier contenant vos .png modes (ou faites import et sélectionnez manuellement les .png modifiés).
Spoiler
Refaites les étapes autant de fois qu'il le faudra pour obtenir une texture qui vous plaît.

Spoiler

Une fois que vous avez modifié tout les Pokémon que vous voulez, fermez Ohana. Retournez dans l'option Garc Unpacker(ou Unpack bclim) et glissez le dossier 7_g/8_g dans le rectangle du haut. Vous devriez avoir un fichier nommé 7_g.garc. Renommez le "7". (Faites un backup du garc original quelque part).

Modifier les textures de Pokémon dans SL/USUL
Spoiler
Ce tutoriel diffère de celui pour la 6G. Cette fois, vous allez avoir besoin de Ohana3DS rebirth(lien à venir) au lieu de OhanaXY. Cette version requiert .net Framework 4.5 ou plus, ainsi que DirectX12.

Les Pokémon sont dans le dossier a/0/9/4/. Ouvrez PK3DS et allez dans Tools -> (un)pack bclim et glissez le garc sur le rectangle du haut. Vous devriez avoir un dossier 4_g. La structure des Pokémon change légèrement aussi.
1: Modèle
2: Texture normale
3:Texture shiny
4:??
5:??
6:??
7:??
8:??

Pour visionner le Pokémon ainsi que sa texture, vous allez devoir glisser le .bin contenant le modèle en premier dans Ohana. allez dans la section Texture, et cliquez sur Import et sélectionnez le .bin contenant la texture. Si tout s'affiche, cliquez sur Export All dans Tetxure et sélectionnez un dossier d'export. Modifiez les .png à votre guise. Pour importer vos textures modifiées, vous allez devoir aller dans Tools ->BCH Texture Replacer. Une nouvelle fenêtre va s'ouvrir. Cliquez sur File -> Open et ouvrez le .bin contenant les textures originales. Cliquez ensuite sur Replace (si vous voulez le faire manuellement) ou Replace All et allez sélectionner le dossier contenant vos textures. Pour sauvegarder, allez dans File -> save and preview. La fenêtre va se fermer et Ohana va se relancer. Pour visionner votre texture, glissez à nouveau le modèle et importez le .bin contenant les textures.

Lorsque vos modifications sont faites, retournez dans PK3DS, Tools ->  (UN)Pack bclim et glissez le dossier 4_g dans le rectangle du haut. Renommez le 4_g.garc pour "4". Veillez à faire un backup du gars original quelque part.

Jouer à votre jeu modifié
Spoiler
Cette partie couvrira la 3DS et Citra. Je vais commencer avec la 3DS.

Pour jouer à votre jeu avec vos modifications sur 3DS, vous allez avoir besoin d'une console hackée sous le Custom Firmware Luma3DS. Si c'Est le cas, continuez à lire, sinon scrollez pour arriver à la partie Citra.

Nous allons utiliser LayeredFS pour jouer à notre mod, parce que ça occupe moins de place sur la carte SD et permet des modifications de patch rapides.

Insérez la carte SD de votre 3ds dans votre PC. Dans le dossier Luma à la racine, créez un dossier "titles". Dans ce même dossier, créez un dossier que vous allez nommer selon le TitleID de votre jeu. Pour récupérer le TitleID, allez sur ce site : http://www.3dsdb.com(portez attention à la région du jeu). Dans ce dossier, créez un dossier romfs(tout en minuscule), dans ce dossier un dossier "a". Maintenant vous devez recréer la structure de fichiers de votre jeu. Pour vous aider, dans le dossier de PK3DS, il y a un dossier backup avec un dossier "a", avec des fichiers nommés avec la direction du garc. Vous allez devoir aller chercher dans VOTRE dossier du jeu, avec les informations du dossier backup de PK3DS, chaque Garc. Recréez chaque dossier avec vos fichiers modifiés. Ensuite, allez dans le dossier ExtractedExeFS et copiez le fichier code.bin dans votre dossier luma/titles/[titleid]/.

Si vous avez tout suivi, votre structure devrait ressembler à ceci:
/luma/titles/[title id de votre jeu/code.bin ainsi que romfs/a/[structure de dossiers]
Une fois que c'est fait, éjectez la carte SD et remettez la dans la 3DS. Appuyez sur Select et maintenez enfoncé en appuyant sur Power pour accéder au menu de configuration de Luma. Cochez l'option "Enable Game Patching" et appuyez sur Start. Allumez votre jeu et il devrait s'allumer avec vos modifications. Si il y a un crash, vérifiez votre structure de dossier.



Maintenant, voici la méthode avec Citra. Lancez HackingToolKit et tapez 3dsb. 3DS Builder va s'ouvrir. Dans chaque option, allez spécifier les dossier RomFS, ExeFS(compressez le code.bin lorsque demandé) ainsi que votre DecryptedExHeader. Donnez un nom à votre .3ds et appuyez sur "Go" et attendez que le programme finisse de construire votre rom. Lorsque c'est fait, elle devrait être lançable sur Citra.

Crédits:
XLuma(moi) pour avoir mis à jour la section
Asia81 pour les topic originaux et pour Hackingtoolkit3ds
Kaphotics pour PK3DS
gdkchan pour Ohana3DS
Aurora Wright pour Luma3DS
Citra-emu pour l'émulateur Citra


Je mettrais cette section à jour avec des captures d'écran et de nouveaux tutos lorsque je pourrais.

J'espère que les tutos auront étés simple à suivre pour la plupart :)
« Modifié: 23 octobre 2018, 23:45 par lglaplante »

lglaplante

  • Membre
  • 10 posts
23 octobre 2018, 14:31
J'ai mis le topic à jour avec des images, histoire que ce soit plus précis pour ceux qui ont besoin d'exemples XD

Bonne lecture :)

Asia81

  • Modérateur de section
  • 8357 posts
26 octobre 2018, 15:05
Le soucis que j'ai avec son GUI, c'est que je suis sûr et certain qu'il à utiliser certains de mes scripts comme base, je lui ai demandé le code source en privé, mais il à pas voulu me le partager...
Sinon la V9 c'est pour les .3ds décryptés (ou .cia, peu importe), V10+ c'est pour les fichiers encryptés (donc dumpés directement sans aucune retouche).
Pour utiliser avec Citra et Luma (via LayeredFS), vaut mieux la V9 et utiliser un jeu décrypté. Mais si tu souhaite reconstruire le jeu final (genre un .3ds ou .cia), sans hésiter la V10+ et un jeu encrypté comme base (même si ca reste mon avis personnel).
Après tu peux aussi extraire un fichier .cia de mise jour (par exemple la V1.4) et mettre les fichiers modifiés dedans.
Ca évite de reconstruire le jeu entier, la màj étant plus légère.

Ca part d'une bonne intention, je relirais quand j'aurais du temps (la mise en forme n'est pas terrible, et il y a beaucoup de fautes) pour le publier sur le site, donc si t'a des questions, MP moi avant.
« Modifié: 26 octobre 2018, 15:06 par Asia81 »

lglaplante

  • Membre
  • 10 posts
26 octobre 2018, 15:10
Le soucis que j'ai avec son GUI, c'est que je suis sûr et certain qu'il à utiliser certains de mes scripts comme base, je lui ai demandé le code source en privé, mais il à pas voulu me le partager...
Sinon la V9 c'est pour les .3ds décryptés (ou .cia, peu importe), V10+ c'est pour les fichiers encryptés (donc dumpés directement sans aucune retouche).
Pour utiliser avec Citra et Luma (via LayeredFS), vaut mieux la V9 et utiliser un jeu décrypté. Mais si tu souhaite reconstruire le jeu final (genre un .3ds ou .cia), sans hésiter la V10+ et un jeu encrypté comme base (même si ca reste mon avis personnel).
Après tu peux aussi extraire un fichier .cia de mise jour (par exemple la V1.4) et mettre les fichiers modifiés dedans.
Ca évite de reconstruire le jeu entier, la màj étant plus légère.

Ca part d'une bonne intention, je relirais quand j'aurais du temps (la mise en forme n'est pas terrible, et il y a beaucoup de fautes) pour le publier sur le site, donc si t'a des questions, MP moi avant.
Pour la mise en forme du truc Je savais pas trop comment condenser autant d'infos dans un tutoriel abordable pour tout type d'utilisateur, et pour les fautes je relirais au grand complet pendant le weekend
Sinon je conseillait la V9 parce que normalement tu dump ton jeu de façon à ce qu'il soit décrypté en même temps, et aussi parce que 3DSB est dessus, ce qui permet une reconstruction pour Citra, mais je spécifierais la V10 dans le tuto

Pages: [1]    En haut ↑