Nouveaux codes inédits pour Pokémon Platine FR !

Pages: 1 2 3 4 5 6 [7] 8 9

harvey-whistle

  • Membre
  • 32 posts
08 novembre 2009, 22:08
Super! ça marche nickel! :)

C'était tout con en plus, j'aurais dû y penser... Merci beaucoup M@T! Tu gères ;)

M@T

  • Membre
  • 15146 posts
08 novembre 2009, 22:55
De rien, c'est mon boulot !  :haulas:

zozo77

  • Membre
  • 32 posts
17 février 2010, 16:03
Bon, voilà le tuto sur l'utilisation d'EmuCheat :

Je préviens tout de suite, les gens qui ne connaissent pas l'hexadécimal ou qui ne savent pas comment fonctionne l'Action Replay (principe d'adresse mémoire/valeur) ne risquent pas de comprendre !

Prérequis
Petite précision : en hexadécimal, pour faire la différence avec le système décimal classique, on note les nombres sous la forme 0xXXXXXXXX.
Ainsi, 0x0001E240 = 123456.

Vous devez aussi connaître la différence entre la taille des différentes variables.
Il en existe trois : l'"octet" (byte en anglais), le "demi-mot" (halfword) et le "mot" (word).
L'octet fait 8 bits, le demi-mot en fait 16 et le mot 32.
Avec l'Action Replay, il y a une façon précise pour différencier ces types de variables :

0XXXXXXX YYYYYYYY pour écrire le "mot" YYYYYYYY à l'adresse 0XXXXXXX,
1XXXXXXX 0000YYYY pour écrire le "demi-mot" YYYY à l'adresse 0XXXXXXX,
2XXXXXXX 000000YY pour écrire l'"octet" YY à l'adresse 0XXXXXXX.

Cela dépend des valeurs que la variable peut prendre.
Les grandes valeurs, comme l'argent ou le score, sont stockées sur 32 bits (cela va de 0 à 0xFFFFFFFF, soit 4294967295 au maximum).
Les valeurs plus petites mais qui peuvent être supérieures à 255, comme les coordonnées sur la carte ou les objets dans le sac, sont stockées sur 16 bits (de 0 à 0xFFFF, soit 65535).
Les valeurs qui ne peuvent dépasser 255, comme le nombre de pas de repousse restants ou encore le genre du héros (0 pour garçon ou 1 pour fille) sont stockées sur 8 bits (de 0 à 0xFF, soit 255).

Il est important de faire la différence, car si vous écrivez une valeur de 32 bits (4 octets) à une adresse qui est prévue pour 8 bits (un octet), le code modifiera aussi les 3 octets qui sont à côté, ce qui peut être fâcheux si ces octets sont importants pour le jeu.

Dans la première partie du tuto, on ne fonctionnera qu'avec des adresses de type 32 bits.

(Il y a un bon récapitulatif des différents types de codes à cette adresse : http://doc.kodewerx.org/hacking_nds.html#arcodetypes, en anglais comme toujours.)


I - Tout d'abord, un petit rappel (ou pas) sur le fonctionnement de l'offset de l'Action Replay.

Première partie
Il faut déjà savoir que les adresses mémoire changent à chaque démarrage du jeu.
Donc il y a peu de codes qui marcheraient si ils étaient simplement sous la forme XXXXXXXX YYYYYYYY (avec XXXXXXXX : adresse mémoire et YYYYYYYY : valeur).

Le jeu contient cependant certaines variables qui lui indiquent où sont situées les adresses mémoire.
On appelle cela un "offset", c'est une valeur que l'on rajoute à chaque adresse.

Ainsi, si l'offset vaut AAAAAAAA, le code XXXXXXXX YYYYYYY devient (XXXXXXXX+AAAAAAAA) YYYYYYYY, c'est-à-dire que l'Action Replay ajoute la valeur AAAAAAAA à toutes les adresses mémoire (cela n'affecte pas la valeur).

Au début du code, l'offset vaut 0.

La ligne B2101F20 00000000, qui est présente dans beaucoup de codes pour Pokémon Platine FR, indique à l'AR de modifier l'offset.
Il lui ajoute la valeur située à l'adresse mémoire 0x02101F20.
Comme normalement l'offset vaut 0 avant cette ligne, sa valeur sera exactement celle de l'adresse 0x02101F20.

Si par exemple, à l'adresse mémoire 0x02101F20, on a la valeur 0x0227E480, cela veut dire que l'offset vaudra 0x00000000 + 0x0227E480 = 0x0227E480 (c'est un exemple, ça peut être n'importe quelle valeur qui commence par 0x0227E4XX).

Prenons comme exemple le code pour avoir 999 999 p$ :
94000130 FCFF0000
B2101F20 00000000
00000090 000F423F
D2000000 00000000


La première ligne (en noir) indique qu'il faudra appuyer sur L+R pour activer le code.
La dernière (en vert) s'appelle "full terminator", elle permet de terminer totalement le code (on remet l'offset à 0, c'est très important pour ne pas gêner les autres codes).

Les lignes qui nous intéressent sont les deux du milieu.

La rouge, dont j'ai déjà parlé, indique à l'AR de définir l'offset à la valeur située à l'adresse mémoire 0x02101F20.
Disons que cette valeur est 0x0227E480, comme précédemment.
On a donc offset = 0x0227E480.

Maintenant, intéressons-nous à la ligne bleue.

Toute seule, elle voudrait dire "mettre la valeur 0x000F423F (999 999 en décimal) dans l'adresse 0x00000090".
Seulement, vu que l'on a défini un offset, l'Action Replay ajoute automatiquement la valeur 0x0227E480 à toutes les adresses mémoire que l'on modifie.

Ainsi, les lignes suivantes :

B2101F20 00000000
00000090 000F423F
D2000000 00000000
(1)

sont équivalentes à ça :

0227E510 000F423F (2)

si l'adresse mémoire 0x02101F20 contient la valeur 0x0227E480.

En effet, 0x00000090 + 0x0227E480 (offset) = 0x0227E510.

Le code (2) ne fonctionnerait que le temps où on a la valeur 0x0227E480 à l'adresse 0x02101F20.

Si l'on redémarre le jeu, les adresses seront décalées et ce code ne fonctionnera plus.
Cependant, vu que le jeu a en mémoire l'offset, il suffit de faire un code "relatif" à cet offset pour qu'il marche à chaque fois.

C'est pour cela que le code (1) marchera à chaque fois.


Voilà, fin de la première partie.


II - Comment utiliser l'offset pour transformer les adresses mémoire trouvées avec EmuCheat en codes Action Replay.

Deuxième partie
Si vous avez bien compris la première partie, nous pouvons passer à la deuxième.

Vous savez maintenant comment fonctionnent les codes Action Replay basiques pour Pokémon Platine FR.

Cependant, si vous voulez créer vos propres codes avec EmuCheat, il y a une méthode à appliquer.

Tout d'abord, vous vous en doutez, il va falloir démarrer EmuCheat et No$GBA.
Chargez la ROM de Platine dans l'émulateur, et associez EmuCheat à No$GBA comme dans le tuto de GBATemp :


Démarrez la partie en choisissant "Continuer".

Ensuite, il faut connaître l'offset actuel du jeu.
Rien de plus facile, rendez-vous dans l'onglet "Search" puis le sous-onglet "Memory Edit".
Entrez 101F20 dans le champ "Address" et cliquez sur "Show Address" (ou appuyez sur la touche "Entrée").
Vous devriez obtenir quelque chose comme ça :


Dans la RAM du jeu, les valeurs sont stockées par octets, en commençant par le dernier octet.
Par exemple, la valeur 0x12345678 sera stockée comme ça : 78 56 34 12.
Sur la copie d'écran, l'offset (encadré en rouge) vaut 34 E4 27 02.
C'est une valeur 32 bits, qui vaut donc, si vous avez bien suivi, 0x0227E434.
On a donc offset = 0x0227E434.

Maintenant, on peut commencer à chercher l'adresse de la variable que l'on veut modifier avec un code AR.

Je vais prendre l'exemple des Points Castel.
En suivant le tuto de GBATemp, vous ne devriez pas avoir de problèmes, mais je vais quand même donner la démarche pour les anglophobes.

Allez dans le sous-onglet "Lookup", et entrez votre nombre actuel de PCa dans le champ "Target:" (moi, j'en ai 10).
Validez avec ensuite la touche "Entrée".
Maintenant, modifiez ce nombre en regardant par exemple l'identité d'un Pokémon de l'équipe adverse.
Le nombre de PCa a diminué, entrez la nouvelle valeur dans "Target:" et validez (j'en ai maintenant 9).
Le nombre d'adresses possibles a normalement dû diminuer.

Recommencez l'opération jusqu'à n'en avoir plus qu'une dans la liste :

Note : j'ai laissé "Search Type" à 8 bits par défaut, mais il vaut mieux le mettre à 16 bits (ça a marché parce que les valeurs sont inférieures à 255, mais si c'est supérieur ça ne marchera pas avec 8 bits).

Ici, l'adresse mémoire que l'on recherche est 0x02284DB8 (EmuCheat donne les adresses sans le "02" au début, mais il est implicite).

Essayons maintenant de modifier le nombre de PCa (disons que l'on en veut 1234, soit 0x04D2 en hexadécimal).
Vous pouvez créer le premier code AR qui ne fonctionnera que sur votre partie actuelle et qui cessera de marcher si vous resetez.
Commencez classiquement avec la ligne 94000130 FCFF0000 pour activer avec L+R.
La valeur étant en 16 bits pour les PCa, commencez la ligne suivante avec un "1".
Écrivez à la suite l'adresse que vous avez obtenue, en enlevant le zéro à gauche (ici, ça donne 12284DB8).
Maintenant, faites un espace et entrez la nouvelle valeur en hexadécimal, en ajoutant des zéros à gauche afin qu'il y ait 8 chiffres en tout.
Ici, on obtient la ligne 12284DB8 000004D2.
Enfin, terminez par D2000000 00000000.

J'obtiens le code suivant :
94000130 FCFF0000
12284DB8 000004D2
D2000000 00000000

La partie verte du vôtre sera normalement différente.

Entrez ensuite ce code dans No$GBA (touche "F2"), cochez sa case, validez et activez-le avec L+R pendant le jeu.
Entrez ensuite dans un menu, "PROPRE EQUIPE" par exemple, et admirez les PCa.
Victoire ! Il y en a 1234 !  :D


À partir de maintenant, ça va devenir un peu plus technique...
Nous voulons un code de cette forme :
94000130 FCFF0000
B2101F20 00000000
1XXXXXXX 0000YYYY
D2000000 00000000


Nous avons l'offset et l'adresse mémoire des PCa (que l'on va noter 0AAAAAAA).
Or, cette adresse mémoire est formée comme ça :
0AAAAAAA = 0XXXXXXX + offset.

Un peu de maths, et on obtient :
0XXXXXXX = 0AAAAAAA - offset.

Dans mon cas, ça donne :
0XXXXXXX = 0x02284DB8 - 0x0227E434.

On écrit  02284DB8 - 0227E434 dans la calculatrice Windows en mode Scientifique et hexadécimal (appuyez sur "F5") et on obtient... Tadaaa !
02284DB8 - 0227E434 = 6984.
Donc 0XXXXXXX = 0x00006984.

On a notre code :
94000130 FCFF0000
B2101F20 00000000
100006984 0000YYYY
D2000000 00000000


Mettez la valeur hexadécimale que vous voulez dans YYYY, et ce sera bon !

Si vous n'avez pas compris certaines choses (ce qui va sûrement arriver  ;D), prévenez-moi (évitez les MP si ce n'est pas nécessaire) et j'essayerai de vous aider.

Dites-moi aussi si vous voyez des imprécisions, des fautes au autre, que je l'améliore.

ShinyPalkia, je compte sur toi pour me signaler les erreurs que j'ai pu faire dans ce tuto !  ;)
EN FAITE C SIMPLE

M@T

  • Membre
  • 15146 posts
17 février 2010, 16:06
Oui, mais apprends à écrire STP, et désactive le caps.lock.  :fail:

M@T

  • Membre
  • 15146 posts
08 mars 2010, 11:38
Nouveau code, en exclusivité pour Pokémon Trash :

Remplacer les 3 derniers Pokémon de votre équipe par les 3 Pokémon de l'Usine (Start + Select) :
94000130 FFF30000
B2101F20 00000000
200000B0 00000006
C0000000 000000B0
D9000000 00030154
D6000000 00000378
D2000000 00000000

Vous devez impérativement avoir au moins 3 Pokémon sur vous avant d'utiliser ce code.
Les 4ème, 5ème et 6ème Pokémon de l'équipe seront remplacés, alors le mieux c'est d'en avoir exactement 3, pour ne perdre personne.

L'utilisation est simple : allez à l'Usine de Combat (solo ou duo, niveau 50 ou libre), empruntez 3 Pokémon, faites les échanges que vous voulez lors du jeu, et lorsque les 3 Pokémon que vous avez vous plaisent, pressez simultanément Select et Start pour les copier dans votre vraie équipe.
Vous pouvez activer le code à n'importe quel moment : pendant un combat, hors d'un combat et même après avoir quitté l'Usine.
Par contre, ne le faites jamais sans avoir fait au moins une fois l'Usine depuis que vous avez chargé votre sauvegarde, sinon les données copiées seront celles de Mauv.Oeufs.


Je vais voir si le contraire fonctionne aussi, c'est-à-dire utiliser les Pokémon de l'équipe à l'Usine de Combat.  ;)

kira s

  • Membre
  • 552 posts
08 mars 2010, 11:41
merci m@t, et un code de plus pour platine ,grâce a toi ont les a tous,je crois que c'est bon maintenant, tous les codes pour platine sont crées  :winner:   

Boogy

  • Membre
  • 8335 posts
08 mars 2010, 11:49
Alors t'a vu que c'est possible ! Il marche comment le code alors?
C'est possible de les copier dans une boite?

M@T

  • Membre
  • 15146 posts
08 mars 2010, 11:50
merci m@t, et un code de plus pour platine ,grâce a toi ont les a tous,je crois que c'est bon maintenant, tous les codes pour platine sont crées  :winner:  

De rien, mais on est loin de tous les avoir créés, la seule limite étant l'imagination.  ;D

Le code contraire fonctionne aussi, le voici :

Utiliser les 3 premiers Pokémon de votre équipe à l'Usine (X + Y) :
94000136 FFFC0000
B2101F20 00000000
C0000000 000000B0
D9000000 000000B4
D6000000 00030154
D2000000 00000000

Le code parle de lui-même : tout d'abord, choisissez bien les 3 Pokémon que vous voulez utiliser à l'Usine et mettez-les, dans l'ordre, dans les 3 premières places de votre équipe.
Ensuite, allez à l'Usine de Combat, empruntez n'importe quels Pokémon et validez.
Lorsque l'assistante vous dit "Entrez, je vous prie", pressez simultanément les touches X et Y de votre console.
Combattez ensuite normalement avec vos propres Pokémon !  :D

Il marche comment le code alors?
C'est possible de les copier dans une boite?

Le code copie toutes les données des Pokémon de l'Usine et les recopie dans l'équipe.
Par contre, on ne peut pas les placer dans une boîte, parce que les données sont différentes (236 octets dans l'équipe et 136 seulement dans les boîtes).

EDIT : Enfin, peut-être que si en fait.
Je vais voir ça.  ;)
« Modifié: 08 mars 2010, 11:56 par M@T »

kira s

  • Membre
  • 552 posts
08 mars 2010, 12:01
ok merci encore,m@t sinon j'ai une idée de code, tu peut me dire si c'est faisable ou pas, utilisé les objets à la zone de combat, c'est possible ??

Boogy

  • Membre
  • 8335 posts
08 mars 2010, 12:04
Salaut,
As tu(ou peux tu creer) un code pour être sur de gagner au casino (p.ex. maintenir A pendant que la machine tourne tu gagnes 10 points (les pikachus) si tu maintiens B tu gagnes 100 (les 777) etc pour tout les lots dispos (les GGG les RRR la balotin des 3 pokeball et les pierres précieuses)

Merci,
D'avance,
Paul

Tu sais le faire maintenant?

M@T

  • Membre
  • 15146 posts
08 mars 2010, 12:08
ok merci encore,m@t sinon j'ai une idée de code, tu peut me dire si c'est faisable ou pas, utilisé les objets à la zone de combat, c'est possible ??
Non, ça c'est pas pareil, il faut carrément modifier la façon dont le jeu est programmé, je ne pense pas pouvoir le faire.  :-\

Tu sais le faire maintenant?

C'est peut-être faisable, seulement ça prendrait beaucoup de temps, pour un code inutile.
En effet, pourquoi ne pas utiliser directement le code pour avoir plus de jetons ?  :hum:

Boogy

  • Membre
  • 8335 posts
08 mars 2010, 12:11
C'est pour s'amuser mais bon OSEF ce n'est pas grave j'utiliserai le code pour avoir pleins de jetons, t'a raison.

C'est faisable pour les boites?
Il y a quoi de "defaits" dans les boites par rapport a l'equipe?

M@T

  • Membre
  • 15146 posts
08 mars 2010, 12:14
En fait c'est le contraire qui est impossible, copier un Pokémon d'une boîte vers l'équipe.
Dans le sens équipe->boîte c'est faisable, mais le code sera plus compliqué.

Les données des Pokémon de l'équipe comprennent en plus des infos relatives à leur statut actuel (PV restants, condition...), ce qui est inutile dans les boîtes.

Le code arrive, juste une question : dans quelle boîte et à quels emplacements veux-tu que les Pokémon soient copiés ?

Boogy

  • Membre
  • 8335 posts
08 mars 2010, 12:20
Boite 1 Slot 1 mais explique moi quielle valeur il faut changer pour choisir ca...

Pour info, j'ai mis a jour la subscrition .xml avec ces codes. Si tu en as encore des autres indedits sur un autre topic, fais moi signe.


Epinglage?

M@T

  • Membre
  • 15146 posts
08 mars 2010, 12:36
Boite 1 Slot 1 mais explique moi quielle valeur il faut changer pour choisir ca...

Voilà :

Remplacer les 3 premiers Pokémon de la Boîte 1 par les 3 Pokémon de l'Usine (Start + Select) :
94000130 FFF30000
B2101F20 00000000
C0000000 00000021
D9000000 00030154
D6000000 0000CF44
D1000000 00000000
D3000000 00000000
B2101F20 00000000
C0000000 00000021
D9000000 00030240
D6000000 0000CFCC
D1000000 00000000
D3000000 00000000
B2101F20 00000000
C0000000 00000021
D9000000 0003032C
D6000000 0000D054
D2000000 00000000

L'utilisation est similaire, à part que ça remplacera les 3 premiers Pokémon de la Boîte 1.
Vous n'avez donc plus besoin de vous soucier de votre équipe, pas besoin d'en avoir au moins trois.  ;)

Les valeurs qu'il faut modifier sont celles qui se trouvent dans les lignes 0xD6 (respectivement 0xCF44, 0xCFCC et 0xD054).
0xCF44 signifie Boîte 1-Slot 1, il faut ajouter 0x88 pour avancer d'une place.
Par exemple, pour Boîte 2-Slot 1, il faut ajouter 30 fois 0x88 : 0xCF44 + 30 * 0x88 = 0xDF34.  ;)

Pour info, j'ai mis a jour la subscrition .xml avec ces codes. Si tu en as encore des autres indedits sur un autre topic, fais moi signe.

Merci.  :)

Epinglage?

Je sais pas, ça va vraiment faire chargé après...

Je vais peut-être faire un topic qui regroupe tous mes codes, et je l'épinglerai.  ;)
« Modifié: 08 mars 2010, 12:46 par M@T »

Boogy

  • Membre
  • 8335 posts
08 mars 2010, 12:50
Tu peux me montrer a quoi ressemble le code avec Boite 2 Slot 1 car je ne comprends pas trop?

M@T

  • Membre
  • 15146 posts
08 mars 2010, 12:51
Remplacer les 3 premiers Pokémon de la Boîte 2 par les 3 Pokémon de l'Usine (Start + Select) :
94000130 FFF30000
B2101F20 00000000
C0000000 00000021
D9000000 00030154
D6000000 0000DF34
D1000000 00000000
D3000000 00000000
B2101F20 00000000
C0000000 00000021
D9000000 00030240
D6000000 0000DFBC
D1000000 00000000
D3000000 00000000
B2101F20 00000000
C0000000 00000021
D9000000 0003032C
D6000000 0000E044
D2000000 00000000

Boogy

  • Membre
  • 8335 posts
08 mars 2010, 12:59
Ok merci et pour le contraire c'est possible?

M@T

  • Membre
  • 15146 posts
08 mars 2010, 12:59
C'est-à-dire ?
Utiliser les Pokémon des boîtes à l'Usine ?

Boogy

  • Membre
  • 8335 posts

M@T

  • Membre
  • 15146 posts
08 mars 2010, 13:04
En fait c'est le contraire qui est impossible, copier un Pokémon d'une boîte vers l'équipe.
Dans le sens équipe->boîte c'est faisable, mais le code sera plus compliqué.

On peut faire équipe -> boîte en récupérant uniquement les 0x88 premiers octets sur les 0xEC au total, seulement le contraire est impossible, car on ne peut pas inventer les 100 octets manquants.
« Modifié: 08 mars 2010, 13:05 par M@T »

Boogy

  • Membre
  • 8335 posts
08 mars 2010, 13:06
Il n'y a vraiment pas une solution? (je peux tres bien aller retirer les pokemon des boites vers mon equipe mais bon...).

M@T

  • Membre
  • 15146 posts
08 mars 2010, 13:08
Non, d'ailleurs c'est un problème avec Pokésav aussi, essaye d'enregistrer un .pkm depuis une boîte et de le charger dans l'équipe et tu verras.

Pokesav-Roucool

  • Membre
  • 91 posts
08 mars 2010, 20:33
Merci a vous pour tout ses codes  ;D  :winner:

Darkwill

  • Membre
  • 2920 posts
08 mars 2010, 20:38
Je vais répéter ce qui a déjà été dit mais : réduis ta ptain de sign' !!!

tendou

  • Invité
08 mars 2010, 21:15
ZOMG GG pour les codes de l'usine Matounet :you:

Hors lieu de capture etc., les Pokémon qui tu vole à l'Usine sont légit dans leur PID ?

M@T

  • Membre
  • 15146 posts
08 mars 2010, 21:17
J'ai pas essayé, attends 2 minutes...

tendou

  • Invité
08 mars 2010, 21:18
Merci, ca me fait un peu chier d'avoir à les add sur à la main sur l'AR, vu que j'ai pas la ROM sur ma M3i, mais bon, pour ces codes je vais pas faire le difficile.
En tout cas félicitations, tu deviens un aussi bon cheater que SP. x)

M@T

  • Membre
  • 15146 posts
08 mars 2010, 21:27
Merci.  ;D

Verdict :

Spoiler
Pokemon Legality Checker - by: Sabresite - vB54-24
File: C:\Users\Matthieu\Documents\ROMs\no$gba-w\BATTERY\Altaria.pkm
Checksum: 0x7BFC - Valid
Pokemon ID: 2338273165 - Modest, Male, Ability 2, Not Shiny
Date: mars 08, 2010
IVs: 4,4,4,4,4,4
Trainer ID: 8520
Secret ID: 43033
Trainer Gender: Male
Hidden Power: Fighting - 30
Fateful Encounter: No
Gender Check: Valid
Effort Values: Valid
Nicknamed: No
Home Town: Sinnoh [Platinum]
Country Originated: France
Type: Hacked or Unknown Pokemon

Dommage, c'est sûrement dû à l'origine.  :-\

tendou

  • Invité
08 mars 2010, 21:32
Lol rien qu'en voyant les IV :ahah:

Pages: 1 2 3 4 5 6 [7] 8 9    En haut ↑