Aujourd'hui, en ce jour merveilleux, notre cher ami Sainior va vous inculquer la pratique du ROM-Hacking. Se servir des principaux logiciels, assimiler les idées, les principes et bien d'autres choses qui feront de vous un nouvel aspirant-hackeur !

Rappel sur le ROM-Hacking

Il est très fortement conseillé d'avoir lu la page de présentation du ROM Hacking avant de s'attaquer à ce tuto !

Maintenant que vous avez assimilé la théorie, place à la pratique ! Je vais vous apprendre grâce aux nombreux logiciels disponibles, qu'il est possible de modifier la quasi-totalité du jeu :

-Les maps (cartes),
-Les personnages,
-L'histoire,
-Les objets,
-Les Pokémon, ...

Tout ça t'as donné l'eau (ou le Pastis) à la bouche, n'est-ce pas ?
Je le savais ! Passons maintenant aux 2 principaux logiciels...

Advance Map

Le must ! Advance Map fait son entrée !

On va commencer par le meilleur, mais aussi un des plus... complexes. Complexe à cause de ses nombreuses fonctionnalités.
C'est sur ce logiciel que vous allez passer la plupart de votre temps. Il sert à modifier des maps, des scripts, des personnages, l'histoire par la même occasion, et bien plus encore...


On commence ? Let's go !

 - Téléchargez une ROM GBA (on va travailler sur support GBA).
 - Téléchargez Advance Map.

Ouvrez-le. Vous arrivez ici :


Page d'acceuil Advance Map

Chargez votre ROM. Pour cela : "Fichier" -> "Charger la ROM" ; ou bien cliquez sur la petite icone en-dessous de "Fichier" (l'autre sert à sauvegarder votre travail).
Bon, maintenant, on va décortiquer l'interface, avec "Bourg-en-Vol" en exemple. Je vais vous expliquer comment modifier une map.


Sur le côté se trouvent :
- "Header de Maps",
- "Fichier INI",
- "Maps temporaires".

Cliquez sur "Header de Maps". Une liste va se dérouler :


Header de Maps

Explorez un peu, découvrez, pour cela, double-cliquez sur "0" et double-cliquez sur la map de votre choix. Vous pouvez aller voir celles des autres numéros, "1", "2", "3", ...
Maintenant que vous vous êtes familiarisé avec les maps du jeu, on va apprendre à les modifier. Agrandissez la fenêtre, ce sera plus facile pour travailler.
J'ouvre Bourg-en-Vol, de Pokémon Émeraude :


Map Bourg en Vol Pokémon Émeraude
Voir l'image en grand !

Vous avez surement remarqué, sur la droite, ce qu'on appelle un "tileset".
Pour faire simple, encore une fois, on pourrait dire que ce sont les éléments qui composent la map.
Ce sont des "blocks" qui s'assemblent et forment une maison, un lac, un rocher, etc... Cliquez donc sur un block, et appliquez-le sur l'image. Pour ma part, je vais ajouter un rocher :


Ajout d'un Block
Voir l'image en grand !

Facile, n'est-ce pas ?

Vous aurez surement vu, qu'en faisant un clic-droit sur un block de la map, le block est automatiquement assigné à votre pointeur !

"Quoi, mais y a que ça en blocks ? Pas plus de choix ?" Attends, petit n00b. Attends. Ça va venir.
Avant ça, on va apprendre à modifier les "infos mouvements". C'est ce qui permet au personnage de marcher, se cogner, aller sur l'eau, ...
Pour modifier les "infos mouvements", cliquez sur l'onglet "Infos mouvements" (omg). Ça vous donne ceci :


Infos Mouvements

Vous pourrez apercevoir sur la droite, des chiffres, et des lettres. Ce sont les informations de mouvements.
Par exemple, le "1" permet d'arrêter le personnage, il va se cogner. On l'applique donc sur les rocher, les maisons, les arbres...
Le "C" permet au personnage de marcher, tout simplement. Le "4" lui permet d'aller sur l'eau.
Il existe beaucoup d'infos mouvements, mais ce sont les 3 principales.


Voici une liste des fonctionnalités de chaque info :

 - 0 = Une porte ou un escalier. Il sert à faire la transition entre plusieurs étages.
 - 1 = Block solide, sert à délimiter un solide (rocher, arbre,...) afin de ne pas le traverser.
 - 1C = 2ème niveau d'une montagne.
 - 1D = 2ème niveau d'une montagne solide (agit comme 1).
 - 4 = Eau, surf seulement.
 - 5 = Block solide dans l'eau. Agit comme 1.
 - 10 = Un pont, permet de passer en dessous.
 - 14 = 1er niveau d'une montagne.
 - 24 = 3ème niveau d'une montagne.
 - 25 = 3ème niveau d'une montagne solide (agit comme 1).
 - C = Marche autorisée, rez-de-chaussé.
 - D = Block solide, rez-de-chaussé.


En pratique : tout à l'heure, j'ai ajouté un rocher. Pour éviter que le personnage le traverse, on va mettre des "1".
Ce sont des blocks, comme tout à l'heure :


Mouvements sur les Blocks

Passons à présent aux "évents".
Ça va se compliquer, mais pas de panique. Assurez-vous d'avoir bien compris les fonctions précédentes, et ça devrait bien se passer.
Cliquez sur "Events" pour accéder aux... évents :


Events Advance Map
Voir l'image en grand !

Les explications sont sur l'image (je vous le dis au cas où). Maintenant que je vous ai donné les noms des 4 types d'évents, je vais vous expliquer à quoi ils servent :

 - Le personnage (omfg). Il peut interagir avec vous, c'est-à-dire vous parler, faire une action spéciale, comme vous donner un objet, un Pokémon, ...
 - La pancarte. Elle affiche un message quand vous lui "parlez".
 - Le script. Il va déclencher un évènement spécial. Celui que je vous ai montré déclenche une chose : quand vous marchez dessus, une petite fille vient vous dire de ne pas allez par là.
 - Le warp. Il va permettre de passer d'une map à une autre. Exemple de celui que je vous ai montré : il vous permet de passer à la map du laboratoire du Prof. Seko.

Ici, je ne vous apprendrai qu'à modifier les évènements. Pour créer des scripts, il faudra vous reporter à un autre tuto.

Justement, comment modifier les évènements ?


Modifier les Évènements

Cette fonction se trouve tout en bas à droite. On peut y voir le nombre d'évents présents sur la map.
Dans mon exemple, j'ai 8 personnages, 4 pancartes, 3 warps et 9 scripts.
Je voudrais rajouter un personnage. Il suffit de cliquer sur la mini-flèche pointant vers là-haut, ou bien d'écrire 9 à la place de 8.

Le personnage n'est pas ajouté. Il faut cliquer sur "Changer Events". Cette fenêtre s'ouvre alors :


Fene&eacirc;tre Changer Events

- Téléchargez FSF.
- Extrayez-le et ouvrez-le.
- Chargez votre ROM.
- Cliquez sur "Rechercher".
- Cliquez maintenant sur "Copier".

Ce que vous venez de copier s'appelle un offset, c'est une série de chiffre et de lettre qui est une "place" dans la mémoire de la ROM, un espace inoccupé si vous préférez.

Mais revenons à l'autre fenêtre. Faites tout comme moi :


Modifier l'offset

Puis cliquez sur "OK". Attendez, puis une fenêtre va s'ouvrir, cliquez sur "OK", et "Repointer", en bas de la fenêtre.
Il faudra faire tout ça assez souvent, vous verrez.

Vous pouvez maintenant constater qu'un personnage est apparu dans le coin supérieur gauche de votre map :


Ajout d'un personnage
Voir l'image en grand !

Déplacez le où vous voulez. Voilà ! Vous venez de créer un personnage !
Pour modifier son script (s'il parle, s'il fait quelque chose de spécial), on verra ça un peu plus tard. Pour ajouter des warps, pancartes, etc., c'est la même chose que pour les personnages.

On va maintenant apprendre à modifier le warp, pour qu'il nous emmène là où on veut qu'il nous amène.
Faites un nouveau warp, ou bien cliquez sur un warp déjà existant. C'est ce que je vais faire :


Modifier un Warp
Voir l'image en grand !

Sur le côté, vous apercevrez : "Bank n° :" et "Map :". Ce sont les coordonnées de la map à laquelle il nous emmène. Il suffit de changer ces coordonnées pour modifier la destination du warp.
Mais comment connaitre ces coordonnées ? Comme ceci :


Coordonnées d'un Warp

Le premier chiffre correspond au numéro du Bank. Le Bank, c'est tout simplement le nom (chiffre) du dossier qui contient les maps.
Clémenti-ville se trouve dans la Bank 0, tout comme Bourg-en-Vol, ou Poivressel.

Le 2ème chiffre, après celui du Bank, est celui du numéro de la map. Clémenti-ville est la map n°0. Lavandia est la n°2.

Revenons au warp. Dans "Bank n° :", il suffit de noter le numéro du Bank dans lequel la map se trouve. Dans "Map :", il suffit de noter son numéro.
En pratique (je veux que le warp m'amène à Lavandia) :


Coordonnées du Nouveau Warp

Je note ses coordonnées, et je clique sur "Atteindre".
À vous. Sauvegardez les changements si vous le voulez, et vous vous retrouvez à "votre" map. Bien sûr, si je veux pouvoir retourner à Bourg-en-Vol, je dois tout refaire en sens inverse, c'est logique.

Note : Lorsque vous faites des changements dans le jeu, n'oubliez pas de sauvegarder votre travail !

Vous savez modifier les warps !


On vient de conclure une grosse partie de votre apprentissage. Pfiou !

On va maintenant s'intéresser aux Pokémon sauvages. Eh oui, vous pouvez même ajouter une zone de capture, ou modifier les Pokémon s'y trouvant !


Cliquez sur l'onglet "Pokémon sauvages" :


Onglet Pok&eacutemon Sauvages
Voir l'image en grand !

Cliquez sur "Créer une zone de Pokémon sauvages" (il faudra au préalable ajouter des hautes herbes et/ou un point d'eau).
Cette fenêtre apparait :


Créer une Zone de Pokémon sauvages

Cochez la case que vous voulez, suivant votre map. Moi, je vais cliquer simplement sur "Hautes Herbes".
Cliquez ensuite sur "OK". La même fenêtre que tout à l'heure apparait.
Cherchez un offset avec FSF, bref, faites comme précédemment.

Attention : Ne mettez jamais le même offset !


Cliquez sur "Rechercher après" (si vous n'aviez pas quitté FSF). Repointez (il faudra le faire deux fois), et vous arrivez à ceci :


Sélection des Pokémon à faire Apparaître

Sélectionnez le ou les Pokémon que vous souhaitez voir apparaître, leur fréquence d'apparition, leur zone (hautes herbes, en surfant, en pêchant...), et leurs niveaux Min/Max.
Cliquez sur Sauver, et c'est dans la boite !


On a presque fini avec Advance Map. On va à présent apprendre à modifier l'Header de la map.
L'Header, c'est tout simplement l'ensemble des informations relatives à la map, comme sa musique, son nom, sa taille, ses tilesets (oh!)...


Cliquez sur "Header" :


Modifier l'Header
Voir l'image en grand !

Pour modifier le nom de la map :
 - Effacez son nom, et remplacez-le par celui que vous voulez.
 - Cliquez ensuite sur "Changer le nom". Il faudra parfois repointer, parfois non.

Descendez un peu. Vous arrivez aux caractéristiques de la map. Sa musique, sa météo, ses types de combats,...

Modifiez-les comme bon vous semble. Plus bas se trouve le "Level script". Trop difficile pour l'instant, ne vous en occupez pas.
Finalement, en bas, se trouve les tilesets, et la taille de la map. Pour modifier les tilesets, il vous faudra modifier les 2 chiffres.
Regarder les tilesets des autres maps, et entrez celui que vous voulez dans votre map. Apres avoir modifier la taille, il vous faudra repointer.


Et voilà ! Nous en avons enfin fini avec Advance Map !
Dans un autre tuto, je vous expliquerai comment ajouter une nouvelle map, et comment l'insérer.


Fin d'Advance Map

Soufflons donc un peu. On va maintenant s'attaquer à votre apprentissage "secondaire".
Je vous le dis tout de suite, la plus grosse chose est faite. Maintenant, on va y aller pépère, tel Bob Marley et son énorme pet'...


Comment éditer un texte (de personnage, de pancarte) ? Il va vous falloir le logiciel XSE (eXtrem Script Editor), téléchargeable via ce lien : XSE. On va l'assigner à Advance Map.

Pour cela, ouvrez Advance Map, cliquez sur "Préférences", et sur "Sélectionnez l'éditeur de script". Sélectionnez XSE, et c'est fini ! Trop simple !
Pour éditer, ou modifier, un texte de personnage, restez dans Advance Map. Cliquez sur un personnage, et sur "Ouvrir un Script" :


Ouvrir un Script

Cette fenêtre s'ouvre :


XSE Script
Voir l'image en grand !

Pour modifier ce que ce personnage dit, je vais tout d'abord effacer son message :


Suppression du texte d'un Personnage
Voir l'image en grand !

Je vais maintenant écrire autre chose à la place, tout simplement !


Modification du texte d'un Personnage
Voir l'image en grand !

Quand vous avez fini, cliquez sur le petit dessin représentant deux engrenages, il signifie "compiler" :


Compiler
Voir l'image en grand !

Cliquez sur "fermer", puis quitter. Ne sauvegardez pas le script. Sauvegardez plutôt votre travail comme d'habitude.
Pour modifier les messages de pancarte, c'est exactement la même procédure.


Nous approchons de la fin de ce tuto d'initiation !
Votre apprentissage est loin d'être terminé, mais vous connaissez les bases pour réaliser une bonne Hack-ROM.
Je voudrais cependant vous enseigner une dernière petite chose :


Pour faire une bonne Hack-ROM, vous aurez besoin d'une équipe.
Tout seul, c'est mission quasi-impossible. Ne recrutez pas de gens qui n'ont pas fait leurs preuves, demandez-leur par exemple de vous faire une map, des trucs de bases pour les tester...
Faire un (bon) projet demande énormément de patience, et nombreux sont ceux qui abandonnent en cours de route. Vous ne pourrez pas tout faire tout seul, recrutez donc :


- Un ou deux mappeurs. Ils se chargeront de faire les maps que vous demandez.

- Un ou deux spriteurs. Si vous vous lancez dans un gros projet, où vous insérez de nouveaux Pokémon (oui, oui c'est possible), vous aurez besoin de gens qui savent faire des sprites.

- Un ou deux scripteurs. Le poste le plus recherché. Il est souvent laborieux de scripter, mais un de mes tutos vous apprendra tous ce qu'il vous faut savoir !

- Un scénariste, pourquoi pas. Si vous modifiez une histoire, vous aurez surement besoin de quelqu'un qui a de bonnes idées, qui peut vous sortir des scénarios...

- Un débuggeur (facultatif). Il traque les bugs présents dans la ROM, et les corrige.

- Un artworkeur (facultatif). Ça peut être utile en cas de nouveaux Pokémon, dresseurs...


Voilà pour l'équipe !


Je rappelle que votre apprentissage ne s'arrête pas là, c'est pour cela que je vous (re)conseille fortement d'aller voir les autres tutos disponibles sur ce Mini-Site Logiciels.
Vous apprendrez à changer les starters, modifier les statistiques des Pokémon, et plein, plein d'autres choses...


Une dernière chose : la meilleure façon d'apprendre sera de commencer un projet, et de faire par vous-même. On n'apprend jamais mieux que par soi-même !


C'est donc sur ces mots que je vous dis à bientôt dans le monde fabuleux du ROM-Hacking !

Par Sainior, mis à jour par Yago

Par Loris