Codes Pokémon

Types de Codes pour GBA


Type de code Exemple pour le PokéNav Complet
Raw 02226C9A 0008FFFF
AR V3 F8A3CE39 45161C10
AR V1 9BDC2A16 9B926A3F
CBA 42026C9A FFFF
00000009 0002

Le Raw ("naturel" en français)

Comme son nom l'indique, ce langage permet l'écriture de codes selon des structures particulières, qui dépendent de la langue de cryptage que l'on choisit.
Ce langage doit toujours être crypté en GameShark ou CodeBreaker, car il n'est pas compris directement par les AR (VisualBoy Advance peut le comprendre, mais il est conseillé de crypter vos codes).

Le GameShark (ARV1 ou ARV3)

Langage crypté le plus fréquent. Il en existe deux variantes, qui n'ont pas les mêmes structures en Raw. Le GameShark V1 est en général dépassé, et tous les codes actuels sont cryptés en GameShark V3.
La différence visible entre GameShark V1 et V3 est l'absence d'espace entre les caractères sur les codes GameShark V1.
Sinon, si vous n'êtes pas sûr, décryptez le code en choisissant d'abord GameShark V3, puis si ARCrypt vous sort un décryptage inhabituel, le code était alors en GameShark V1.

Le CodeBreaker

Langage "crypté" plus pratique que le GameShark, car son "cryptage" permet quand même de repérer la structure des codes, et de les modifier à la main sans grand effort. Certains Action Replay le mentionnent sous le nom de Thrustmaster. Ainsi, il n'y a pas forcément besoin de passer par le Raw pour concevoir un code en CodeBreaker.
Cependant, ce langage a moins de possibilités que le GameShark, notamment en ce qui concerne les Anti-DMA (les codes bloquant certains scripts anti-triche sur E/RF/VF) ou des codes comme rendre le Pokémon Shiny, modifier son Niveau, son espèce,...
Leur avantage est leur facilité d'écriture comparée au Raw, ce qui fait qu'il est plus simple d'écrire un code en Codebreaker, puis de le crypter en GameShark V3.
Il existe aussi une version cryptée des codes CodeBreaker, qui nécessite le logiciel CBA Crypt afin de les décrypter. Ces codes cryptés doivent comporter en première ligne une clé de cryptage, commençant par un 9 (en général, celle-ci n'est mise que sur le Code Master, mais doit être recopiée sur tout code que vous désirerez crypter/décrypter). Petit exemple de clé de cryptage comprise dans un Code Master :

CBACrypt

N'oubliez pas de mettre l'espace entre le 8e et le 9e caractère de chaque ligne, sinon CBA Crypt ne décryptera pas le code.

Pour écrire ses propres codes

L'émulateur VisualBoyAdvance possède une option de visualisation de la Ram (Tools/Memory Viewer), utile pour façonner un code en partant d'adresses déjà connues (trouvables en décryptant des codes via ARCrypt, ou via la recherche de valeurs avec Cheats/Search for Cheats).
Pour une recherche plus rapide de valeurs de la ROM ou dans la sauvegarde, un logiciel comme HexEditor est utile, VBA ne proposant pas la recherche directe d'une longue série de valeurs dans la Ram ou la ROM.

Pour ce qui est des formats d'écriture, cette page les recense (page en anglais), et vous pouvez vous servir de codes déjà existants pour les décrypter puis les modifier à votre guise (ex : codes pour modifier la quantité des objets du sac, ou les objets du PC, ou vos stats,...).

Cette page fournit aussi certaines explications plus poussées sur ARCrypt, ainsi que sur d'autres éléments liés à la triche comme des versions de VBA modifiées pour la recherche de codes (ainsi que d'autres bricoles)

Voici cependant un récapitulatif des formats d'écriture utilisés le plus souvent sur Pokémon. Il y en a beaucoup d'autres traitant divers cas (surtout pour l'AR V3)(ils sont indiqués sur le lien ci-dessus, mais ils n'ont pas d'intérêt majeur sur Pokémon)

Formats d'écriture pour AR V3
Une fois le code écrit, il doit être crypté (Raw -> ArV3).
Modifier un octet de la Ram 00ABBBBB 000000YY écrit YY à l'adresse 0A0BBBBB.
Modifier deux octets de la Ram 02ABBBBB 0000YYZZ écrit YY à l'adresse 0A0BBBBB+2 et ZZ à 0A0BBBBB.
Patcher deux octets de la ROM 00000000 18AAAAAA
0000YYYY 00000000
écrit YYYY en partant de l'adresse 2*04AAAAAA (la calculatrice fera le calcul à votre place).
C'est le seul code capable de modifier des adresses de la ROM (08XX...) et ainsi concevoir des codes pour modifier les mécanismes du jeu (Pokémon Shiny, Apprendre toutes les CT/CS,...), et il n'est pas convertible en CBA.
Itération de deux octets 00000000 82ABBBBB
0000YYYY VVDDIIII
écrit DD octets, en commençant par YYYY à l'adresse 0A0BBBBB, et en augmentant l'adresse de IIII*2 et XXXX par VV à chaque itération.
Réalise en général un remplissage rapide d'une poche du Sac, du Pokédex, ou du PokéNav (le code est bien moins long).
Formats d'écriture pour CBA
Ces codes sont vraiment plus simples à écrire, et permettent aussi d'écrire rapidement des codes AR V3 en les convertissant via ARCrypt.
Modifier un octet de la Ram 3AAAAAAA 000000YY écrit YY à l'adresse 0AAAAAAA.
Modifier deux octets de la Ram 8AAAAAAA 0000YYZZ écrit YY à l'adresse 0AAAAAAA+2 et ZZ à 0AAAAAAA.
Itération de deux octets de la Ram 4AAAAAAA YYYY
ZZZZXXXX IIII
écrit XXXX octets, en commençant par YYYY à l'adresse 0AAAAAAA, et en augmentant l'adresse de IIII*2 et YYYY par ZZZZ à chaque itération.
Réalise en général un remplissage rapide d'une poche du Sac, du Pokédex, ou du PokéNav (le code est bien moins long).
Si vous prenez des valeurs de XXXX et ZZZZ supérieures à 00FF, le code ne sera pas convertible en ArV3 (le format pour l'itération en ArV3 se limitant à FF pour ces deux valeurs).
Comparaison de 2 octets 7AAAAAAA YYYY La ligne de code suivante est exécutée si et seulement si les deux octets à partir de 0AAAAAAA valent YYYY.
Permet de concevoir des activateurs (l'adresse concernant les touches est 04000130).

Par Metarkrai

Par Loris