## 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

Remainder of euclidian division of PID by 24
00. CAED | 06. ACED | 12. ECAD | 18. DCAE |  | C : Growth A : Attacks E : EVs & Contest stats D : Miscellanous
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.

3.4) Table of values that can prevent the Corruption from succeeding

Table of values that can prevent the Corruption from succeeding
Substructure | Data | If yes : Bit at 1 | If No : Bit at 0
--- | --- | --- | ---
Growth | The hexadecimal identifiant of the Held Item is between 0x4000-0x7FFF or 0xC000-0xFFFF | Oui | Non
Growth | The hexadecimal value of the experience points is between 0x40000000-0x7FFFFFFF or 0xC0000000-0xFFFFFFFF. (The only way to have a Pokémon with such a high exp is by Double Corrupting it) | Oui | Non
Growth | Unknown value is between 0x4000-0x7FFF or 0xC000-0xFFFF. (The only way to change this value on a Pokémon is by double corrupting it) | Oui | Non
Attacks | The hexadecimal identifiant of Move n°2 s between 0x4000-0x7FFF or 0xC000-0xFFFF | Oui | Non
Attacks | Identifiant de l'Attaque 4 entre 0x4000-0x7FFF or 0xC000-0xFFFF | Oui | Non
Attacks | PPs de la 4e Attaque entre 0x40-0x7F or 0xC0-0xFF | Oui | Non
EVs | EVs Vitesse entre 0x40-0x7F or 0xC0-0xFF (64-127 or 192-255 in decimal) | Oui | Non
EVs | Beautyy between 0x40-0x7F or 0xC0-0xFF (64-127 or 192-255 in decimal) | Oui | Non
EVs | Feel/Luster between 0x40-0x7F or 0xC0-0xFF (64-127 or 192-255 in decimal) | Oui | Non
Miscellanous | The Pokémon was caught in a Repeat, Nest, Timer, Premier, Luxury Ball, or in Ball 12,13,14,15. (Balls 12,13,14,15 can only be obtained on a Poké by Double Corrupting it) | Oui | Non
Miscellanous | The Pokémon is in an Egg. | Oui | Non
Miscellanous | The Pokémon has an event ribbon impossible to obtain. (You can only obtain this ribbon on a Pokémon by Double Corrupting it) | Oui | Non
Result | The Pokémon can be successfully corrupted if and only if the amount of "Yes" is even. |  |

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 Ball | 0 | Disque Bonus de Colosseum | 0 | Éclos
1 | Fille | 2 | Hyper Ball | 1 | Saphir | 1 - 127 | Nv de Rencontre
| 3 | Super Ball | 2 | Rubis
0,4,13,14,15 | Poké Ball | 3 | Émeraude
5 | Safari Ball | 4 | Rouge Feu
6 | Filet Ball | 5 | Vert Feuille
7 | Scuba Ball | 15 | Colosseum ou <XD
8 | Faiblo Ball
9 | Bis Ball
10 | Chrono Ball
11 | Luxe Ball
12 | Honor 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 **