[TUTO][GBA]Ajouter de nouvelles Pierres Évolutives en 10 étapes(dont 2 inutiles)

Pages: [1]

Baitot

  • Membre
  • 491 posts
01 janvier 2014, 20:51
Vous voulez faire évoluer un petit Kirlia ou un Togetic ou encore un Cornèbre avec leur "vrais pierres" ?
Eh bien maintenant c'est possible !
Tonton Baitot va vous expliquer étape par étape avec de beaux screens comment y parvenir.




Préparatif :

Nous aurons donc besoin de :
- Un Editeur Hexa (personnellement j'utilise HxD)
- Une Rom clean de Pokémon (pour l'instant Rouge Feu mais je compte ajouter les autres versions)
- Un éditeur d'objets (comme Item Editor)
- Une Calculatrice qui convertit "Déc" en "Hex" (celle de Windows pour moi)
- Un beau cerveau :)


Comme ce tutoriel est Universel (disponible pour toutes les versions), les offsets changent. Je vais donc nommé les Offsets :
Nom de l'Offset :Rouge Feu :Vert Feuille :Rubis :Saphir :Émeraude
Offset "A"24CD0C24CCE82052302051C03260FC
Offset "B"3D357B3D33B73CD21B3CCD4B587FC3
Offset "C"0A18FD0A18D10CA6490CA6490FDFBD




Note:                                     - Tous les offsets présents dans ce tutoriel seront en hexa.

                                             - Les astérisques (pas Asterix ^^) mis dans le tutoriel seront expliquées.

                                             - Merci de bien vouloir faire une copie de votre rom avant de suivre ce tuto ;
                                             je ne serai en aucun cas responsable si vous faites une mauvaise manipulation
                                             et que vous perdez de nombreuses données.

                                             - "Je suivrai" ce tutoriel avec vous en le faisant de mon côté. Mais si vous voyez
                                             que les Offsets que j'utiliserai sont différents des votre, c'est parce que j'utilise
                                             la rom Rouge Feu.





Tutoriel :

Allez, on commence !

1) Munissez-vous de votre célèbre et fidèle Editeur d'objets : Item Editor ! Ouvrez votre rom et cherchez un objet "?? ?? ?? ??" (mais pas le premier !). Pour ce tutoriel je prendrai celui qui se trouve juste en-dessous du TESSON VERT et modifiez le numéro présent dans "Index". Pour savoir quel numéro mettre, suivez la logique des autres objets ; juste au-dessus du mien se trouve le numéro 51 donc celui en-dessous sera le numéro 52. Ensuite, cliquez sur "SAVE".




2) Une fois cela fait, ouvrez votre calculatrice, sélectionnez "Déc" (Décimal) et tapez votre numéro d'objet de l'Index, soustrayez 13*, cliquez sur "Hex" (hexadécimal) et multipliez le nombre que vous avez obtenu par 4**. Pour moi ça me donne 52 (Déc)  -> 39 (- 13) -> 27 (Héx) -> 9C (x 4).




3) Maintenant, vous pouvez fermer Item Editor et ouvrez votre Editeur Hexa et votre rom. Cherchez un espace libre d'une longueur minimale "A" (moi je choisi 800000) et reprenez votre calculatrice. Ajouter le nombre obtenu tout à l'heure à l'offset "A" (ce qui me donne 24CD0C + 9C = 24CDA8). Rendez-vous à l'offset obtenu (24CDA8 pour moi) et mettez sous forme de pointeur*** l'offset libre que vous avez choisi (ce qui me donne 800000 -> 80 00 00 -> 00 00 80 -> 00 00 80 08) et remplacez les 4 bytes qui se trouve à l'offset de tout à l'heure (24CDA8 pour moi). Et j'ai bien dit REMPLACEZ et surtout pas AJOUTEZ !




4) Allez à l'offset libre que vous avez choisi tout à l'heure (800000 pour moi), sélectionnez "A" byte (ou "10"c'est la même chose mais en décimal) et remplacez les "FF" par ceci : 00 00 00 00 80 00 00 00 00 00Je vous expliquerez à la fin à quoi ceci correspond***.




5) Maintenant reprenez votre calculatrice et le nombre que vous avez obtenu à la fin de l'étape "2)". C'est 9C pour moi.
Multipliez-le par "B" (restez en mode "Hex" !). Ce qui me donne 9C x B = 6B4. Et ajoutez le nombre obtenu à l'offset "B" (ce qui me fait 6B4 + 3D357B = 3D3C2F).




6) Retournez sur votre éditeur hexa et allez à l'offset que vous avez obtenu (3D3C2F pour moi). Normalement vous cette offset doit avoir la valeur "04" (ce qui est égal à un truc comme "CHEN : Pas maintenant...." ou un quelque chose comme ça) et changez-le par "01" (comme ça on peut l'utiliser juste en dehors d'un combat et y a pas la phrase "CHEN : Pas maintenant..."). Vous pouvez maintenant sauvegardez et fermez votre éditeur hexa.





7) Ne vous inquiétez pas, on a fait le plus dur ! *Ouf* Maintenant, re-ouvrez Item Editor et éditez votre objet comme vous voulez (Nom, Prix, Sprite, Palette...) et une fois ça fait, dans la case "Field Usage Code Pointeur", remplacez le nombre que vous avez par l'offset "C" et sauvegardez.
MAIS ATTENTION, NE FAITES PAS COMME DANS MON SCREEN ; J'AI MODIFIÉ LE DESCRIPTION, mais lorsqu'on la modifie, Item Editor ne veut plus ouvrir notre rom, pourtant ça marche mais lui considère ça comme une erreur. Vous devrez donc attendre d'avoir fini de faire toutes vos modifications d'objets avant de modifier la description.

NE FAITES PAS COMME MON SCREEN




8) Maintenant, il faut que votre Pokémon évolue avec cette pierre. Donc ouvrez YAPE et votre rom avec, puis modifiez les évolutions comme bon vous semble. Vous n'avez pas besoin de faire "Options" -> "Editeur d'évolutions" -> décochez la case "Vérifiez les objets" car YAPE considèrera la Pierre que vous avez créer comme une vraie Pierre Evolutive.



9) Testez : http://www.4shared.com/embed/4287769027/9bf8fa91 (J'ai pas modifié le sprite car j'avais la flemme. Et la description, comme je vous ai dit, elle provoque un bug sur Item Editor alors que c'est tout à fait correct. J'essaierai de corriger ce bug.



10) Profitez (yes, j'ai réussi à faire 10 étapes -dont 2 inutiles ^^- !!!)




Explications :
En fait, là vous avez suivi des instructions mais qu'avez-vous compris ? Rien ? Eh beh c'est pour ça que Super Baitot vous viens en aide !
J'ai mis des astérisques dans le tuto, et là je vais vous les expliquez, cool non ?
Alors :

soustrayez 13* = On soustrait 13 car les Pokéballs n'utilisent pas la même table que les objets présents dans celle-ci.
Et là vous me direz : "Oui mais Baitot, y a que 12 types de Pokéballs"
Et je vous répondrez sagement : "Mais le première objet est un "?? ?? ?? ??" on l'ajoute donc aux Pokéballs, ce qui fait 12 + 1 =
Et vous répliquerai : "15 !"
Et moi : "Arrête de sécher tes cours de maths, ça fait 13 !!!!".
Et vous me répondrai : "Et pourquoi ils n'utilisent pas la même table ? Ils ne mangent pas ensemble ?"
Et moi : "Une table est un ensemble de pointeurs, et comme tu connais rien et que tu ne sais pas c'est quoi un pointeur je vais t'expliquer dans la troisième astérisque. Et une table commence toujours à un offset se terminant par : 00 ; 04 ; 08 ; 0C (donc par un multiple de 4)".



Multipliez le nombre que vous avez obtenu par 4** = Les pointeurs sont composés de 4 bytes dont un byte qui est toujours le même : "08" donc on multiplie par 4.

Pointeur*** = Ce mot revient souvent lors d'un tutoriel. Un pointeur est composé de 4 bytes. Il permet  -comme son nom l'indique-, de pointer vers un offset. Autrement dit, il "dit" au jeu de se rendre à un offset. Pour trouver le pointeur d'un offset, il faut inverser ses chiffres et ajouter "08" à la fin ; c'est ce qui indique au jeu que c'est un pointeur. Imaginons un offset tel que X, Y et Z sont des chiffres : XX YY ZZ. Sous forme de pointeur, ça donne ZZ YY XX 08 soit on retourne ses chiffres.
Si l'offset est par exemple A000, il ne possède que 4 chiffres, soit 2 bytes, donc on ajoute des "0" à gauche : 00A000 et on peut le mettre en pointeur : 00A000 -> 00 A0 00 -> 00A000 -> 00A00008


Je vous expliquerez à la fin à quoi ceci correspond*** = Le code 00 00 00 00 80 00 00 00 00 00 est le code qui permet au jeu de comprendre que c'est une pierre évolutive. Pour trouver ce code, j'ai fait comme je vous ait demandé de faire à l'étape "3)" mais j'ai pris une pierre soleil.
Je vous explique :
Le numéro d'une PierreSoleil est 93 (Dec) -> 80 (-13) -> 50 (Hex) -> 140 (x 4) -> 24CE4C (24CD0C = Offset "A" de Rouge Feu + 140).
Et à l'offset 24CE4C se trouve un pointeur : A6 CC 24 08 donc on le "dépointe" -> A6 CC 24 08 -> A6 CC 24 -> 24CCA6. Donc, à l'offset 24CCA6 y a une longueur de "A" avant un autre "80". Il me semble qu'on a juste besoin d'avoir une longueur de "7" mais on ne sait jamais.




Au revoir et à plus tard pour un nouveau tuto ^^ !


EDIT: J'ai oublié un screen x).
« Modifié: 02 janvier 2014, 11:13 par Baitot »

Arnik

  • Membre
  • 1812 posts
01 janvier 2014, 20:55
Bon travail comme d'hab'.

yago58

  • Invité
01 janvier 2014, 20:56
Bonne initiative et tuto bien expliqué.

Évites le rouge s'il te plait, c'est assez moche.

Baitot

  • Membre
  • 491 posts
01 janvier 2014, 20:58
Merci à vous deux.
Je mets quelle couleur ? Du noir ^^ ?

yago58

  • Invité
01 janvier 2014, 21:01
Du vert, tuto ajouté à la bibliothèque

Baitot

  • Membre
  • 491 posts
02 janvier 2014, 11:15
Ajout de toutes les versions + Simplification avec YAPE.

Unifag

  • Membre
  • 883 posts
03 janvier 2014, 02:10
Good job.
C'est bon de voir de nouveaux tutos.

Baitot

  • Membre
  • 491 posts
03 janvier 2014, 11:33
Merci, mais c'est en quelque sorte grâce à toi.

Dam

  • Membre
  • 1768 posts
11 janvier 2014, 14:57
Très bon tutoriel !

Pages: [1]    En haut ↑