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

Ce glitch, également nommé (et plus justement) Expanded Balls Pocket glitch ou Balls Pocket underflow glitch, est une variante de l'Item Shifting Glitch que vous avez appris sur la page précédente de notre catégorie 2G. Ici, on entre enfin dans la partie compliquée de la glitchologie 2G, car il ne s'agit pas seulement de se donner un objet utilisable à l'infini, mais plutôt d'accéder aux objets du PC à distance, depuis la poche des Balls. Indépendamment de l'indéniable utilité d'avoir accès à ses objets stockés n'importe où dans le jeu, il est évident que comme pour l'Item Shifting Glitch, tous les objets utilisés depuis la poche des Balls, saufs les Balls, seront illimités (car jamais consommés quand utilisés), et les CT/CS auront les mêmes effets étranges...

En réalité, ce glitch est une version 2G de l'Item Underflow Glitch de la première génération, qui permettait de manipuler plus de 200 données de la mémoire du jeu situées après celles de l'inventaire... mais contrairement aux versions R/B/J, ici est un pouvoir plutôt limité car aucune donnée importante n'existe en-dessous de l'inventaire dans O/A/C... à part les objets stockés. On va donc s'en contenter !

Afin de comprendre à quoi correspondent les identifiants nommés IDD et IDH, veillez à d'abord avoir lu l'l'introduction à la glitchologie.

La procédure sera la même que dans l'Item Shifting Glitch, à deux exception près :

  • Cette fois, la poche Balls doit être VIDE. Stockez donc tout ce que vous avez en Balls dans le PC.
  • Ce ne sont pas de deux Oeufs Mystères dont vous aurez besoin, mais de 4 objets : deux fois le même 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 deux fois le même objet 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).

Etape I : Obtention des objets rares

Pour l'article, nous allons utiliser Partie Mach. (IDD 128) pour l'IDD > 100 et PotionSecret (IDD 67) pour l'IDD < 100.

Comme avec les Oeuf Mystère du Item Shifting Glitch, il va falloir avoir recours au Bad Clone Trick en suivant les instructions pour obtenir n'importe quel objet, et en utilisant un Pokémon avec en première position l'attaque Claquoir (dont l'IDD correspond à Partie Mach.) exclusive à Kokiyas/Crustabri, et un Pokémon avec en première position l'attaque Balayage (pour PotionSecret). Puis, cloner ces deux Pokémon et récupérer les 4 objets.

Si vous souhaitez obtenir d'autres objets rares à la place, utilisez la correspondance pour découvrir les attaques associées.

Notez quelque chose qui peut avoir son importance : si vous disposez d'un jeu de première génération avec le 8F Code Execution, vous pouvez l'utiliser pour simuler le code action replay 0180A3DA (ou 0180A2DA sur Jaune). Cela modifiera le premier Pokémon de la boîte actuelle pour que, s'il est envoyé sur un jeu de deuxième génération, il tiendra une Partie Mach. De même, 0143A3DA (ou 0143A2DA sur Jaune) permet de lui attacher une PotionSecret.

Etape II : Overflow de la poche des Objets rares

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 (sauf les Balls, qui se consomment) !

Etape III : Exploiter l'accès au PC

Bien sûr, vous pouvez vous stocker des Balls et les utiliser à distance grâce à ce glitch. Mais il y a également plusieurs choses à savoir...

  • Comme on le disait en introduction, tout objet autre qu'une Ball stocké dans le PC est utilisable à l'infini par ce glitch, car n'est pas consommé.
  • De la même façon, stocker dans le PC un objet qui s'y trouve déjà par l'intermédiaire de la boîte Balls glitchée revient à... dupliquer l'objet !
  • Dans O/A, utiliser la CS01 depuis la poche Balls vous autorise à renommer un Pokémon, et cela même s'il est échangé ou si c'est un Oeuf. Dans le cas d'un oeuf, vous verrez le Pokémon à l'intérieur.
  • Les autres CT et CS exécutent du code si elles sont utilisées depuis la poche Balls. Pour certaines, ça n'aura pas d'effet particulier, pour d'autres ça plantera ou redémarrera le jeu. Avec les CT17 ou CT25 (dans O/A) ou CT33 (dans Cristal) on peut exécuter le code de son choix : c'est le TM Code Execution dont vous entendrez parler plus loin dans nos pages...

Il y a un contre-coup à tout ça : vous ne pouvez plus ramasser de Balls, ni en acheter, car le jeu pense que votre boîte Balls est pleine. Il vaut donc mieux en avoir un max dans le PC...

Explications techniques

Pour expliquer ce glitch, nous allons copier/coller une bonne partie des explications du Item Shifting Glitch, car après tout, c'est le même glitch ! 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'à $D5FC + 2*FF = $D7DC dans O/A et $DAD5 dans Cristal, ce qui est largement suffisant !


Page Précédente : Item Shifting Glitch
Page suivante : Arbitrary Code Execution