[ASM/GBA] Offsets de routines utile. dans Club | Pokémon Trash
[ASM/GBA] Offsets de routines utile.
TheCaptainSnow - 29 août 2014 à 12:33
Étant donné qu'on est de plus en plus à faire de l'ASM (j'en compte 3 pour le moment, peut être 4 bientôt, ça parait pas beaucoup mais sur l'ensemble des membres actifs c'est pas mal, malheureusement...) je me suis dit que ça pourrait être bien de regrouper les routines utiles. Parce-que devoir chercher à chaque fois qu'on à besoin de quelque chose c'est chiant.
Je donne des noms anglais aux routines parce-que fuck le français ça demande trop de mot pour les décrire.
Routines
Pour commencer il y à les routines trouvaient par Jambo51 (Pokécommunity) et darthatron (Pokécommunity), je les détaillerais plus tard, pour le moment je me contente de ça:
[spoiler]Pokémon Decrypter (Prend l'offset du Pokémon dans R0 et un index dans R1; Renvoie la valeur dans R0): 0x3FAC0
Pokémon Encrypter (Prend l'offset du Pokémon dans R0, un index dans R1 et l'offset de la valeur à stocker dans R2): 0x40254
0x00 - ID Pokémon0x01 - ID Dresseur0x02 - Surnom (r6 doit être l'offset où se trouve le surnom)0x03 - Pays d'origine0x04 - Sanity?0x05 - Sanity?0x06 - Sanity?0x07 - Nom du dresseur d'origine0x08 - Marques0x09 - Checksum0x0A - Filler?0x0B - Espèce 0x0C - Objet tenu0x0D - Attaque 10x0E - Attaque 20x0F - Attaque 30x10 - Attaque 40x11 - PP 10x12 - PP 20x13 - PP 30x14 - PP 4
0x15 - PP Bonus
0x16 - Sang-froid
0x17 - Beauté
0x18 - Grâce
0x19 - Expérience
0x1A - EV PV
0x1B - EV Attaque
0x1C - EV Défense
0x1D - EV Vitesse
0x1E - EV Atq. Spécial
0x1F - EV Def. Spécial
0x20 - Bonheur
0x21 - Intelligence
0x22 - Pokérus
0x23 - Lieu capture
0x24 - Niveau capture
0x25 -
0x26 - Hometown / Poké Ball / Sexe Dresseur
0x27 - IV PV
0x28 - IV Attaque
0x29 - IV Défense
0x2A - IV Vitesse
0x2B - IV Atq. Spécial
0x2C - IV Déf. Spécial
0x2D - Oeuf
0x2E - Capacité spécial
0x2F - Robustesse
0x30 - Shiney
0x31 -
0x32 -
0x33 -
0x34 -
0x35 -
0x36 -
0x37 - Status (Poison, etc)
0x38 - Niveau
0x39 - PV actuel
0x3A - PV max
0x3B - Attaque
0x3C - Défense
0x3D - Vitesse
0x3E - Attaque Spé.
0x3F - Défense Spé.
0x40 -
0x41 - Espèce
Générateur de pokémon sauvage: (Prend l'adresse du pokémon dans R0, l'espèce dans R1, le niveau dans R2 et un autre nombre dans R3 (généralement 0x19 or 0x20): 0x3DC70
Générateur de pokémon pour le Givepokemon: 0xA02D0
Flag Decrypter (Prend le numero du flag dans R0; Renvoie sont statut dans R0): 0x6E6F4
Flag Setter (Prend le numero du flag dans R0): 0x6E6A4
Flag Clearer (Prend le numero du flag dans R0): 0x6E6CC
Variable Decrypter (Prend le numéro de la variable dans R0; Renvoie l'adresse de la variable dans R0): 0x6E478
Flag Pokémon Vue/Capturé (Prend le numéro du Pokémon dans R0 et un index dans R1 (0: Vérifier vue, 1: Vérifier capturé, 2: Définir vue, 3: Définir capturé); Renvoie le résultat dans R0): 0x104E1C
Nombre aléatoire (Renvoie un nombre de 16-bit dans R0): 0x44E8C
QuotienDivision (Prend le numérateur dans R0 et le dénominateur dans R1;Renvoie le quotient dans R0): 0x1E243C
ResteDivision (Prend le numérateur dans R0 et le dénominateur dans R1;Renvoie le reste dans R0): 0x1E2AA8
ModifiéMétéo (Prend l'effet météo dans R0): 0x7B124[/spoiler]
Et maintenant les trouvailles de notre chère communauté
GetMoney : 0x09FF0C
[spoiler]Entrer:
r0: adresse de la clé de décryptage
Sortie:
r0: argent détenu
Attention car cette routine modifie le contenu de r1 et r2.[/spoiler]
SetMoney: 0x09FF24
[spoiler]Entrer:
r0: adresse de la clé de décryptage
r1: Somme d'argent à affecter
Attention car cette routine modifie le contenu de r2 et r3.[/spoiler]
AddMoney: 0x09FF54
[spoiler]Entrer:
r0: adresse de la clé de décryptage
r1: Somme d'argent à ajouter
Attention car cette routine modifie le contenu de r2 et r3.[/spoiler]
SubMoney: 0x09FF8C
[spoiler]Entrer:
r0: adresse de la clé de décryptage
r1: Somme d'argent à déduire
Attention car cette routine modifie le contenu de r2 et r3.[/spoiler]
GetObjFromPC: 0x10DEA8
[spoiler]Entrer:
r0: position de l'objet dans le pc
Sortie:
r0 = index de l'objet
Attention car cette routine modifie le contenu de r1.[/spoiler]
GetObjQteFromPC: 0x10DEC0
[spoiler]Entrer:
r0: position de l'objet dans le pc
Sortie:
r0 = quantité de l'objet
Attention car cette routine modifie le contenu de r1.[/spoiler]
AddObj2Pc: 0x09A56C
[spoiler]Entrer:
r0: index de l'objet
r1: qantité
Sortie:
r0 = 1 (si succé) ou 0 (si echec)[/spoiler]
SubObj2Pc: 0x09A604
[spoiler]Entrer:
r0: index de l'objet
r1: qantité[/spoiler]
GetObjFromBag: 0x09A93C
[spoiler]Entrer:
r0: sac (1=objets, 2=objets rare, 3=pokéballs, ...)
r1: position de l'objet
Sortie:
r0 = index de l'objet
Attention car cette routine modifie le contenu de r2.[/spoiler]
GetObjQteFromBag: 0x09A958
[spoiler]Entrer:
r0: sac (1=objets, 2=objets rare, 3=pokéballs, ...)
r1: position de l'objet
Sortie:
r0 = quantité de l'objet
Attention car cette routine modifie le contenu de r2.[/spoiler]
AddObj2Bag: 0x09A228
[spoiler]Entrer:
r0: index de l'objet
r1: qantité
Sortie:
r0 = 1 (si succé) ou 0 (si echec)[/spoiler]
SubObj2Bag: 0x09A37C
[spoiler]Entrer:
r0: index de l'objet
r1: qantité
Sortie:
r0 = 1 (si succé) ou 0 (si echec)[/spoiler]
CalcStats: 0x03E354
[spoiler]Entrer:
r0: adresse du pokémon dont les stats doivent être recalculé
Cette routine calcul les stats d'un pokémon à l'aide des 80 bytes qui définissent un pokémon, elle modifie les 20 bytes suivant ces 80 bytes pour leur affecter la bonne valeur. Cf ce lien si vous voyez pas de quoi je parle.[/spoiler]
MoveBytes: 0x09FA06
[spoiler]Entrer:
r0: destination
r1: depart
r2: nombre de bytes à copier[/spoiler]
ExecScript: 0x069B94
[spoiler]Entrer:
r0: offset du script[/spoiler]
Number2Caract: 0x008DE4
[spoiler]Entrer:
r0: adresse où seront stocker les caractères
r1: nombre
r2: index
r3: nombre de caractères maximum
index:
0 = normal (par exemple 324 sera affiché "324"1 = respect du nombre de caractère avec espace (donc si r3 = 4 alors 324 sera affiché " 324", noté l'espace avant le 3)2 = respect du nombre de caractère avec 0 (donc si r3 = 4 alors 324 sera affiché "0324"
[/spoiler]
Ok il n'y en à pas beaucoup, mais le but c'est pas de chercher le plus de routines possible mais de donner celle dont on à eu besoin, alors si vous en avez vous aussi partagé les, je mettrais le post à jour.
Arnikum Plus - 29 août 2014 à 22:02
Super, ça me sera utile !
yago58 - 29 août 2014 à 22:06
Tu veux que je trouve les donnés pour les version nds ?
TheCaptainSnow - 30 août 2014 à 01:06
Wait? Tu comprend l'ASM?
Parce-que je crois pas que les données dont tu parle soit similaire, la c'est pas quelque-chose qu'on peut utiliser sans l'ASM. Mais si vraiment t'a des données similaire je veux bien
D'ailleurs j'ajouterais des DMA aussi, parce-que c'est utile
Mickey` - 30 août 2014 à 11:14
T'es au top Uni ! Faut que je te vois sur Skype d'ailleurs.