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 :
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). |
Par Metarkrai

