[Gba - Tuto] Rendre viable les 25 pokémons "??"

Pages: [1]

Unifag

  • Membre
  • 883 posts
04 août 2013, 16:25
Rendre viable les 25 pokémons "??"

Si vous êtes la c'est que vous voulez insérer plus de pokémons dans votre rom-hack, et la solution que vous avez trouvé pour faire ça c'est d'utilisé les 25 slots "??", et c'est une bonne solution, mais sachez que je ne suis pas la pour vous expliquer comment modifié leur sprite/stats/etc, pour ça il y à d'autres tutos.
Le souci avec ces 25 slots c'est qu'il on un cris de zarbi et qu'en plus de ça on ne peut pas les insérer dans le pokédex sans devoir retiré un pokémon déjà existant, ce que je vous propose ici c'est donc de leur donné leur propre cris, et plus tard j'ajouterais une partie pour que vous puissiez ajouter des entrées dans le pokedex, et donc ajouter les pokémon "??".

Remarque:  Les offsets donné dans ce tuto sont valable uniquement pour rouge feu, je n'ai pas cherché les offsets pour les autres versions, à vous de les chercher.
Remarque:  Les nombres précédé d'un '0x' sont en hexadécimal, sinon il sont en décimal.
Une bonne maitrise de l'hexadécimal est requises pour ce tuto. Et soyez bien vigilent, on à vite fais de se tromper lors d'un calcul ou d'oublier de repointer.


            Les outils nécessaire

Votre éditeur Hexadécimal qui sera notre seul outil.

Les cris

Remarque: Attention je ne vais pas vous apprendre comment ajouter des cris, mais seulement comment ajouter les pokémons "??" dans la table des cris, c'est différent. Je crois pas qu'il y est de tuto pour insérer des cris mais avec PokeCry c'est très simple, faite surtout attention à seulement insérer le cris, il ne faut pas que le logiciel touche à la table.

Les cris des pokémons sont tous recensé dans une table, c'est à partir de cette table que le jeu sais où aller chercher le cris du pokémon. A partir de la on pourrais se dire que le problème est simple, qu'il suffit de modifié les pointeurs correspondant au pokémons "??" pour ne plus qu'il pointe sur le cris des zarbi mais sur un cris que vous avez inséré vous même, si seulement ça avait était aussi simple, mais la table ne contient même pas les pokémon "??" car le jeu fais une vérification, et si le pokémon est 1 des 25 slot "??" il le fais passer pour un zarbi lors du chargement du cris.
Il y à plusieurs façon de résoudre ce problème, j'en est choisis une modulable et pas trop compliqué a mettre en place pour vous faciliter la tache mais aussi parce-que ce sera plus simple pour moi quand j'essayerais d’insérer de nouveaux pokémon :D (Au début j'avais écrit un tuto où il fallait insérer deux table de 3500 octets chacune puis je me suis dit que c'était un peu contraignant, je suis gentille non?)
Mais fini les bavardage, commençons.

            Crée une nouvelle table

Comme je vous l'ai dit j'ai choisis une solution très modulable ce qui nous permet d'utiliser une table uniquement pour les 25 slots "??", donc pas besoin de modifier la table d'origine.
Je vous donne la table à insérer, elle fais 0x12C donc prévoyez la place nécessaire et notez l'offset où vous l'insérer:
20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00 20 3C 00 00 8C 5C 50 08 FF 00 FF 00Cette table contient 25 entrées qui seront celle de nos 25 slots "??", pour le moment elle est vierges, enfin presque vierge puisque pour le moment tous les pointeurs pointe sur le cris de bulbizare. Je précise pour ceux à qui ça ne semble pas évident mais les éléments sont dans le même ordre que les pokémons, ainsi le premier élément de la table correspond au cris du premier pokémon "??".
On remarque facilement un schéma récurant qui est le suivant:
20 3C 00 00 8C 5C 50 08 FF 00 FF 00Vous ne devez pas touché au 20 3C 00 00 ni au FF 00 FF 00, le seul élément que vous devez modifiez est le 8C 5C 50 08 qui est le pointeur du cris, la il pointe sur le cris de bulbizare c'est donc à vous de le changez pour qu'il pointe vers votre nouveau cris.

            Insérer la routine ASM

Vous commencez à en avoir l'habitude avec moi, la plus part des changement dans les mécanisme du jeu implique de passé par l'asm, et encore une fois je vous fourni la routine que j'ai faite pour pouvoir utilisez notre nouvelle table avec les pokémon "??". Vous pouvez l'inséré où vous voulez, notez juste l'offset on va en avoir besoin:
02 BC 03 49 40 18 0C 21 48 43 02 49 02 4B 18 47
05 FF FF FF [color=#BF0000]XX XX XX 08[/color] A1 21 07 08
Cette routine à pour rôle de calculer l'offset du cris pour notre nouvelle table.
Vous devez remplacez XX XX XX 08 par un pointeur sur votre table.

            Quelques petite modifications supplémentaire

Maintenant il ne reste plus qu'a indiqué au jeu que, quand il s'agit d'un des pokémons "??" il doit se rendre à la  1ere routine que l'on viens d'inséré et non le considéré comme un zarbi.
Pour ça je vous demande de vous rendre à l'offset 0x431DC et d'y coller ceci:
Citer
00 B5 00 04 00 0C FA 28 0A D9 FF 21 14 31 88 42
04 D9 04 49 40 00 40 18 00 88 01 E0 02 49 08 47
02 BC 08 47 FC DB 24 08 XX XX XX 08 FF FF FF FF
FF FF FF FF
Ce que j'ai mis en rouge est un pointeur sur la routine ASM que nous avons inséré, pour rappel un pointeur sur une routine ASM doit être "offset"+0x1 (puis inverser bien sur).
Et voila, vous pouvez utilisez un autre cris que celui de zarbi pour les 25 slots "??".

Arnik

  • Membre
  • 1812 posts
04 août 2013, 17:32
Au fait, tu ne connaîtrais pas un moyen pour ajouter plus d'attaques à un Pokémon sans en effacer ailleurs?

Unifag

  • Membre
  • 883 posts
04 août 2013, 17:36
Je met sa sur ma liste  ;)
 
Edit: c'est pas en rapport direct avec le sujet mais je savais pas où mettre ça et que ça traite aussi du pokédex et que c'est cette recherche qui ma amener à trouvé ça je mes ça ici. Ceux qui veulent modifié le nombre de pokémon dans le dex régional ça se passe à l'offset 0x10390A, il vous suffit de modifier 96 par le nombre de pokémon que vous voulez dans le dex régional.
« Modifié: 06 août 2013, 14:36 par Unifag »

Pages: [1]    En haut ↑