[Enorme] Underflow/8F SANS MISSINGNO. et manipulation de RAM par Glitch World !
Posté : ven. 18 sept. 2015 13:13
Salut !
On est vraiment très fiers de vous présenter notre nouvelle découverte, assortie pour la compréhension d'une vidéo !
https://www.youtube.com/watch?v=fH-W5hfpkFQ
Ceci explique comment faire pour provoquer l'item underflow glitch sans avoir besoin de rencontrer MissingNo. Ainsi, la seule limitation qui empêchait encore ceux qui ne pouvaient pas exécuter le Ditto, Old Man ou Cooltrainer Trick de faire le 8F Code Execution, par exemple, vient de voler en éclat, deux ans après la découverte du 8F, et pas moins de 17 ans après la sortie du jeu en Europe !
Pour bien vous expliquer nous allons retracer l'historique qui nous a mené à cette incroyable découverte.
En Juin 2015, TheZZAZZGlitch, glitchologue anglophone bien connu pour avoir fait un certain nombre de découvertes et donné l'impulsion de départ au 8F, découvre une région de Glitch World générée à partir de son inventaire dans la version anglais.
En Août 2015, ISSOtm, testeur de PRAMA, parvient à adapter ce glitch en français. Son but est de permettre, notamment, de générer des Cooltrainer facilement à partir des objets. Il parvient finalement à une méthode permettant utilisant les objets du PC que nous avions documenté dans notre dernière vidéo.
En Septembre, je décide de m'atteler à la tache de compléter ce travail en explorant ce Glitch World pour voir si on pouvait y trouver d'autres données de RAM. Je découvre qu'on peut plus ou moins visualiser l'intégralité de celle-ci sous forme de blocs de tuiles et je poste l'information sur Glitch City Laboratories, notre collègue anglophone, où des discussions à propos de notre Item Cooltrainer avaient déjà commencées.
Pour rappel, pour accéder à cette région de Glitch World il faut appliquer le NoClip Trick puis se placer ici :
MISE A JOUR (03/10) : Grille réécrite en français
En marchant 94 pas à gauche et 95 vers le haut, vous arrivez au bloc de tuiles correspondant à l'adresse mémoire $D529 (sur R/B).
Pour utiliser la grille correctement, à partir du point d'entrée ($D529) je vous conseille de tout simplement compter les cases. Une case = un bloc de tuiles 4x4 et vous devrez donc faire 2 pas pour passer au bloc suivant.
Pour accéder à la première adresse des objets du PC (nombre d'objets stockés) vous devrez donc, depuis le point d'entrée, traverser 22 blocs (soit 44 pas) vers la droite. Facile, non ? Grâce à ça vous pourrez générer des Cooltrainer en utilisant les tuiles générées par les stats, attaques, surnoms, DO des Pokémon, vos objets ou encore les jetons de Casino, si vous êtes en mesure d'avoir la tuile d'IDH 50 au bon endroit comme dans tout Cooltrainer.
MISE A JOUR (05/10) : Liste des blocs de tuiles avec leurs IDH !
Venons-en au début de ce qui nous intéresse.
La manipulation de RAM par Glitch World
TheZZAZZGlitch avait vu qu'en ayant une Poké Poupée (IDH 33) il générait un bloc contenant un arbre coupable et qu'en le coupant, la Poké Poupée devenait l'objet glitch d'IDH 6C parce que cela changeait le bloc de tuile.
Nous avons donc fouillé tous les blocs pour voir lesquels contiennent des arbres coupables ou de l'herbe ; permettant d'affecter les valeurs des adresses correspondantes dans la RAM. Voici le résultat
0B : Herbes x4 => 0A une fois coupé (sol sans herbes)
32 : Arbre en haut à droite => 6D
33 : Arbre en bas à droite => 6C
34 : Arbre en haut à gauche => 6F
35 : Arbre en bas à droite => 4C
60 : Arbre en bas à gauche gauche => 6E
D5 : Arbre glitché => D5
Cela implique qu'à chaque fois que vous avez dans une adresse mémoire quelque chose ayant l'un de ces IDH, vous pouvez couper l'arbre et changer l'IDH en question.
Les applications sont nombreuses ; vous pourrez d'abord changer n'importe quel stat de la valeur Décimal du haut à la valeur Décimal du bas (exemple : 52 en 111). Vous pouvez aussi vous donner plus d'argent (en transformant 343434 en 6F6F6F, qui sera lu comme 696969) ou des choses de ce genre.
Niveau Pokémon, ça ne sert pas à grand chose ; niveau attaque par contre, le côté le plus sympa est sans doute de pouvoir remplacer Lance-Flamme par Lance-Soleil donnant alors une redoutable attaque Plante à un Pokémon feu pour qu'il puisse se défendre face aux Pokémon eau
Enfin, niveau objet, mis à part le fait que vous pouvez obtenir des légions de Pierre Lune, les objets glitch 6C et 6F peuvent s'obtenir facilement (obtenir 6D et 6E n'est pas très réaliste parce qu'il n'est pas possible en principe d'avoir la version prototype du PP Plus ni l'objet glitch 10EME ETAGE). Il est peut-être possible d’exécuter du code avec l'un de ces objets, à l'heure actuelle ISSOtm et Haxel planchent dessus, mais ce n'est pas ce qui va nous intéresser aujourd'hui.
Il y a quelques jours j'ai eu l'illumination d'avoir 50 objets stockés dans mon PC, et de couper l'arbre du bloc de tuile d'IDH 32 qui apparaît alors à l'adresse mémoire du nombre d'objet stockés - la première case rouge foncée sur la grille plus haut, qui en version française correspond à $D53F ($D53E sur jaune). Sans surprise, cela permet de passer les objets de son PC à 109 !
J'ai d'abord cru avoir trouvé le moyen de faire des Ditto Trick sans dresseur facilement (cf. description de la vidéo). C'était vrai, mais il y a beaucoup mieux à faire ; car grâce à ça il est possible d'obtenir toutes sortes d'objets, et d'accéder à des packs d'objets x255 ! Il est donc possible de retirer un de ces packs et de générer un Underflow dans l'inventaire, bypassant complètement la partie où on utilise MissingNo. pour obtenir 255 exemplaires d'un objet !
Utiliser le Partial PC Underflow pour générer un vrai underflow et exécuter du code
Cherchez un objet x0 (si vous avez moins de 100 jetons, le 53ème objet sera toujours x0) et jetez un exemplaire. Retirez ensuite les 255 restants.
1/ Placez l'objet x255 en troisième position et jetez les deux premiers.
2/ Jetez 255 exemplaires du premier objet jusqu'à ne plus pouvoir sélectionner que deux objets (le deuxième est en fait RETOUR)
3/ Jetez 253 exemplaires du premier objet.
4/ Echangez les objets 1 et 2, deux fois. L'underflow est actif.
Vous pouvez manipuler les bytes comme indiqué dans notre article à ce sujet. Ou continuer pour récupérer des objets d’exécution de code. Le plus facile pour ça est d'avoir un Spécial + avant de déclencher l'underflow :
5/ Allez à la sortie Est de Céladopole, comme sur la vidéo. Inversez le Spécial + avec la Pépite x1 en 35ème position.
6/ Faites 5 pas à droite, 5 pas en bas, 20 (R/B) ou 26 (Jaune) pas à droite et ouvrez l'inventaire pour trouver 7EME ETAGE / ws*l’||lm||. Inversez-le avec la Pépite de nouveau.
7/ Volez vers une ville, stockez l'objet dans le PC, achetez un nouvel objet puis retirez de nouveau 7EME ETAGE / ws*l’||lm|| (qui est en 110ème position).
8/ Préparez le setup Pokémon et les objets pour les codes à exécuter (cf lien).
Utiliser le Partial PC Underflow pour obtenir directement des objets comme ws*l’||lm||
Les deux derniers chiffres du nombre de jetons de casino donneront l'IDH du 53ème objet. Ainsi, si vous avez xx63 jetons de casino, en faisant le Partial PC Underflow vous aurez en 53ème position l'objet ws*l’||lm||, d'IDH 63, qui permet d’exécuter du code sur Jaune. Même pas besoin de vrai underflow ! Il n'y a pas de technique pour avoir 7EME ETAGE de cette façon pour le moment car son IDH comporte une lettre et ce n'est pas géré par le compteur de jetons.
Les adresses suivantes concernent, selon mes informations, des "Missable Object Flags". Je n'ai aucune idée de ce que c'est.
Utiliser la manipulation pour supprimer des objets
Si vous voulez vous débarrasser d'un objet que vous ne pouvez pas jeter, placez-le en dernière position d'un PC de 11 objets stockés et allez couper l'arbre. Ça réduira le nombre à 10, effaçant le dernier objet.
Désolé pour la longueur du post mais c'est un bon compte-rendu complet ! Je vous laisse regarder la vidéo et dire ce que vous en pensez si vous le souhaitez. Notez que pour réparer le PC, c'est assez compliqué, il faut jeter beaucoup d'objets (59). Si vous ne voulez pas faire ça, il est aussi possible d’exécuter un code repassant $D53F à 50.
On est vraiment très fiers de vous présenter notre nouvelle découverte, assortie pour la compréhension d'une vidéo !
https://www.youtube.com/watch?v=fH-W5hfpkFQ
Ceci explique comment faire pour provoquer l'item underflow glitch sans avoir besoin de rencontrer MissingNo. Ainsi, la seule limitation qui empêchait encore ceux qui ne pouvaient pas exécuter le Ditto, Old Man ou Cooltrainer Trick de faire le 8F Code Execution, par exemple, vient de voler en éclat, deux ans après la découverte du 8F, et pas moins de 17 ans après la sortie du jeu en Europe !
Pour bien vous expliquer nous allons retracer l'historique qui nous a mené à cette incroyable découverte.
En Juin 2015, TheZZAZZGlitch, glitchologue anglophone bien connu pour avoir fait un certain nombre de découvertes et donné l'impulsion de départ au 8F, découvre une région de Glitch World générée à partir de son inventaire dans la version anglais.
En Août 2015, ISSOtm, testeur de PRAMA, parvient à adapter ce glitch en français. Son but est de permettre, notamment, de générer des Cooltrainer facilement à partir des objets. Il parvient finalement à une méthode permettant utilisant les objets du PC que nous avions documenté dans notre dernière vidéo.
En Septembre, je décide de m'atteler à la tache de compléter ce travail en explorant ce Glitch World pour voir si on pouvait y trouver d'autres données de RAM. Je découvre qu'on peut plus ou moins visualiser l'intégralité de celle-ci sous forme de blocs de tuiles et je poste l'information sur Glitch City Laboratories, notre collègue anglophone, où des discussions à propos de notre Item Cooltrainer avaient déjà commencées.
Pour rappel, pour accéder à cette région de Glitch World il faut appliquer le NoClip Trick puis se placer ici :
MISE A JOUR (03/10) : Grille réécrite en français
En marchant 94 pas à gauche et 95 vers le haut, vous arrivez au bloc de tuiles correspondant à l'adresse mémoire $D529 (sur R/B).
Pour utiliser la grille correctement, à partir du point d'entrée ($D529) je vous conseille de tout simplement compter les cases. Une case = un bloc de tuiles 4x4 et vous devrez donc faire 2 pas pour passer au bloc suivant.
Pour accéder à la première adresse des objets du PC (nombre d'objets stockés) vous devrez donc, depuis le point d'entrée, traverser 22 blocs (soit 44 pas) vers la droite. Facile, non ? Grâce à ça vous pourrez générer des Cooltrainer en utilisant les tuiles générées par les stats, attaques, surnoms, DO des Pokémon, vos objets ou encore les jetons de Casino, si vous êtes en mesure d'avoir la tuile d'IDH 50 au bon endroit comme dans tout Cooltrainer.
MISE A JOUR (05/10) : Liste des blocs de tuiles avec leurs IDH !
Venons-en au début de ce qui nous intéresse.
La manipulation de RAM par Glitch World
TheZZAZZGlitch avait vu qu'en ayant une Poké Poupée (IDH 33) il générait un bloc contenant un arbre coupable et qu'en le coupant, la Poké Poupée devenait l'objet glitch d'IDH 6C parce que cela changeait le bloc de tuile.
Nous avons donc fouillé tous les blocs pour voir lesquels contiennent des arbres coupables ou de l'herbe ; permettant d'affecter les valeurs des adresses correspondantes dans la RAM. Voici le résultat
0B : Herbes x4 => 0A une fois coupé (sol sans herbes)
32 : Arbre en haut à droite => 6D
33 : Arbre en bas à droite => 6C
34 : Arbre en haut à gauche => 6F
35 : Arbre en bas à droite => 4C
60 : Arbre en bas à gauche gauche => 6E
D5 : Arbre glitché => D5
Cela implique qu'à chaque fois que vous avez dans une adresse mémoire quelque chose ayant l'un de ces IDH, vous pouvez couper l'arbre et changer l'IDH en question.
Les applications sont nombreuses ; vous pourrez d'abord changer n'importe quel stat de la valeur Décimal du haut à la valeur Décimal du bas (exemple : 52 en 111). Vous pouvez aussi vous donner plus d'argent (en transformant 343434 en 6F6F6F, qui sera lu comme 696969) ou des choses de ce genre.
Niveau Pokémon, ça ne sert pas à grand chose ; niveau attaque par contre, le côté le plus sympa est sans doute de pouvoir remplacer Lance-Flamme par Lance-Soleil donnant alors une redoutable attaque Plante à un Pokémon feu pour qu'il puisse se défendre face aux Pokémon eau
Enfin, niveau objet, mis à part le fait que vous pouvez obtenir des légions de Pierre Lune, les objets glitch 6C et 6F peuvent s'obtenir facilement (obtenir 6D et 6E n'est pas très réaliste parce qu'il n'est pas possible en principe d'avoir la version prototype du PP Plus ni l'objet glitch 10EME ETAGE). Il est peut-être possible d’exécuter du code avec l'un de ces objets, à l'heure actuelle ISSOtm et Haxel planchent dessus, mais ce n'est pas ce qui va nous intéresser aujourd'hui.
Il y a quelques jours j'ai eu l'illumination d'avoir 50 objets stockés dans mon PC, et de couper l'arbre du bloc de tuile d'IDH 32 qui apparaît alors à l'adresse mémoire du nombre d'objet stockés - la première case rouge foncée sur la grille plus haut, qui en version française correspond à $D53F ($D53E sur jaune). Sans surprise, cela permet de passer les objets de son PC à 109 !
J'ai d'abord cru avoir trouvé le moyen de faire des Ditto Trick sans dresseur facilement (cf. description de la vidéo). C'était vrai, mais il y a beaucoup mieux à faire ; car grâce à ça il est possible d'obtenir toutes sortes d'objets, et d'accéder à des packs d'objets x255 ! Il est donc possible de retirer un de ces packs et de générer un Underflow dans l'inventaire, bypassant complètement la partie où on utilise MissingNo. pour obtenir 255 exemplaires d'un objet !
Utiliser le Partial PC Underflow pour générer un vrai underflow et exécuter du code
Cherchez un objet x0 (si vous avez moins de 100 jetons, le 53ème objet sera toujours x0) et jetez un exemplaire. Retirez ensuite les 255 restants.
1/ Placez l'objet x255 en troisième position et jetez les deux premiers.
2/ Jetez 255 exemplaires du premier objet jusqu'à ne plus pouvoir sélectionner que deux objets (le deuxième est en fait RETOUR)
3/ Jetez 253 exemplaires du premier objet.
4/ Echangez les objets 1 et 2, deux fois. L'underflow est actif.
Vous pouvez manipuler les bytes comme indiqué dans notre article à ce sujet. Ou continuer pour récupérer des objets d’exécution de code. Le plus facile pour ça est d'avoir un Spécial + avant de déclencher l'underflow :
5/ Allez à la sortie Est de Céladopole, comme sur la vidéo. Inversez le Spécial + avec la Pépite x1 en 35ème position.
6/ Faites 5 pas à droite, 5 pas en bas, 20 (R/B) ou 26 (Jaune) pas à droite et ouvrez l'inventaire pour trouver 7EME ETAGE / ws*l’||lm||. Inversez-le avec la Pépite de nouveau.
7/ Volez vers une ville, stockez l'objet dans le PC, achetez un nouvel objet puis retirez de nouveau 7EME ETAGE / ws*l’||lm|| (qui est en 110ème position).
8/ Préparez le setup Pokémon et les objets pour les codes à exécuter (cf lien).
Utiliser le Partial PC Underflow pour obtenir directement des objets comme ws*l’||lm||
Les deux derniers chiffres du nombre de jetons de casino donneront l'IDH du 53ème objet. Ainsi, si vous avez xx63 jetons de casino, en faisant le Partial PC Underflow vous aurez en 53ème position l'objet ws*l’||lm||, d'IDH 63, qui permet d’exécuter du code sur Jaune. Même pas besoin de vrai underflow ! Il n'y a pas de technique pour avoir 7EME ETAGE de cette façon pour le moment car son IDH comporte une lettre et ce n'est pas géré par le compteur de jetons.
Les adresses suivantes concernent, selon mes informations, des "Missable Object Flags". Je n'ai aucune idée de ce que c'est.
Utiliser la manipulation pour supprimer des objets
Si vous voulez vous débarrasser d'un objet que vous ne pouvez pas jeter, placez-le en dernière position d'un PC de 11 objets stockés et allez couper l'arbre. Ça réduira le nombre à 10, effaçant le dernier objet.
Désolé pour la longueur du post mais c'est un bon compte-rendu complet ! Je vous laisse regarder la vidéo et dire ce que vous en pensez si vous le souhaitez. Notez que pour réparer le PC, c'est assez compliqué, il faut jeter beaucoup d'objets (59). Si vous ne voulez pas faire ça, il est aussi possible d’exécuter un code repassant $D53F à 50.