CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Forum
  • Accueil
  • Actus
  • Tests
  • Vidéos
  • Images
  • Soluces
  • Forum
Liste des sujets

[aide] Codes Action Replay

Laguna02
Laguna02
Niveau 7
06 janvier 2012 à 18:10:39

Salut, ta des nouveaux codes ? Et quelle touche faut appuyer pour l'animation?

yoshi1515
yoshi1515
Niveau 13
09 janvier 2012 à 20:18:26

Ou sont les codes par personnages pour utiliser ceci ?

http://aladore3viii4.free.fr/files/FF8/Animation%20ID.txt

J'aimerais bien essayer un Terra Break avec Edea.

Laguna02
Laguna02
Niveau 7
11 janvier 2012 à 17:30:55

Le code est 800ED552 ????

Aladore384
Aladore384
Niveau 26
11 janvier 2012 à 23:33:29

yoshi1515 :d) le code animation a aucun intérêt. Il modifie juste le visuel de TOUTES les actions dans un combat.

Laguna02
Laguna02
Niveau 7
12 janvier 2012 à 02:49:45

Vivement le code pour vraiment les avoir :p

yoshi1515
yoshi1515
Niveau 13
12 janvier 2012 à 18:17:54

Aladore tu parles du code de la vidéo ou de celui 800ED552 ????

Laguna02
Laguna02
Niveau 7
12 janvier 2012 à 18:34:32

C'est lié donc il parle des 2, c'est avec ce code qu'il fais la vidéo.

Aladore384
Aladore384
Niveau 26
12 janvier 2012 à 18:52:35

Je confirme ce que dit mon VDD.

yoshi1515
yoshi1515
Niveau 13
12 janvier 2012 à 20:31:46

Ok, :merci:

yoshi1515
yoshi1515
Niveau 13
11 février 2013 à 15:48:51

Ah propos, je remonte le topic !
Existerait-il un code action replay permettant de renommer n'importe quelle personnage ? Parce que n'être limiter qu'à Squall et Linoa c'est un vrai bâclage, honnêtement !

Aladore384
Aladore384
Niveau 26
11 février 2013 à 21:10:51

C'est impossible de vraiment renommer le personnage, car les noms ne resteront pas.

En fait, sur la savemap (données qu'on peut sauveguarder) de FF VIII on ne trouve que les noms qu'on peut changer de manière legit (Squall, Linoa, Angel, les GF et Boko).

Après, je peux essayer de faire un code pour forcer le changement de nom mais ça vaut pas le coup : il faudrait que le code soit actif à chaque fois que tu joues (sinon retour au vrai nom).

Mais surtout, je crois pas pouvoir le faire. Je vais voir, mais ne t'attends pas à grand chose :)

yoshi1515
yoshi1515
Niveau 13
11 février 2013 à 22:17:53

Ah d'accord, je ne cache pas ma surprise puisque dans FF9 ils y avaient des codes permettant de renommer même des personnages secondaires (Frank/Tarask, Cina/Kweena, Markus/Eiko et surtout Beate qui n'est affilié à aucun autre personnage.) Enfin bon après les jeux ne sont jamais conçus de la même manière mais par curiosité quelle logiciel utilise-tu pour créer ces codes ? Moi j'ai beau avoir étudié et relus tes liens pour créer des codes action replay, mais je trouve sa vraiment trop difficile.

Aladore384
Aladore384
Niveau 26
01 mars 2013 à 22:09:01

"Ah d'accord, je ne cache pas ma surprise puisque dans FF9 ils y avaient des codes permettant de renommer même des personnages secondaires (Frank/Tarask, Cina/Kweena, Markus/Eiko et surtout Beate qui n'est affilié à aucun autre personnage.)"

Je pense pas que ce soit impossible sur FF VIII. Mais la méthode que j'utilise ne s'appliquera pas. Méthode que je préfère expliquer dans mon deuxième post.

Aladore384
Aladore384
Niveau 26
02 mars 2013 à 02:23:44

Je vais commencer par définir ce qu'est un code AR en partant du principe que je m'adresse à quelqu'un qui connaît rien à rien. Je préfère être sûr que tout est bien compris, mais ça me permet aussi d'utiliser mes propres termes.

Mais comme je suis nul pour les explications, hésitez pas à me dire si un point n'est pas clair.

Ahem...

Datel a créé plusieurs appareils de triche pour jeux vidéos sous différentes formes : cartouche, disque... mais toujours avec le même nom : Action Replay. Ce type d'appareil a différents noms selon son constructeur, et parfois selon la console : GameGenie, GameShark, Xploder... Mais de manière à rester simple, pour la suite du tuto je vais garder le terme "Action Replay" ou AR.

L'AR permet de modifier des éléments du jeu en accédant à sa mémoire. Mais il faut indiquer à l'AR quelle partie du jeu on veut modifier (adresse), et quelle modification on veut lui apporter (valeur). C'est ce que fait un code AR. Sur PS1, la plupart du temps on a un code qui ressemble à ça :

XX000000 ZZYY

La première partie du code concerne l'adresse :
XX : Fonction utilisée
000000 : Adresse modifiée (ce qu'on veut modifier)

La seconde partie du code concerne la valeur de l'adresse :
ZZ : second octet
YY : premier octet

/!\ "ZZ" est le premier octet de l'adresse suivante/!\

Les adresses et les valeurs sont écrites en héxadécimal. Dans un système décimal, on compte sur une base 10 avec les chiffres de 0 à 9.
Dans un sytème hexadécimal, on compte sur une base 16 avec les chiffres de 0 à F (15). Dans l'ordre : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
D2+9 = DB
19+1 = 1A

La valeur est écrite en chiffres hexadécimal, mais c'est pas forcément pour désigner un "nombre". Il y a en fait plusieurs types de valeurs :
- Nombre
- Booléen (vrai = 01 ou faux = 00, par exemple pour activer ou désactiver qqch)
- Unique (un chiffre correspondant à un objet en particulier par exemple)

Normalement la valeur d'une adresse peut être modifiée sur 1 seul octet (YY). Avec la fonction 30 ça donne : "écriture constante sur 1 octet". On aura donc une valeur minimum de 00 et maximum FF (255).

Mais avec des AR plus récent, on peut modifier deux octets avec une seule ligne de code avec la fonction 80 "écriture constante sur 2 octets". C'est surtout utile pour les valeurs "nombre".

Exemple avec les HP en combat du 1er personnage sur FF VIII:

Pour le code en 30
"HP 9999\Code en 30 :
300790CA 000F
300790CB 0027

9999 dec = 270F hex
On écrit "0F" sur le premier octet, et "27" sur l'octet suivant = 270F.

Pour le code en 80
"HP 9999\Code en 80 :
800790CA 270F

On écrit les deux octets directement sur 0790CA... c'est l'impression que ça donne mais une adresse ne peut contenir qu'1 seul octet. En fait c'est pour faciliter la vie à l'utilisateur, mais ça change pas par rapport à l'exemple avec le code en 30. Il va toujours écrire "0F" sur 0790CA et 27 sur 0790CB.

Il faut aussi noter que dans le cas d'un code en 30, l'AR ne fera rien au second octet mais il faut toujours écrire 4 chiffres. Il faut donc mettre "00" puis son octet. J'écrirais donc pas "300790CA 0F" mais bien "300790CA 000F".

Attention, car en utilisant des codes 80 on risque de modifier des octets qu'on voulait pas modifier, faut être sûr de ce qu'on fait. Si on ne veut modifier qu'un octet alors il faut utiliser le code 30.

Un octet est composé de 8 bits : 8 chiffres binaires qui sont chacun soit un 1 soit un 0.

Chaque combinaison de ces chiffres binaires (0 et 1) est une information différente que le jeu doit interpréter. Idéalement on devrait pouvoir switcher entre écriture décimal, hexadécimal et binaire. Mais on n'a pas ce choix.

Du coup, il faut penser en hexadécimal dans certaines situations où le binaire aurait été pratique. Pour cela on a une correspondance entre l'hexa et le binaire sur l'AR. Les nombres suivants peuvent être utilisés comme des "1" binaires : 01, 02, 04, 08, 10, 20, 40, 80.

Prenons cet octet : 30078532 00XX.
01 = Jouer en tant que Laguna (séquence de rêve)
02 = Avoir Odin
04 = Avoir Phoenix
08 = Avoir Gilgamesh
10 = Linoa n'a pas Angel (Inu)
20 = Linoa a Canonisation
40 = rien
80 = rien

Là il faut combiner selon les besoins. Tu pars de "00", et ajouter (en comptant en hexa) chaque fonction voulue. Par exemple, je veux avoir Odin+Gilgamesh+Phoenix+Linoa sans aucune limit : 00+02+04+08+10 = 1E.

Prenons un autre exemple. Voici le code qui permet de modifier le nombre de cartes Bogomile qu'on a.

"Triple Triad\Cartes\Bogomile
30078AF0 00E4

Décortiquons ce code :
30 : Fonction utilisée : "écriture constante sur 1 octet"
078AF0 : Adresse modifiée : "Nombre de cartes Bogomile"
00E4 : Valeur apportée : comme c'est sur 1 octet, on ignore le deuxième octet "00". Le premier octet est à E4.

Ce code donne 100 cartes Bogomile. Si vous avez bien suivi, vous voyez que quelque chose cloche : 100 en hexa donne 64, et non E4.

C'est parce que pour ce code en particulier, il faut combiner nombre et activation de la carte. La carte n'apparait que si on a activé le "bit" 80. Il faut donc faire "80+(nombre de cartes voulues)".

----

Je vais m'arrêter là pour le moment, je t'explique demain comment créer un code à proprement parler. Hésite pas à poser des questions, j'ai même l'impression de m'embrouiller moi même alors que c'est clair à mes yeux.

yoshi1515
yoshi1515
Niveau 13
02 mars 2013 à 20:22:25

Pour être honnête je ne comprends toujours pas comment tu t'y prends précisément pour deviner quelles lignes, quelles données, quels codes, correspondent à tel ou tel octet. Par exemple comment a tu réussis à deviner que ce code :
30078532 00XX.
01 = Jouer en tant que Laguna (séquence de rêve)
02 = Avoir Odin
04 = Avoir Phoenix
08 = Avoir Gilgamesh
10 = Linoa n'a pas Angel (Inu)
20 = Linoa a Canonisation
40 = rien
80 = rien

pouvait correspondre à ce type de modification ?
Tu ne l'as quand même pas taper au hasard ?
Tu as réussis l'exploit d'accéder au script du jeu ?

Aladore384
Aladore384
Niveau 26
03 mars 2013 à 00:05:15

Nan j'ai juste abordé quelques bases de ce qu'est un code AR. Dans un second post je vais expliquer comment trouver des codes.

Aladore384
Aladore384
Niveau 26
04 mars 2013 à 22:40:51

Comment créer un code ?

Le but quand on créé un code c'est de trouver l'adresse en question, c'est ensuite la valeur qu'on choisira qui donnera l'effet voulu.

Au vu des milliers d'adresses possibles, on ne peut pas juste essayer des adresses au pif jusqu'à ce que ça marche. C'est possible, mais vu le temps que ça mettrait, ce serait encore plus simple de faire sans le code.

La méthode consiste à filtrer ces adresses selon leur valeur, et de répéter les filtrages jusqu'à avoir une liste d'adresses courte (et souvent une seule).

Pour cela, on peut utiliser psx emulation cheater (PEC) pour l'émulateur ePSXe.

On va prendre un exemple concret : cherchons le code FF VIII qui détermine le nombre de Gils.

Le plus simple, sera de faire varier la valeur de cette adresse afin de filtrer le plus possible :

- Je suis à Balamb, devant la boutique avec 5000 Gils.
- J'accède au chercheur de codes de PEC : Ctrl+H, et on voit cette fenêtre :

https://image.noelshack.com/fichiers/2013/10/1362433194-sans-titre-1.png

Cette fenêtre apparaît toujours, mais les filtres proposés diffèrent selon si le premier filtrage ou si c'est la suite d'un précédent filtrage.

Pour notre premier filtrage, voilà les options :

Search for (chercher) :
- Equal Value : valeur égale à
- Not Equal Value : valeur non-égale à
- Range : fourchette de valeurs

Data type (type de données/adresses) :
- 1 byte : 1 octet - valeur de 00 à FF (255)
- 2 bytes : 2 octets - valeur de 0000 à FFFF (65535)
- 4 bytes : 4 octets - valeur de 00000000 à FFFFFFFF (4294967295)

Data base : ça vous laisse le choix entre chercher les valeurs en décimal ou en hexadécimal

Value : la valeur qu'on cherche (selon ce qu'on a mis dans "search for"). dans le cas d'un Range on aura deux cases (minimum et maximum).

Search range : permet de ne chercher qu'une trache d'adresses, utile si vous savez déjà à peu près où votre adresse se trouvera. mais laissez "complete memory" tant que vous êtes pas sûrs.

Dans mon cas, j'ai 5000 Gils sur moi. Donc je choisis :
Search for : equal value
Data type : comme j'ai déjà 5000, ça ne peut pas être 1 byte (valeur limitée à 255). Je choisis 4 bytes : je sais que la valeur maximale des Gils est 99999999 qui est plus grande que le maximum pour 2 bytes 65535.
Data base : décimal, c'est plus simple pour cette recherche, enfin pour moi en tout cas.
Value : 5000 (la valeur de l'adresse que je cherche)
Search range : Complete memory fait très bien l'affaire.

Ensuite, j'appuie UNE SEULE FOIS sur le bouton "Search" en bas : le premier filtrage est fait.
Un message apparaît au dessus de la grosse case blance : Founded Adresses (adresses trouvées): 2.

PEC a donc trouvé 2 adresses de 4 bytes qui sont égales à 5000 à ce moment là du jeu. Elles sont affichées dans la grosse case blanche.

/!\ Dans le cas où PEC trouvent trop d'adresses, il n'en affichera aucune. Mais le filtrage est réussi et on peut le continuer. J'essaierai d'aborder un exemple plus tard. /!\

Cela me suffit pour tester, car il n'y a que 2 tests à faire. Je double clic sur chacune des deux adresses, et à chaque fois j'ai le droit d'entrer une nouvelle valeur : j'en choisis deux différentes : adresse 1 aura une valeur de 8 et adresse 2 aura une valeur de 2000.

Je retourne dans le jeu : bouton Resume Emulation. Je regarde le nombre de Gils que j'ai : 8.

Je vens un objet d'une valeur de 50 gils pour être sûr qu'il m'a trouvé l'argent réel. Si j'ai 58 gils à la fin de la transaction, alors je sais à 100% que c'est la bonne adresse.

Et vu que ça a marché, je peux noter cette adresse et en faire un code. Retournons sur le chercheur de code : Ctrl+H.

Je peux noter mon adresse à la main, ou alors je clique sur l'adresse voulu puis je clic sur le bouton "copy" à droite pour l'avoir dans le presse-papiers :

8007831C

Par défaut, PEC affiche les adresses avec la fonction 80 en utilisant son premier byte. Effacer alors les deux premiers chiffres pour voir la vraie adresse. Mais maintenant, il faut quand même adapter ce code pour l'utiliser.

On a une adresse de 4 bytes qui commence par 07831C :
07831C
07831D
07831E
07831F

Je peux faire le code en utilisant la fonction 30 :
3007831C 00??
3007831D 00??
3007831E 00??
3007831F 00??

Les valeurs inscrites sur "??" se cumulent. Mais il faut prendre en compte l'ordre des bytes :
- le premier donne un montant entre 1 et 255
- le deuxième donne un montant entre 256 et 65280
- le troisième donne un montant entre 65536 et 16711680
- le quatrième donne un montant entre 16777216 et 78190080

En fait, c'est simple mais je suis naze pour expliquer. Ce qu'il faut comprendre c'est qu'on écrit les derniers chiffres du montant voulu sur les premiers octets.

Mettons que je veuille 99,999,999 Gils (le max naturel du jeu). Dans un premier temps, il faudra convertir 99999999 en hexa pour que PEC ou les AR le comprenne.

La calculette Windows le fait très bien ou sinon : http://www.statman.info/co/conversions/hexadecimal.html

Et donc 99999999 = 5F5E0FF

Voyons comment insérer 5F5E0FF sur ces 4 bytes : 05 F5 E0 FF =>
Byte 1 : FF
Byte 2 : E0
Byte 3 : F5
Byte 4 : 05

Voilà donc mon code entier avec la fonction 30 (écriture constante sur 1 byte) :

"99999999 Gils
3007831C 00FF
3007831D 00E0
3007831E 00F5
3007831F 0005

Mais 4 lignes de codes ça fait beaucoup. Heureusement, les AR (dont PEC) ont pour la plupart la fonction 80 (écriture constante sur 2 bytes).

Prenons l'adresse qu'avait trouvé PEC : 07831C. Si j'utilise un code 80, ça me donne :

8007831C YYZZ (ZZ est l'octet de 07831C et YY est l'octet de 07831D)
8007831E ??XX (XX est l'octet de 07831E et ?? est l'octet de 07831F)

Et maintenant entrons notre nombre hexadécimal là dedans : 05 F5 E0 FF =>
Byte 1 : FF
Byte 2 : E0
Byte 3 : F5
Byte 4 : 05

Alors :
8007831C E0FF
8007831E 05F5

Si je veux un nombre qui tient sur 3 bytes, et que je veux pas toucher au quatrième je peux aussi combiner un 80 et un 30, c'est pas interdit ^^. Si par exemple je veux 99,999 Gils = 01 86 9F alors je peux :

8007831C 869F
3007831E 0001

J'espère que jusque là c'est clair. Je vais essayer de me grouiller pour les explications sur quand on a besoin de filtrer plusieurs fois.

Il me restera à aborder comment trouver un code quand c'est pas des valeurs connus ensuite et faire un exemple concret avec plusieurs filtrages parce que je pensais pas trouvé l'adresse des Gils aussi vite. Mais en bidouillant un peu on trouve vite comment faire, c'est assez intuitif.

Aladore384
Aladore384
Niveau 26
04 mars 2013 à 23:05:11

Et je sais que mon "tuto" ressemble à rien. Là c'est surtout pour expliquer à yoshi et avoir une base de tuto.

Je ferai qqch de propre, beau et complet un jour où j'aurai le temps et l'envie.

yoshi1515
yoshi1515
Niveau 13
05 mars 2013 à 11:49:58

Je commence enfin à comprendre comment tu t'y prends. Cela paraît à la fois dément et fascinant :ouch2: Enfin bon, je te remercie pour ce mini-tuto sa pourrait toujours me servir un jour si je joue à ce jeu sur PC (sachant que ce jeu est sortit il y a plus de 10 ans et qu'ils n'est plus en vente sur PC, le télécharger serait-il illégal ?)

Aladore384
Aladore384
Niveau 26
05 mars 2013 à 16:55:33

Tu peux toujours utiliser tes disques PS1, il me semble que c'est pas interdit.

La vidéo du moment