Infinite PC Items Trick

Versions : O/A/C

L'Infinite PC Items Trick est un glitch permettant d'avoir accès à distance, depuis le sac, aux objets stockés dans le PC. Et en quantité illimitée !
Rédacteur : BUGLITCH, Krys3000
Tuteur : Haxel
Merci à Háčky du forum Glitch City Laboratories pour ce glitch
This glitch is also available in English language at our partner Glitch City Labs: click here

Avec ce glitch, on entre enfin dans la partie compliquée de la glitchologie 2G... mais ce n'est pas pour rien car il permet d'accéder aux objets du PC à distance, depuis la poche des balls, de manière infinie et tout cela grâce à un overflow de la poche objets clé ! Lorsque vous utilisez un objet, il n'est pas retiré du pc, vous pouvez donc utiliser n'importe quel objet placé dans le PC à l'infini ! Afin de comprendre à quoi correspondent les identifiants nommés IDD et IDH, veillez à d'abord avoir lu l'l'introduction à la glitchologie.

Etape I : Obtention des objets clés

Pour réussir ce glitch, tout d'abord, vous devez n'avoir AUCUNE ball dans votre poche Pokéball. Ensuite, il faut que votre poche Objets Clés soit pleine (12 objets au total) et qu'elle contienne deux objets particuliers en double : un objet dont l'IDD est inférieur à 100 (IDH inférieur à 64 si vous préférez : Bicyclette, Glas Transparent, Boite Jeton, Canne, Super Canne, Mega Canne, Cherch'Objet, Oeuf Mystère, Aile Argent, Ecaillerouge, PotionSecret ou Passe Bateau) et un dont l'IDD est supérieur à 100 (Clé Sous-Sol, Carte Bleue, Carte Magn., Ticket Oeuf, GS Ball, Objet Perdu, Partie Mach., Passe, Arcenci'aile, ou Carapuce à O).

Normalement il n'est pas possible d'avoir deux objets clés donc vous pouvez utiliser le Bad Clone Trick dont on vous a déjà parlé, ou transférer des Pokémon particuliers obtenus avec une execution de code depuis la 1G, par exemple en passant par 8F Code Execution. Si c'est ce que vous souhaitez, sachez qu'il faut modifier sur le Pokémon en 1G l'adresse mémoire $DAA3 ($DAA2 sur Jaune) qui correspond à l'objet que le Pokémon tiendra une fois transféré en 2G. Vous pouvez donc simuler le code 01XXA3DA (01XXA2DA sur Jaune), en utilisant la correspondance des objets. Cependant, avec le 8F, c'est assez difficile de simuler ce code et vous pouvez à la place suivre cette méthode :

  1. 8F/ws*l’||lm||
  2. Un objet, peu importe lequel (La quantité représente l'IDD de l'objet tenu par le Pokémon une fois transféré sur O/A/C, par exemple 128 pour la Partie Mach. et 67 pour la PotionSecret)
  3. Carbone x218
  4. Precision+ x163 (162 sur jaune)
  5. CT50 x38 (37 sur jaune)
  6. CT11 x119
  7. CT01 (peu importe le nombre)

Activez ce code et transférez en 2G le premier Pokémon de la boîte actuelle qui tiendra l'objet voulu. Pour l'article, nous allons utiliser Partie Mach. pour l'IDD > 100 et PotionSecret pour l'idd < 100.

Etape II : Overflow de la poche des Objets clés

Commencez par placer les deux Partie Mach. (ou tout autre objet en double avec un IDD > 100) tout en bas de votre inventaire.
Une fois les deux objets en bas, échangez-les :

Un objet variable (Fer si vous utilisez Partie Mach.) et un Noigrume devraient apparaître au bas de l'inventaire, celui-ci remplaçant le bouton RETOUR. Placez ensuite les deux PotionSecret (ou tout autre objet en double avec un idd < 100) en tant que deux derniers objets de l'inventaire (à la place du Noigrume, les deux fois).
Puis encore une fois, échangez-les.

Rendez-vous maintenant dans la poche Pokéball, vous pouvez désormais avoir accès à des objets situés en dessous de RETOUR ! Attention, si vous descendez trop bas, il est possible que votre jeu plante à cause du texte descriptif d'un objet glitché (qui est par exemple trop long pour être affiché ou contient des caractères qui font planter le jeu). Dans Cristal, il y a une méthode très simple pour éviter ça : faites Select un objet quelconque en dessous de RETOUR, vous pouvez maintenant descendre, le jeu ne crashera pas.

Descendez encore un peu et vous aurez accès aux objets stockés dans le PC !
Appuyez sur B pour relâcher l'objet quelconque (si vous aviez testé cette méthode dans O/A vous verrez que ça retourne automatiquement en haut, donc c'est un échec).

Et voilà, vous avez maintenant accès à ces objets, et en quantité infinie !

Annexe : Clonage d'Objet

Vous avez sans doute remarqué que vous ne pouvez pas utiliser les CT depuis le PC. Du coup, il est utile de les cloner. Lorsque vous stockez dans le PC un objet via la boite balls glitchée, celui-ci est dupliqué. Vous pouvez donc ensuite en retirer un exemplaire et l'utiliser tout en le conservant dans le PC !

Explications techniques

La raison pour laquelle ce glitch fonctionne est similaire à l'explication du Item Underflow Glitch qui est un peu la version 1G de ce glitch-ci. En effet, comme vous le savez si vous avez lu les explications de cet autre glitch, lorsque vous intervertissez deux packs du même objet dont la somme des quantités est supérieure à 99, le jeu rééquilibre les packs pour affecter une quantité de 99 à un pack et du reste à l'autre ; de la même façon si le total est supérieur à 256, il créera un pack x0 (car 255 étant la valeur maximale d'une adresse mémoire de jeu Game Boy, rajouter 1 à cette valeur la fait retourner à 0) puis un pack contenant le total - 256. Dans ces mêmes explications, on vous dit qu'un pack de 0 équivaut, pour le jeu, à l'absence d'objet, et qu'il supprime alors ce pack lorsque vous l'intervertissez avec un pack du même objet.

Ce fonctionnement n'est bien sûr par prévu DU TOUT pour les objets clés, qui n'ont pas de quantité ! Les objets "classiques", ainsi que les balls et les CT/CS, sont stockés dans la RAM du jeu (à partir de l'adresse $D57E dans O/A, et $D859 dans Cristal) à l'aide d'une liste constituée d'une adresse mémoire pour l'IDH de l'objet, suivie d'une adresse mémoire pour sa quantité, suivie du même couple d'adresses pour l'objet suivant, etc. Or, il n'y a qu'une adresse mémoire pour chaque objet rare (dont la liste commence à $D5E1 dans O/A et $D8BC dans Cristal), puisque selon Game Freak, vous ne pouvez avoir qu'un seul exemplaire de chaque.

Comme vous êtes plus malins qu'eux, vous réussissez à avoir deux exemplaires d'un objet rare (dans notre exemple, la Partie Mach.) et vous les intervertissez. Le jeu essaye alors d'appliquer la fonction d'équilibrage des packs dans la poche d'objets rares et lit donc la RAM comme s'il s'agissait d'objets "classiques", de Balls ou de CT/CS : il estime que vous intervertissez un Partie Mach. (IDH 80) en quantité 128 (car il lit l'IDH 80 de la deuxième Partie Mach. comme une quantité, et que 80, en décimal, ça fait 128) avec une autre Partie Mach x255. Le total de tout ça fait 383, mais comme tout le reste, le registre des additions accepte comme valeur maximale 255, puis retourne à 0 si on continue d'ajouter : le total fait donc seulement 127 ce qui devrait être réparti en deux packs : x99 et x28. En réalité, le jeu place d'abord le pack le plus petit en haut. Dans la mémoire, après l'adresse $D5F7 (O/A) qui contient l'IDH du 22ème objet clé (ici, la première Partie Mach., donc valeur de 80), le jeu inscrit la valeur 1C (qui correspond à 28 en décimal) dans $D5F8, comme s'il s'agissait de la quantité de Partie Mach. Or, comme nous sommes dans la poche des objets clés, cette valeur est censée être la deuxième Partie Mach. (donc également 80). C'est pour cela que cette Partie Mach. est effacée et laisse sa place à un Fer, dont l'IDH est... 1C !

C'est pour la même raison que la valeur 63 (en décimal, 99) est inscrite dans $D5F9, que le jeu pense être la quantité affectée à la deuxième Partie Mach. mais qui est en fait le bouton RETOUR (FF). C'est pour cela que celui-ci est remplacé par un Noigrume Noir, dont l'IDH est 63. Mais venons-en maintenant à la deuxième interversion : vous placez les deux PotionSecret (IDH 43) en tant que dernier objet et à la place de l'ancien bouton RETOUR (maintenant un Noigrume). Puis, vous procédez à ce que le jeu comprend comme l'interversion d'une PotionSecret x67 (43 converti en décimal) avec une PotionSecret x0. Comme nous l'avons dit, le jeu transformera ça en un seul pack de PotionSecret x67 et supprimera le deuxième pack ce qui a pour effet de diminuer le nombre d'objets de 1.

Comme nous l'expliquons dans la partie technique du Duplicate Items Trick le fonctionnement du jeu lorsqu'un objet est supprimé est de copier l'IDH de l'objet d'après dans l'adresse mémoire précédente, décalant ainsi toute la liste, jusqu'à ce qu'il rencontre la valeur FF, synonyme de bouton RETOUR, donc de fin de l'inventaire. Ici, il n'y a plus de bouton retour, donc le décalage va affecter la section suivante de la mémoire : la poche Balls ! Plus exactement, la valeur $D5FD (O/A) qui contient l'IDH de la première ball (ici, il n'y a pas de ball, l'IDH est donc FF, et c'est pour ça que c'était très important) va se retrouver calée dans l'adresse précédente ($D5FC) laquelle contrôle normalement le NOMBRE de balls dans la poche, puis la copie va s'arrêter. En clair, vous venez de faire croire au jeu qu'il y a 255 balls dans la poche balls. Il va donc vous permettre de descendre dans cette poche non pas de 13 crans, comme ça devrait être le cas normalement, mais de 128 (puisqu'il y a, dans cette poche, deux adresses par objet à cause des quantités)... et donc d'accéder aux 230 adresses mémoires se trouvant après les balls dans la RAM.

Il se trouve que les objets du PC sont stockés de l'adresse $D616 à $D67B dans O/A et $D8F1 à $D956 dans Cristal. Notre petite manip avec le PC vous permet de descendre jusqu'à $D5FD + FF = $D6FC dans O/A et $D9D7 dans Cristal, ce qui est largement suffisant !


Page Précédente : Pokegod Glitches
Page suivante : TM Code Execution