J'aimerais comprendre la logique des codes trichew

Pages: [1]

Cratere

  • Membre
  • 1 posts
04 Novembre 2019, 16:38
Bonjour, je ne comprend pas comment avec une suite de chiffre cela peut avoir une conséquence avec le code d'un jeu (en l'occurrence pokemon).
Y aurait-il des personne pour me l'expliquer ?
Merci.

Weby

  • Membre
  • 56577 posts
04 Novembre 2019, 19:04
Les codes sont en fait une série d'instructions qu'on donne à l'émulateur/l'action replay/...

En gros, quand on utilise un code, il y a vraiment que deux types de choses qui peuvent se passer :
- on lit la mémoire vive du jeu à une certaine adresse
- on écrit sur la mémoire vive du jeu à une certaine adresse

Y'a vraiment plus ou moins que ça qui peut se passer.

La mémoire d'un jeu est une série de 0 et de 1, mais qui est habituellement représentée de manière hexadécimale : de 0x00 (pour 00000000) à 0xFF (pour 11111111). Plus facile à lire pour tout le monde, et très facile à comprendre.
Les codes, c'est pareil, c'est de l'hexadécimal.


Un code sera composé de plusieurs choses :
- l'adresse
- l'instruction (écrire, lire)
- la (les) valeur(s) à écrire
- la (les) valeur(s) à comparer
- ...

Il y a plein de types de codes différents (gameshark/action replay, code breaker, game genie, ...), chacun avec sa propre manière d'écrire le code (position des différents éléments, ...).

Prends un exemple con, un code qui augmente le nombre d'objets en première position de ton inventaire.
J'INVENTE LES INSTRUCTIONS/ADRESSES/ETC OK ?

Je crée un système de code qui utilise le format suivant :
AA BBBB CC

A = instruction
B = adresse
C = valeur à lire/écrire en mémoire

Admettons que l'adresse en mémoire vive du premier objet de ton inventaire se trouve à l'adresse 0xABCD, que l'instruction pour écrire est 0x01, et que tu veux y mettre le maximum d'objets possibles.

Le code sera donc : 01 ABCD FF


Simple, non ?

Essayons maintenant un code similaire : on veut mettre le nombre d'objets au maximum mais SEULEMENT si c'est une master ball.
Disons que le type d'objet est enregistré à l'adrese 0xABCC, et que la masterball est l'objet 0x01.
Disons aussi que mon système de code fait en sorte que si une comparaison est fausse, la ligne de code suivante n'est pas exécutée.
Disons dernièrement que l'instruction 0x02 est pour comparer une égalité (entre CC et DD).

Le code serait donc :
02 ABCC 01
01 ABCD FF

Donc qu'est-ce qui se passe là ?
La première ligne dit "Lis l'adresse ABCC, et si sa valeur est égale à 0x01, exécute la ligne suivante".
La deuxième ligne dit la même chose qu'avant : mets l'objet à 0xFF (255).

Il y a évidemment des tonnes d'instructions supplémentaires, des conditions à n'en plus finir, etc, mais j'espère que t'as compris le concept !
« Modifié: 04 Novembre 2019, 19:05 par Weby »

Pages: [1]    En haut ↑