Précisions sur les sous-structures des données d'un Pokémon



Retour vers la Corruption des Pokémon.
Retour vers la Double Corruption.

1) Contenu des sous-structures d'un Pokémon
2) Ordre des sous-structures en fonction du PID
3) Types de Corruption
3.1) Liste des Types de corruption
3.2) Type de Corruption en fonction du PID
3.3) Types de corruption avant et après corruption
4) Structures des données du Pokémon
4.1) Bonus de PPs
4.2) Pokérus
4.3) Provenance du Pokémon
4.4) IVs, Oeuf, Capacité spéciale
4.5) Rubans et Obéissance


1) Contenu des sous-structures d'un Pokémon

Contenu des sous-structures d'un Pokémon
Croissance Attaques EVs & Condition Divers
Taille
(Octets)
Adressage
(N° des Octets)
Taille
(Octets)
Adressage
(N° des Octets)
Taille
(Octets)
Adressage
(N° des Octets)
Taille
(Octets)
Adressage
(N° des Octets)
Espèce 2 0 Attaque 1 2 0 EV PV 1 0 Statut du Pokérus 1 0
1 1 EV Attaque 1 1 Zone de rencontre 1 1
Objet Tenu 2 2 Attaque 2 2 2 EV Defense 1 2 Provenance 2 2
3   3 EV Vitesse 1 3 3
Expérience 4 4 Attaque 3 2 4 EV Attaque Spé. 1 4 IVs, Oeuf, et
Capacité Spéciale
4 4
5 5 EV Défense Spé. 1 5 5
6 Attaque 4 2 6 Sang-Froid 1 6 6
7 7 Beauté 1 7 7
Bonus de PPs 1 8   1 8 Grâce 1 8 Rubans et Obéissance 4 8
Bonheur 1 9 PP 2 1 9 Intelligence 1 9 9
Inconnu 1 10 PP 3 1 10 Robustesse 1 10 10
1 11 PP 4 1 11 Onctuosité 1 11 11

Comment l'interpréter ?
  Chaque donnée est rangée dans une sous-structure précise.
Ce qui nous intéresse, c'est la position de la donnée dans la sous-structure, et la place qu'elle occupe (le nombre d'octets), afin de savoir quelles autres données sont modifiables à partir de celle-ci.
 - ex : On peut modifier l'Expérience à partir de l'identifiant des Attaques 3 et 4, ou à partir des EVs Atk.Spé, Def.Spé, du Sang-Froid, et de la Beauté.




2) Ordre des sous-structures en fonction du PID

Reste de la division euclidienne du PID par 24
00. CAED 06. ACED 12. ECAD 18. DCAE   C : Croissance
A : Attaques
E : EVs & Condition
D : Divers
01. CADE 07. ACDE 13. ECDA 19. DCEA
02. CEAD 08. AECD 14. EACD 20. DACE
03. CEDA 09. AEDC 15. EADC 21. DAEC
04. CDAE 10. ADCE 16. EDCA 22. DECA
05. CDEA 11. ADEC 17. EDAC 23. DEAC

Comment l'interpréter ?
  Le curseur va altérer le PID en lui rajoutant ou enlevant la valeur 0x4000 0000 (en hexadécimal). Cette valeur a un reste de 16 après une division euclidienne par 24.
Ainsi, en connaissant mon PID, je détermine si la corruption va rajouter ou enlever cette valeur, ainsi que la valeur de base pour l'ordre des Sous-Structures, et je peux déterminer la valeur après corruption, et ainsi savoir ce que cela va changer.

 - ex : PID de 2831130358, égal à 0xA8BF 9EF6 en hexadécimal (le 0x signifie que c'est de l'hexadécimal).
Je rajoute des "0" jusqu'à avoir 8 caractères, car le PID est codé sur 8 caractères en Hexadécimal. Ici, c'est bon.
Si le caractère de gauche du PID est 0,1,2,3,8,9,A,B, alors le curseur va rajouter 0x4000 0000 au PID (convertis en binaire, ces nombres sont tous de la forme a0bc, avec a,b,c valant 0 ou 1, ce qui laisse 8 choix possible sur les 16).
Si le caractère de gauche du PID est 4,5,6,7,C,D,E,F alors le curseur va retirer 0x4000 0000 au PID.
Ici, la corruption va rajouter 0x4000 0000.
Je calcule le reste de la division euclidienne du PID par 24 :
2831130358 / 24 = 117963764,91666666666666666666667
0.9166666666667*24 = 22 (à l'arrondi)
Donc 2831130358 = 24*117963764 + 22
Mon reste est donc de 22.
Comme je rajoute 0x4000 0000, je dois rajouter 16 à mon reste, qui "passe" à 38.
Mais comme un reste de division euclidienne par 24, c'est entre 0 et 23, je rajoute ou j'enlève 24 afin de retomber sur un nombre entre 0 et 23.
Ainsi, ici, je vais faire 38 - 24 = 14.
Mon ordre de base était 22 : DECA, et mon ordre après corruption sera : 14 : EACD.
Je recolle cela : DECA -> EACD, et je regarde où les sous-structures après corruption sont lues, par rapport à leur ordre avant corruption.
Ainsi, la zone EVs & Condition est lue sur la zone Divers, la zone Attaques est lue sur la zone EVs & Condition, la zone Croissance sur elle-même, et la zone Divers sur la zone Attaques.
C'est une corruption assez bof, il faut dire, car le plus pratique c'est lorsque la zone Croissance est lue sur la zone Attaques ou EVs & Condition.

Vous le voyez, c'est un peu long de calculer tout ça, ce qui fait que lire les PID à la main, ça prend du temps, et déterminer la corruption par dessus aussi.
Ainsi, si vous êtes sur émulateur, ce script lua [Lien] vous aidera énormément.



3) Corruption Types
3.1) Corruption Type List

Possible Corruption Types

Corruption Growth substructure read on Attacks substructure read on EVs&Condition substructure
read on
Miscellanous substructure
read on
Summary Appearance Chance
1  Growth substructure  EVs substructure  Miscellanous substructure  Attacks substructure GG AE EM MA 1/12
2  Growth substructure  Miscellanous substructure  Attacks substructure  EVs substructure GG AM EA ME 1/12
3  Attacks substructure  Growth substructure  Miscellanous substructure  EVs substructure GA AG EM ME 1/6
4  Attacks substructure  EVs substructure  Growth substructure  Miscellanous substructure GA AE EG MM 1/12
5  Attacks substructure  Miscellanous substructure  EVs substructure  Growth substructure GA AM EE MG 1/12
6  EVs substructure  Growth substructure  Attacks substructure  Miscellanous substructure GE AG EA MM 1/12
7  EVs substructure  Attacks substructure  Miscellanous substructure  Growth substructure GE AA EM MG 1/12
8  EVs substructure  Miscellanous substructure  Growth substructure  Attacks substructure GE AM EG MA 1/6
9  Miscellanous substructure  Growth substructure  EVs substructure  Attacks substructure GM AG EE MA 1/12
10  Miscellanous substructure  Attacks substructure  Growth substructure  EVs substructure GM AA EG ME 1/12

Comment l'interpréter ?
La corruption du PID ne se faisant que d'une seule manière (rajouter/enlever 0x4000 0000), seules 10 des 24 changements d'ordre des sous-structures imaginables sont possibles.
Ces corruptions sont toutes assez différentes : si on sait sur quelles zones sont lues la zone Croissance et la zone Attaques, on connaîtra le type de corruption, et on saura ainsi sur quelles zones seront lues la zone EVs & Condition et la zone Divers.
Certaines corruptions sont bien plus utiles que d'autres :
Corruption des Pokémon : Corruptions 3,4,5 (via les Attaques) et 6,7,8 (via les EVs)
Corruption des Pokémon Améliorée : Corruptions 3,4,6,7
Corruption des Objets : Corruption 7 et 6
Coruption des Attaques : Corruptions 1,4 (via les EVs) et 3,6,9 (via l'Expérience)
Double Corruption : Corruptions 10,8,6

Pour la Corruption des Objets et la Corruption des Attaques, on n'a pas besoin d'un Pokémon compatible avec le Glitch Grena (il se transforme en Oeuf), ce qui fait que seul le type de Corruption sera important.
Pour la Double Corruption, j'ai indiqué les Corruptions les plus intéressantes, et non pas les seuls types de corruption possibles.

 

3.2) Corruption Type depending on PID

PID - Corruption Type correspondance table

Corruption type   Remainder of euclidean division of PID by 24
    0 1 2 3 4 5 6 7 8 9 10 11

Leftmost PID
character (hexadécimal)

 0,1,2,3,8,9,A,B Type 8 Type 8 Type 7 Type 7 Type 5 Type 5 Type 8 Type 8 Type 4 Type 4 Type 3 Type 3
 4,5,6,7,C,D,E,F Type 6 Type 6 Type 3 Type 3 Type 10 Type 10 Type 6 Type 6 Type 2 Type 2 Type 9 Type 9
 
Corruption type   Remainder of euclidean division of PID by 24
    12 13 14 15 16 17 18 19 20 21 22 23

Leftmost PID
character (hexadécimal)

 0,1,2,3,8,9,A,B Type 7 Type 7 Type 4 Type 4 Type 1 Type 1 Type 5 Type 5 Type 3 Type 3 Type 1 Type 1
 4,5,6,7,C,D,E,F Type 3 Type 3 Type 2 Type 2 Type 8 Type 8 Type 10 Type 10 Type 9 Type 9 Type 8 Type 8

Comment l'interpréter ?
Lorsque vous connaissez le PID d'un Pokémon, les deux valeurs indiquées ci-dessus déterminent complètement le type de corruption de ce Pokémon.
Pour les connaître, vous aurez besoin d'avoir la valeur de votre PID en hexadécimal (pour le caractère le plus à gauche), ainsi qu'en décimal (pour le reste de la division euclidienne par 24).
Lorsque vous obtenez un PID via RNG Reporter, celui-ci sera exprimé en hexadécimal.

- ex : PID = 0x5142867F en hexadécimal
Son caractère le plus à gauche est 5.
La conversion en base décimale me donne : PID = 1363314303 (décimal).
La division euclidienne par 24 me donne un quotient de 56804762 et un reste de 15.
Ce Pokémon est donc de Type 2, qui n'est pas un type intéressant. (l'espèce du Pokémon reste inchangée)

3.3) Corruption Types before and after PID corruption

Before corruption

-> After corruption
Corruption Type Summary   Corruption Type Summary
Type 1 CC AE ED DA   Type 2 CC AD EA DE
Type 2 CC AD EA DE   Type 1 CC AE ED DA
Type 3 CA AC ED DE   Type 3 CA AC ED DE
Type 4 CA AE EC DD   Type 6 CE AC EA DD
Type 5 CA AD EE DC   Type 9 CD AC EE DA
Type 6 CE AC EA DD   Type 4 CA AE EC DD
Type 7 CE AA ED DC   Type 10 CD AA EC DE
Type 8 CE AD EC DA   Type 8 CE AD EC DA
Type 9 CD AC EE DA   Type 5 CA AD EE DC
Type 10 CD AA EC DE   Type 7 CE AA ED DC

Comment l'interpréter ?
Vous connaissiez le type de corruption de votre Pokémon avant de le corrompre ?
Hé bien vous le connaîtrez encore après l'avoir corrompu !
Ainsi, si vous désirez corrompre à nouveau le Pokémon corrompu (pour faire une double double corruption), vous aurez toutes les informations pour le faire.


4) Structures des données du Pokémon
4.1) Structure : Bonus de PPs

Bits Attaque
0-1 Attaque 1
2-3 Attaque 2
4-5 Attaque 3
6-7 Attaque 4

Comment l'interpréter ?
  Chaque attaque peut avoir un Bonus de PPs allant de 0 à 3.
Pour connaître la valeur de l'octet gérant les Bonus de PPs, utilisez cette formule :
Valeur = (PPs Atk 1) + 4*(PPs Atk 2) + 16*(PPs Atk 3) + 64*(PPs Atk 4)



4.2) Structure : Pokérus

Bits Interprétation
0-3 Jours restant avant que le Pokémon soit guéri
4-7 Formes de Pokérus

Comment l'interpréter ?
  Ecrit en hexadécimal, la valeur associée au Pokérus est de cette forme : 0xTR, où T et R sont des valeurs hexadécimales entre 0 et F.
T = Type du Pokérus.
Lorsque le Pokérus apparaît, un Type lui est attribué. Ce Type définit le nombre de jours restant (la valeur R) avant que le Pokérus ne soit guéri.
Lorsqu'un Pokémon avec le Pokérus contamine d'autres Pokémon, le Type est conservé.
R= Nombre de jours restant.
Si R=0 et T=0, le Pokémon n'a pas de Pokérus.
Si R=0 et T est différent de 0, le Pokémon a un Pokérus "guéri", qui ne peut plus se transmettre.
Lorsque le Pokérus est transmis, le jeu calcule le Nombre de jours restant (la valeur R) en fonction de T par la formule :
R = (reste de la division euclidienne de T par 4) + 1
 - ex : T = 0xB = 11
11 = 4*3 + 3
Donc R = 3 + 1 = 4 jours.
Ainsi, R ne peut pas valoir plus de 4, et si on manipule T par la corruption, alors la valeur de R en découlera lorsque le Pokérus sera transmis à un autre Pokémon.

Valeurs possibles de Pokérus transmis
Type Valeur Type Valeur Type Valeur Type Valeur
0 0x00 4 0x42 8 0x83 C 0xC4
1 0x12 5 0x53 9 0x94 D 0xD2
2 0x23 6 0x64 A 0xA2 E 0xE3
3 0x34 7 0x72 B 0xB3 F 0xF4

On peut ainsi obtenir toutes les valeurs de la forme 0xTR avec R plus petit que la valeur donnée dans le tableau (ex : 2 si T = 1) (soit 0x10, 0x11, 0x20, 0x21, 0x22, 0x30, 0x31,...)
Pour les obtenir, il faut transmettre le Pokérus au Pokémon, et attendre afin que le nombre de jours restant diminue



4.
3) Structure : Provenance du Pokémon

Sexe du dresseur Poké Ball ayant servi à la capture Version d'origine Méthode de rencontre
Bit 15 Bits 11 - 14 Bits 7 - 10 Bits 0 - 6
Valeur Sexe Valeur Ball Valeur Version Valeur Méthode
0 Garçon 1 Master BallMaster Ball 0 Disque Bonus de Colosseum 0 Éclos
1 Fille 2 Ultra BallHyper Ball 1 Saphir 1 - 127 Nv de Rencontre
3 Great BallSuper Ball 2 Rubis
0,4,13,14,15 Poké BallPoké Ball 3 Émeraude
5 Safari BallSafari Ball 4 Rouge Feu
6 Net BallFilet Ball 5 Vert Feuille
7 Dive BallScuba Ball 15 Colosseum ou <XD
8 Nest BallFaiblo Ball
9 Repeat BallBis Ball
10 Timer BallChrono Ball
11 Luxury BallLuxe Ball
12 Premier BallHonor Ball

Comment l'interpréter ?
  Alors là, c'est un peu plus compliqué.
M'enfin, choisissez les différents paramètres que vous voulez donner à votre Pokémon, et regardez les valeurs associées.
Pour les Balls, les Poké Balls n°0,13,14,15 devraient se transformer en de nouvelles Balls sur 4e Génération (Rapide Ball, Sombre Ball, Mémoire Ball,...), donc vous pouvez essayez de choisir ces Balls, et de faire un transfert de Pokémon.
Utilisez la formule : Valeur = Nv Rencontre + (Version d'Origine)*128 + (Ball)*2048 + (Sexe)*32.768
Cela forme un gros nombre en décimal. Convertissez-le en Hexadécimal.
Ce nombre sera la valeur en Hexadécimal que devront former les autres données.
Si lors d'une corruption, la version d'origine change, vous ne pourrez plus renommer votre Pokémon.


4.4) Structure : IVs, Oeuf, et Capacité spéciale

Bits Stat
0-4 PV
5-9 Attaque
10-14 Défense
15-19 Vitesse
20-24 Attaque Spé.
25-29 Défense Spé.
30 Oeuf
31 Capacité Spéciale


Comment l'interpréter ?
  On va procéder de la même manière que pour l'Origine :
Choisissez les IVs que vous voulez, ainsi que la Capacité Spéciale (n°1 -> 0, ou n°2 -> 1)
Utilisez la formule : Valeur = IV Pv + (IV Atk)*32 + (IV Def)*1.024 + (IV Vit)*32.768 + (IV Atk.Spé)*1.048.576 + (IV Def.Spé)*33.554.432 + (Cap.Spé)*2.147.483.648
Cela forme un très gros nombre en décimal. Convertissez-le en Hexadécimal.
Ce nombre sera la valeur en Hexadécimal que devront former les autres données.


4.5) Structure : Rubans et Obéissance

Bits Rubans
0-2 Sang-Froid
3-5 Beauté
6-8 Grâce
9-11 Intelligence
12-14 Robustesse
15 Maître
16 Tour de combat Nv. 50
17 Tour de combat Nv. 100
18 Artiste (gagner les 5 concours en Master)
19 Effort
20 Spécial 1
21 Spécial 2
22 Spécial 3
23 Spécial 4
24 Spécial 5
26 Spécial 6
31 Obéissance Mew et Deoxys

Comment l'interpréter ?
  Cette fois, on pourrait croire que c'est pareil qu'avec le reste, mais non.
Corrompre les Rubans Spéciaux, c'est un joyeux bordel.
Ainsi, connaître la valeur à mettre à cette donnée pour avoir pile l'effet escompté niveau Rubans, c'est peine perdue. (c'est mieux de modifier un peu à l'arrache et de voir ce que l'on a eu).
Bon, les Rubans des Concours sont bien rangés, mais ça vous pouvez les obtenir facilement, du coup on s'en fout toujours un peu.
Seul rescapée de l'ordre bordélique, l'Obéissance de Mew et Deoxys.
Pour obtenir le nombre en Hexadécimal à former pour rendre Mew et Deoxys obéissants, vous mettez un 1, suivi de 31 "0", et vous convertissez ce nombre binaire en Hexadécimal. (spoil : cela fait 0x8000 0000)
De toute façon, il y a une page spéciale pour Rendre Mew et Deoxys Obéissants [Lien], donc ne vous cassez pas trop la pipe là-dessus.

Voilà, vous êtes maintenant au courant de tout ce qu'il faut pour bien vous dépatouiller dans une Corruption des Pokémon, ou une Double Corruption.
Allez, je vous souhaite du bon courage pour vos corruptions, et plein d'imagination pour vous faire des Pokémon abusément cool / glitchés, histoire d'en profiter à fond !

 

Et comme on ne vole pas, je rajoute un petit Credit : Bulbapedia

* Retour à la page sur le Glitch Grena *
** Accueil **