L'hexadécimal dans le ROM-Hacking

Pages: [1]

Flower//

  • Invité
12 décembre 2011, 16:04

Un vieux tuto que j'ai entièrement refait.








L'Hexadécimal
Dans le ROM-Hacking




Bien le bonjour !  Aujourd'hui tonton Flow' va vous expliquer la base du système hexadécimal dans une ROM, et je vous promet que vous n'allez pas être déçu !




C'est quoi... l'hexadécimal ?


L'hexadécimal, c'est un système de numérisation positionnel de base 16, par définition.
Pour dire simplement c'est un ensemble de signes qui permet de caractériser des nombres. L'hexadécimal fonctionne en 16 symboles, de 0 à 9, et de A à F. Vous trouverez donc dans l'hexadécimal un petit Alphabet composé de ces 16 symboles: 0 1 2 3 4 5 6 7 8 9 A B C D E F.

Hexadécimal est composé de deux mots: Hexa qui caractérise le chiffre 6, et décimal qui fait référence à 10. Le tout, donc, 10+6=16. Vous connaissez l'origine de l'hexadécimal.

Techniquement parlant, ce drôle de langage qui pourrait sembler inutile à tout point de vue est pourtant le meilleur ami du ROM-Hacker. Pourquoi donc ?  Tout simplement parce qu'on l'utilise sans le savoir. C'est l'hexadécimal qui est utilisé lors de la modification de ROMs, en gros, lorsque vous utilisez Advance Map pour modifier votre ROM, c'est la forme hexadécimale de la ROM qui est modifiée.

Pour expliquer en trois mots à quoi sert l'hexadécimal en ROM-Hacking, c'est un moyen de lire votre ROM de manière à y attribuer des modifications.

Nous allons plonger dans les coulisses des logiciels. Comment est-ce que ces petits logiciels arrivent à modifier notre ROM ?  Il n'y a pas de magie, nous allons voir ça tout de suite !





Comment ça se présente ?



Vous vous demandez surement à quoi l'hexadécimal ressemble ?  Voici un petit exemple:



Arrrrgh !!!!! Mais Flow' explique moi qu'est-ce que c'est que tout ça ??!!?

Ne vous inquiétez pas, votre réaction est tout à fait normale !  
C'est un langage (ou charabia, c'est vous qui voyez) plutôt compliqué que peut de monde arrive à comprendre, mais pourtant, il va nous être grandement utile...



D'accord, mais, heu, comment on fait apparaître ça ?


Vous pouvez ouvrir votre ROM sur le bloc-note, mais bon, pour profiter des "bienfaits" de l'hexadécimal pleinement , il nous faut un bon logiciel, clair, et facile d'utilisation... Et pour cela, je vous propose Hex-Editor MX !  

Télécharger Hex-Editor MX:
http://www.pokemon-legendary.com/downloads/Hex-EditorMX.zip


Ce super logiciel à la pointe de la technologie (ironie, hein) va vous permettre de lire votre rom en hexadécimal !


Ouvrez-le:




Oulaaaaa !!! Mais c'est tout en Allemands !
  

Ne vous inquiétez pas, faites tout comme moi, cliquez sur "optionen" en haut, puis sur "Einstellugen...", vous arrivez ici:






Cliquez ensuite sur "Sprache" à gauche et choisissez Français, un message s'affichera, cliquez sur "OK":




Fermez le logiciel et relancez-le, IL EST EN FRANÇAIS !!!






Une première grande victoire !

Faites maintenant fichier, ouvrir, puis insérez une rom gba, nous allons passer à la pratique...




Comprendre le système Hexadécimal


Une foi votre rom gba ouverte sur Hex Editor, vous obtenez ceci, pour ma part, j'ai ouvert Pokémon Rouge Feu:






Voilà quelque chose de bien compliqué...  

Commençons par le commencement, vous remarquerez que si vous sélectionnez du code, la partie correspondante, à droite, se sélectionnera elle aussi:






C'est le principe ! La partie à gauche correspond à celle de droite !  

Vous remarquerez tout à gauche qu'il y a plein de petits "0x000quelquechose:", regardez:






Regardons-en un de plus près...Mais oui, c'est bien un offset !  
En effet lorsque vous scriptez, vous utilisez ce petit "0x", n'est-ce pas ?

Si vous êtes perspicaces, vous aurez compris qu'un offset correspond à chaque ligne. En gros, chaque offset contient des informations. C'est même le but d'un offset, un offset est un petit espace libre qui sert de stockage.

Par exemple, pour créer un warp, vous savez faire hein ?  Il faut trouver un offset libre par FSF, vous le rentrez, et la mémoire de l'offset se remplira. L'offset contiendra les informations nécessaires pour que le warp vous mènent là où vous avez choisi. Astucieux !

En faisant un schéma simple:
J'arrive au warp dans le jeu
---> Le warp renvoi à un offset (celui que l'on a entré sur Advance Map)
--->Les informations quui sont dans l'offset disent: Attention, on est sur un warp, il faut sa rendre à tel endroit
--->L'information revient au jeu, on se retrouve à l'endroit voulu !  


D'autres évènements doivent fonctionner avec 2 offsets, comme un script par exemple:
L'un contient les informations concernant le script, et l'autre le contenu du script, par exemple, si le personnage va parler, il dit:
Offset1 "Attention, ce personnage va effectuer un message normal, veuillez vous rendre à l'offset 2"
Offset2 "*le message du personnage*"

Encore un exemple ? Et bien les images ! Elles aussi ont besoin de deux offsets:
Le premier contient les informations sur la palette.
Le deuxième contient l'image.

Si cous changez de palette, l'image aura la même forme mais pas la même couleur.


Vous avez tout bien compris ?  On passe à la suite.
 

Bon, c'est très joli tout ça me direz-vous, mais comment on reconnais un offset vide ?

Bonne question puisque ce sont les vides que l'on va remplir !
Et bien c'est très simple, il n'est constitué que de F:







Votre première modification hexadécimale via un logiciel


Maintenant que vous avez compris comment fonctionne l'hexa, on vas passer à la pratique.  
Nous allons changer les données de la rom ! Pour cela, on va utiliser un petit logiciel appelé Rom Header Editor !  


Télécharger Rom Header Editor:
http://www.pokemon-legendary.com/downloads/RHEA.zip


Ouvrez le logiciel et chargez la même ROM qui est en même temps ouverte sur Hex Editor, vous arrivez ici:






Ici vous pourrez changer le code du jeu (ce que je ne vous conseille pas, vous ne pourrez plus ouvrir la rom avec les éditeurs), vous pourrez changer aussi le nom de la rom ainsi que son fabriquant.


Retournez sur Hex Editor et regardez bien cet endroit:







Retournez sur RHEA (Rom Header Editor Advance), changez le nom de la rom puis sauvegardez:







Fermez RHEA et Hex Editor, relancez Hex Editor, insérez votre rom et...  :







INCROYABLE,  vous avez changé le nom de la rom, qui été inscrit en Hexadécimal !



ATTENTION changez plutôt le nom de votre Hack-Rom une foi celle-ci terminée car une foi changé, les éditeurs ne pourront plus lire votre rom et vous ne pourrez plus y appliquer de modifications. Mais vous pourrez toujours y jouer sur émulateur.
Certains Rom-Hackers font cela pour empêcher d'autres personnes de travailler sur leur création et gardent ainsi leurs secrets de "fabrication" (C'était le petit conseil du jour).



Voilà on en a terminé pour aujourd'hui !  Vous vous coucherez moins bête ce soir et ce tuto vous aidera à mieux comprendre comment fonctionne une ROM. Allez, sur ce, bonne journée et restez connecté sur Pokémon Trash !




Flow'
« Modifié: 12 décembre 2011, 17:37 par Flow' »

Efferalgan

  • Membre
  • 4020 posts
12 décembre 2011, 16:38
Hexa, c'est 8, décimal, c'est 10.
Donc hexadécimal, c'est 10+6=16.

Ahok.

Flower//

  • Invité
12 décembre 2011, 16:39
Faute de frappe, merci bien d'avoir remarqué.

Weby

  • Membre
  • 56564 posts
12 décembre 2011, 18:28
Hexa c'est 6 kthx

Flower//

  • Invité
12 décembre 2011, 18:30
Sans blagues...
T'as lu au moins ?  =='

Weby

  • Membre
  • 56564 posts

Arnik

  • Membre
  • 1812 posts
12 décembre 2011, 19:58
Un petit exemple, si je veux ajouter la moto, je peux le faire mais comment?

The New Azerty

  • Membre
  • 2597 posts
12 décembre 2011, 20:20
J'ai une question : peut on, après avoir changé le nom, remettre à l'aide de ce logiciel le titre de base afin de pouvoir modifier ?

Flower//

  • Invité
12 décembre 2011, 20:31
J'ai une question : peut on, après avoir changé le nom, remettre à l'aide de ce logiciel le titre de base afin de pouvoir modifier ?

Oui, c'est possible, masi faut-il encore s'en souvenir, ainsi que le code de la ROM


Un petit exemple, si je veux ajouter la moto, je peux le faire mais comment?

Mauvais topic mec, pour faire une moto t'as juste à utiliser NSE. Ca n'a rien à voir avec les modifications hexadécimales.

Arnik

  • Membre
  • 1812 posts
12 décembre 2011, 20:58
Donc, il est impossible de modifeir la vitesse du vélo? Au moins un peu? Car pour NSE, je le savais déjà.

Flower//

  • Invité
12 décembre 2011, 21:00
Non, c'est impossible de modifier la vitesse du vélo, enfin, impossible n'est pas français, disons que c'est très difficile, personne ne l'a fait jusque là.

Pages: [1]    En haut ↑