[TUTO][GBA][ALL] Ajouter de nouvelles attaques + MINI TUTO de 1 minute chrono.

Pages: [1] 2

Baitot

  • Membre
  • 491 posts
03 janvier 2014, 13:54
Ahahah, c'est trop cool, on peut personnaliser ses attaques ! Merci Flow' pour ce magnifique tuto : http://www.pokemontrash.com/club/rom-hacking/personnaliser-ses-combats/msg512873/#msg512873.
Mais eeeuhhh, je dois remplacer une attaque ? Je ne peux pas en ajouter ?? Aaaaaaah comment je fais ? Laquelle je remplace ?
Ah c'est bon, j'ai trouvé une attaque à remplacer. Maintenant je vais l'apprendre à un Pokémon.... J'ouvre YAPE.... MAIS QUOI ? Je ne peux pas apprendre d'autres attaques ? Pourquoi ce monde est si cruel ? Snif.....

Ne vous inquiétez pas, Baitot est là pour réglez ces deux problèmes ! Aujourd'hui, on va apprendre à ajouter de nouvelles attaques et a "supprimer" la limite d'attaques MAX.
Allez, on commence !



PRÉPARATIF :


Comme il y a 2 problèmes, il y a 2 tutoriels et donc 2 listes, soyons logique !

La liste pour le Mini Tuto :
- Un Éditeur hexa (comme HxD).
- YAPE.
- Du cannabis (allez hop, tout le monde en Amérique !).

Et celle pour le Tuto :
- Un Éditeur hexa (toujours  HxD pour moi).
- Un cerveau.
- YAPE
- Une calculatrice d'hexadécimal/décimal (celle de Windows pour moi).
- Move Editor (vous pouvez le trouver dans le tuto de Flow')



Comme ces tutos sont dipsonible pour toutes les versions, les offsets sont différents. Je vais nommé les offset par des lettres. Donc, consultez la liste des offsets ci-dessous selon votre version :
Nom de l'Offset :Rouge Feu :Vert Feuille :Rubis :Saphir :Émeraude
Offset "A"*257C08257BE821001820FFA8330EF0
Offset "B"**2414A024147C2007282006B83212AC
Offset "C"***24B05424B030203578203508324408
Offset "D"****1C50C01C509C1CF5601CF4F02D1D40
Offset "E"******47E7DC47D5043C84343C7F64620920




Note : - Comme à chaque tuto, faites une copie de votre rom ! Je ne serai en aucun cas responsable
           si vous faites une mauvaise manipulation et que vous perdez des données.

           - Comme dans mon autre tuto, les astérisques mis dans le tutoriel seront expliquées à la fin.

           - Dans ce tutoriel, on ne va pas juste s'intéresser aux roms mais aussi au logiciel.
             On va toucher à leur fichier ".ini" et vous verrez que c'est très utile.





MINI TUTO :

On va commencer par le plus facile : un Mini Tuto ! J'appelle ça un "Mini Tuto" car c'est hyper simple et que ça prend 1 minute chrono.
Vous ne me croyez pas ? Beh allez, une p'tite vidéo pour vous montrez que Baitot a toujours raison (Dsl de la qualité de m****) : http://www.4shared.com/embed/4292113683/f7a15ae0
Enfin... Non, j'ai eu tort, ça ne prend pas 1 minute mais 54 secondes....


Bon on commence. Je ne mettrai pas de screen dans ce "Mini Tuto" car une vidéo est à votre disposition.


1) Ouvrez votre rom avec votre Editeur hexa puis cherchez un grand espace libre* (une longueur d'environ 8000).


2) Rendez-vous à l'offset "A" puis modifier le premier pointeur (soit les 4 bytes) par le pointeur de votre grand espace libre. Vous pouvez maintenant fermer votre éditeur hexa.
Rappel : Un pointeur s'obtient en inversant les bytes de cette offset + "08". Ex : Si j'aurais pris l'offset A01000, ça donnerai 0010A008 sous forme de pointeur car : A01000 -> A0 10 00 -> 00 10 A0 -> 0010A008.


3) Ouvrez votre rom avec YAPE et remettez lui ses attaques de bases (car là, on vient de modifier l'endroit où se trouve ses attaques). En modifiant/remplaçant une de ses attaques, YAPE va "recharger" la table qui se trouve à l'offset "A" et tous les pointeurs pointeront vers le grand espace libre.


4) Sauvegardez votre rom et ouvrez le fichier .ini de YAPE : YAPE 0.9/data/common/romdata.ini.
Cherchez la version de votre rom est dans la ligne "MaxMovesLearned" remplacez le nombre s'y trouvant par un nombre plus grand.
Ex : Si vous avez choisi un espace libre d'une taille approximative à 8000, vous pouvez mettre environ 12000 attaques.


5) Fermez et rouvrez YAPE, puis votre rom et ajoutez des attaques comme bon vous semble ! ;).






TUTO :

Bon, maintenant qu'on a fait le plus facile, on va s'attaquer au plus lourd : Créer de nouvelles attaques !
Mais ne vous inquiétez ; ça reste simple. On va presque toujours répétez les mêmes choses.
Ah j'oubliai, comme je suis gentil, je vais vous mettre des screens pour vous aidez.

Attention : Pour l'instant les attaques ajoutées auront les mêmes animations que les anciennes ; la première ajoutée aura l'animation d'Ecras'Face. Je vous apprendrai à faire de nouvelles animations dans un autre tuto mais je ne peux pas le faire de suite car je suis pas opérationnel dessus. (dsl du rouge Yago mais quand même, c'est un "Attention" ^^).

Allez, on commence :


1) Ouvrez votre rom dans HxD, Faites Ctrl + E, dans la case "Start Offset" écrivez l'offset "B" (2414A0 pour moi) et dans la case "Lenght", écrivez 1207 (hex). Copiez ce code est remplacez-le par des "FF" dans un espace libre (je choisis l'offset 800000).




2) Pour l'instant, on a copié le nom des anciennes attaques. On va maintenant s'attaquer aux "données" des attaques.
Pour cela,. Ctrl + E -> "Start Offset'" = Offset "C" (24B054 pour moi) et Lenght = 10A4 (hex) -> Ok -> Copier.
Remplacez un espace libre de 10A4 par ce que vous venez de copiez (pour moi 820000).




3) Maintenant, les animations des attaques. Pour cela, Ctrl + E -> "Start Offset" = Offset "D"  et "Lenght" = 58C (hex) -> Ok -> Copiez.
Remplacez un espace libre de 58C par ce que vous venez de copiez (840000 pour moi).




4) Et pour finir, les descriptions des Pokémon. Donc "Start Offset" = Offset "E" (47E7DC pour moi)  et "Lenght" = 58C (hex) -> Ok -> Copiez.
Remplacez un espace libre de 58C par ce que vous avez de copiez (860000 pour moi).
Je mets pas de screen ; c'est la même chose.



5) Maintenant, ouvrez Move Editor et modifiez les attaques comme vous le souhaitez mais modifiez-les de haut en bas ! Si vous avez pas compris, il faut que vous modifiez Ecras'Face en premier, ensuite Poing-Karate, Torgnoles, Poing Comète etc...
Ne vous inquiétez ; on ne modifie pas vraiment les attaques mais on va créer les nouvelles alors c'est pas grave si vous modifiez Ecras'Face par Marto-Poing alors que vous voulez garder l'attaque Ecras'Face. Si vous modifiez la description de l'attaque, changez de pointeur, sinon la "vrai" attaque Ecras'Face aura la même description.




6) Maintenant, il faut que vous multipliez le nombre d'attaques que vous avez modifié (en hex) par D (Hex) et que vous ajoutez le nombre obtenu à l'offset "B".
Moi j'en ai modifié 100, et comme 100 est un nombre décimal, je le converti ce nombre en hexadécimal. Ce qui me donne 64. Maintenant, je multiplie par D : 64 x D = 514. Donc je fait Ctrl + E, dans "Start Offset" je mets l'offset "B"  (c'est 2414A0 pour moi) et dans "Lenght" je mets 514 (hex).




7) Copiez ça (les 514 premier bytes de 2414A0 pour moi) et allez la somme de votre offset libre choisi dans l'étape "1)" et de 1207 (hex). J'obtiens donc l'Offset 801207. Refaites Ctrl + E, mettez l'offset obtenue dans "Start offset" (801207 pour moi) et dans "Lenght" écrivez le nombre obtenue à la fin de la multiplication de tout à l'heure (514 pour moi). Pour finir cette étape, remplacez ce que vous venez de sélectionnez par ce que vous avez copié tout à l'heure (les 514 premier bytes de 2414A0 pour moi).




8) Multipliez le nombre d'attaques que vous avez modifié (en hex) par C. Moi, ça me fait 64 (qui est 100 en hexadécimal) x C = 4B0 (toujours en hex)
Ctrl + E -> Start Offset = offset "C" (moi 24B054) et Lenght = nombre obtenu (4B0 pour moi).
Copiez ceci et faites l'addition de votre offset "libre" des données des attaques et de 10A4 (ce qui me donne 820000 + 10A4 = 8210A4). Faites Ctrl + E -> "Start Offset" = votre offset obtenue (8210A4 pour moi) et "Lenght" = votre nombre obtenu tout à l'heure (4B0 hex) -> Ok -> Collez ce que vous avez copiez.




9) Multipliez le nombre d'attaques que avez modifié (en hex) par 4. Ça me donne donc 64 x 4 = 190.
Ctrl + E -> Start Offset = offset "D" (moi 1C50C0) et Lenght = nombre obtenu (190 pour moi).
Copiez ça et faites l'addition de votre offset "libre" des animations des attaques et de 58C (ce qui me donne 840000 + 58C = 84058C). Faites Ctrl + E -> "Start Offset" = votre offset obtenue (84058C pour moi) et "Lenght" = nombre obtenu tout à l'heure (pour moi, c'est 190 en hex) -> Ok -> Collez ce que vous avez copiez.




10) Reprenez le nombre obtenu lorsqu'on a multiplié par 4 le nombre d'attaques modifiées (190 pour moi).
Ctrl + E -> Start Offset = offset "E" (moi 47E7DC) et Lenght = nombre obtenu (190 pour moi).
Copiez ça et faites l'addition de votre offset "libre" de la table des descriptions des attaques et de 58C (ce qui me donne 860000 + 58C = 86058C). Faites Ctrl + E -> "Start Offset" = votre offset obtenue (86058C pour moi) et "Lenght" = nombre obtenu tout à l'heure (pour moi, c'est 190 en hex) -> Ok -> Collez ce que vous avez copiez.
Pas de screen, même chose que tout à l'heure.


11) On a presque fini *yes* . Maintenant, faut remplacer tout les pointeurs.
Donc faites Ctrl + R, "Search For" = pointeur de l'Offset "B" (A0142408 pour moi), "Remplace With" = l'offset que vous avez choisi dans l'étape "1" sous forme de pointeur (00008008 pour moi), "Datatype" = Hex-values  et cochez dans "Search direction" "All" et cliquez sur "Remplace all".
Maintenant pareil mais avec le pointeur de l'offset "C" (54B02408 pour moi) et l'offset que vous avez choisi dans l'étape "2)" sous forme de pointeur (00008208 pour moi).
On refait la même chose mais cette fois-ci on ajoute "4" (58B02408 pour moi) au pointeur de l'offset "C" et à celui choisi dans l'étape 2 (04008208 pour moi).
Pareil avec l'offset "D" (C0501C08 = moi) et le pointeur de l'offset libre choisi dans l'étape "3)" (00008408 pour moi).
Et pour finir, encore la même chose avec l'offset "E" (DCE74708 pour moi) et le pointeur de l'offset libre de l'étape "4)" (00008608 pour moi).
Sauvegardez tous les changements effectués.




12) Ouvrez le fichier .ini de YAPE, allez dans les données de votre version, à la ligne "AttackNamesOffset" mettez votre offset "libre" de l'étape "1)" (800000 pour moi).
Et allez au début du fichier :
[All]
NumPkmn         = 411
NumDexEntries   = 386
NumAttacks      = 355
NumAbilities    = 78

Ajoutez le numéro des attaques que vous avez ajoutez à 355 et remplacez le résultat obtenu à la ligne "NumAttacks" et enregistrer les modifications faites (pour moi 455).



13) Ouvrez YAPE et apprenez les nouvelles attaques aux Pokémon comme bon vous semble.




14) PROFITEZ !




EXPLICATIONS :

J'sais pas si vous avez remarqué mais j'ai pas mis d'astérisques dans le "TUTO" car je vais expliquer la signification de toutes les étapes :

1) Là, on déplace le nom des Pokémon pour pouvoir ensuite avoir la place d'ajouter des noms.

2) On fait pareil mais avec les données des attaques.

3) Encore la même chose mais avec les animations des attaques.

4) Encore pareil mais avec la table des descriptions des attaques.

5) Ici, on modifie les anciennes attaques par des nouvelles, comme ça il nous reste juste à faire un Copier/Coller pour pouvoir créer nos nouvelles attaques.

6) On multiplie par "D" car c'est la taille d'un nom de Pokémon. Ensuite on fait un Copier les attaques que l'on a modifié.

7) On colle les attaques que l'on a modifié à leur nouveaux espaces.

8) Comme pour l'étape "5)" sauf que "C", c'est la taille des données des attaques. Puis comme pour l'étape "6)", on colle ça à leur new espaces.

9) Pareil que l'étape "7)" sauf que "4" c'est la taille d'un pointeur des animations des attaques.

10) Pareil que l'étape "7)" sauf que "4" c'est la taille d'un pointeur des descriptions des attaques.

11) On remplace TOUS les anciens pointeurs pour qu'ils pointent vers les nouveaux espaces créer.

12) On fait en sorte que l'on puisse apprendre ces nouvelles attaques via YAPE en modifiant son fichier .ini.

13) On fait ce qu'on veut x).


Maintenant, les astérisques :

Offset "A"* : : C'est la table des attaques appris aux Pokémon. Le premier pointeur pointe vers Bulbizarre, le second vers Herbizarre etc... Mais en modifiant juste le pointeur de Bulbizarre et en modifiant une attaque avec YAPE, le jeu se "recharge" et tous les pointeurs sont mis à jour.

Offset "B"** : Offset qui amène aux noms des Pokémon.

Offset "C"*** : Offset qui amène aux données des Pokémon (puissance, précision, PP...)

Offset "D"**** : Offset qui amène à la table des animations des attaques.

Offset "E"****** : Offset qui amène à la table des descriptions des attaques.

"cherchez un grand espace libre*****" : La taille de l'espace libre choisit influe sur le nombre d'attaques que vous pourrez apprendre à un Pokémon. Comme je l'ai dit dans mon tuto, une taille de 8000 suffit largement.

"Dsl de la qualité de m****" : Insulte signifiant "nul" ;).




Voilà, c'est fini !

Crédits: Pokébip pour la description de Feu D'Enfer x).



Baitot.
« Modifié: 15 juillet 2014, 00:10 par Yago »

Tuturosso

  • Membre
  • 773 posts
03 janvier 2014, 15:26
Super sympa,je testerai dans la semaine,merci à toi:)

raphael39190

  • Membre
  • 16 posts
03 janvier 2014, 15:29
Merci beaucoup a toi !

Baitot

  • Membre
  • 491 posts
03 janvier 2014, 16:40
De rien et merci à vous ^^.

Myst

  • Membre
  • 1870 posts
03 janvier 2014, 16:58
t'es vraiment devenu doué avec le temps mec, ca fait plaisir de t'avoir dans la section.

Baitot

  • Membre
  • 491 posts
03 janvier 2014, 17:07
*rougis* Euh... merci !

yago58

  • Invité
03 janvier 2014, 20:21
J'en ai la larme à l’œil, mes coups de pied au cul on finis par porter ses fruits.

Blagues à part, très bon taff, je suis du même avis que myst

Baitot

  • Membre
  • 491 posts
03 janvier 2014, 20:36
Sauf qu'il me reste encore les cicatrices. Tes coups de pieds n'ont pas encore fini leur travail ^^.
Encore merci, sinon.

Arnik

  • Membre
  • 1812 posts
03 janvier 2014, 20:37
Je me sens inutile d'un coup...
...
Je blague, c'est du très bon travail!

Baitot

  • Membre
  • 491 posts
03 janvier 2014, 20:39
T'inquiète pas, on t'oublie pas ^^.
Vraiment, merci à vous tous.

yago58

  • Invité
03 janvier 2014, 21:19
Sauf qu'il me reste encore les cicatrices. Tes coups de pieds n'ont pas encore fini leur travail ^^.
Encore merci, sinon.


Tu en veux encore ? Té maso oukoi ?  :ahah:

Baitot

  • Membre
  • 491 posts
04 janvier 2014, 10:59
C'est quoi cette présentation. Pas de dèmo, pas suffisament d'info, et puis tu viens demander aux autres de faire le taf à ta place.
Je lock.
Après ça, tu oses faire du Hors Sujet. Je demande un everban de Yago  >:D.
Nan, sérieux je crois que là on s'éloigne un peu du topic.

Edit: xD, je viens de comprendre ce que t'as écrit :ahah:.
« Modifié: 05 janvier 2014, 10:34 par Baitot »

Ayonn-Z

  • Membre
  • 42 posts
26 mai 2014, 19:00
Du coup une fois que t'as ajouté les attaques tu peut modifier les anims ??

Baitot

  • Membre
  • 491 posts
26 mai 2014, 19:04
Oui mais c'est plus dur.

Ayonn-Z

  • Membre
  • 42 posts
26 mai 2014, 19:19
Serait-ce possible faire un tuto dessus un de ces quatre stp ou il y en a déjà ?

Baitot

  • Membre
  • 491 posts
26 mai 2014, 19:47
Y a quelque chose dessus en anglais, si tu veux : http://www.pokecommunity.com/showthread.php?t=281520
T'as juste à trouver les offsets dont il parle pour ta version.

Asia81

  • Modérateur de section
  • 8357 posts
27 mai 2014, 00:02
Quand j'avais débuter ma Hackrom, je me rapelle avoir modifier une attaque sans rien changer d'autre, juste avec YAPE, je crois

Ayonn-Z

  • Membre
  • 42 posts
27 mai 2014, 15:09
Y a quelque chose dessus en anglais, si tu veux : http://www.pokecommunity.com/showthread.php?t=281520
T'as juste à trouver les offsets dont il parle pour ta version.

Je vois merci, mais le problème est que je ne trouve les lignes nécessaires dans ma rom et personne ne peut me dire pourquoi --'.....

Baitot

  • Membre
  • 491 posts
27 mai 2014, 16:35
Quand j'avais débuter ma Hackrom, je me rapelle avoir modifier une attaque sans rien changer d'autre, juste avec YAPE, je crois

YAPE, c'est pour modifier les attaques qu'un Pokémon peut apprendre, pas ajouter une attaque elle-même.


Je vois merci, mais le problème est que je ne trouve les lignes nécessaires dans ma rom et personne ne peut me dire pourquoi --'.....
Que veux-tu dire par "les lignes nécessaires" ?

Ayonn-Z

  • Membre
  • 42 posts
28 mai 2014, 20:51
En fait c'est bon je m'était trompé de lien page et suis allé sur un autre tuto ^^'

Baitot

  • Membre
  • 491 posts
28 mai 2014, 20:59
Ok. Sinon, si tu ne t'y connais pas un minimum en hexadécimal, je te conseille de te limiter à la modification d'une attaque déjà existante au lieu de passer par l'ajout d'une attaque puis d'une animation.

MikaZ

  • Membre
  • 367 posts
14 juillet 2014, 23:21
Bon problème je viens de faire le tuto et en combat contre le pkmn qui a les news attaks il a appris une attak de type normal nommé A F , de plus le jeu me met le même pokémon dans mon équipe et quand j'attrape le pkmn adverse le jeu envoie un mauvais oeuf en plus du poké . En gros c'est un putain de WTF de bug .... :-(

yago58

  • Invité
14 juillet 2014, 23:27
Dans ce cas tu reprends tout à zéro.

MikaZ

  • Membre
  • 367 posts
14 juillet 2014, 23:41
Yago dans yape tout s'affiche correct et tout donc sa doit être au niveau du script et je l'ai pas sous la main donc je repost dans pas longtemps le temps d'allumer le Pc :-P



Sinon tu sais d'où sa pe venir



Et au fait bon tuto ;-)



Mais après chais pas 


Voila le script:
'---------------
#org 0x7111E0
lock
faceplayer
setwildbattle 0xBE 0xA 0x0
checksound
cry 0xBE 0x2
pause 0x28
waitcry
setflag 0x305
setflag 0x861
special 0x138
waitstate
clearflag 0x861
checkflag 0x201
hidesprite LASTTALKED
release
end

Edit Yago =>Faire un multipost en 7 min d'intervalle, c'est débile, j'ai donc réunis ton quadruple post, tu as la possibilité d'éditer tes post.



« Modifié: 15 juillet 2014, 00:04 par Yago »

MikaZ

  • Membre
  • 367 posts
15 juillet 2014, 00:12
Oui jsuis un peu speed je sais .... Sinon les flags du script sont bons ? j'utilise rouge feu fr

Édit: et oui la prochaine fois j'editerai mon ancien MSG pour éviter ce genre de multipostes désagréable
« Modifié: 15 juillet 2014, 00:22 par MikaZ »

yago58

  • Invité
15 juillet 2014, 00:19
T'es pas speed t'es pénible, il est minuit et des Chocapics, y en a qui dorment
T'as lu ce que j'ai écris au moins ? Non parce que tu fais exactement le contraire.

MikaZ

  • Membre
  • 367 posts
15 juillet 2014, 00:23
Lit l'édit de mon dernier post

yago58

  • Invité
15 juillet 2014, 00:29
Edit fait après celui de 00:19:35
Merci d'attendre.

MikaZ

  • Membre
  • 367 posts
15 juillet 2014, 00:32
.....j viens à peine de comprendre ton dernier post :-)

Arzh

  • Membre
  • 1 posts
20 mai 2021, 09:58
Bonjour,

Je souhaiterais ajouter un petit détail car, bien que ce tuto soit super, il manque une étape.

En effet, si vous suivez le tuto à la lettre, lorsque vous lancez vos nouvelles attaques, il est écrit : "ABO lance une capacité POISON" (ou tout autre pokemon avec le type de l'attaque lancée).

C'est dû à une limite du nombre d'attaque qui se trouve à l'offset 0D787C pour la version rouge feu (je n'ai pas cherché pour les autres).
En supprimant la limite en remplaçant le code des 6 octets par 00 (pour mon cas, j'avais B1 20 40 00 81 42 et je l'ai changé par 00 00 00 00 00 00), ça devrait corriger ce problème.

Pages: [1] 2    En haut ↑