Incomplete rebuttal to youtube comment (glitch related).

Apr 22nd, 2019
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. - At the end of the any% no save corruption run, this is what happens. First, when you swap transformed ditto's moves, the game tries to save at the end of the battle that Ditto's second move is now his first. Since Ditto only had one move, it tries to make the dash that signifies a non-existent move it's first move. This move's only purposes are to display a dash as text, to automatically delete itself when a new move is learned, and to prevent the cursor from highlighting it, and therefore Nintendo never programmed the move's effects.
  2. This is a good enough explanation, I don't really have much concern with this other than stating that this "dash" is actually 00, or "no move". You are correct that nothing is programmed for it, so it reads garbage data as its move data. This glitch move is called "Cooltrainer" due to its glitched type.
  4. - When the move is used, code that was never intended to be read as move data, located where the trainer's name and Pokemon nicknames are stored, is read as move data. The game thinks this code says to:
  5. Absolutely wrong. The reason everything becomes corrupted in battle is because the name of the Cooltrainer move resides in RAM, and thus has a likely chance of not being terminated. Rather than trying to re-explain how exactly the corruption works, I will just link to a very well done explanation by TheZZAZZGlitch linked here:
  7. - 1. Try to play an invalid sound effect, causing the music to fade out slowly.
  8. - 2. Give the Pokemon an invalid status effect
  9. - 3. As part of the routine when status effects are inflicted, load the status effect's name, which reads as part of the start menu where the bag and trainer card are located, and put it in a preset location under the opposing Pokemon's name, which is why all the commas appear.
  10. - 4. Return to the main move's code
  11. - 5. Change the opposing Pokemon's stats.
  12. - 6. Jump to a section of code where the last displayed overworld graphics are stored to decide which stat changes to make.
  13. === NOT COMPLETE ===
  14. 4 and 6 don't actually happen.
  15. 1 is caused by the corruption.
  16. The extent of the "invalid status effect" given in 2 is just that the Pokémon has multiple statuses at the same time.
  17. 3 is completely wrong, it's just that the nickname is corrupted with the s
  18. === NOT COMPLETE ===
  20. - Because stat changes don't only encompass temporary stats related to the current battle, but every stat the Pokemon has, by having specific 8x8 pixel tiles in certain locations on the screen, you can change the wild Pokemon to any Pokemon you want, at any level and with any stats. This is used to get an invalid glitch Pokemon.
  21. Almost correct, except the "stat changes" that cause the species to mutate is actually due to the aforementioned corruption.
  23. - However, when you try to register the Pokemon in the Pokedex, it tries to load up Pokedex entry #00.
  24. Actually in this specific case, it loads Pokedex entry #254. The Pokedex numbers are likely just arbitrary garbage data anyway and are irrelevant here. (internally, Pokemon are not defined in the same order as in the Pokedex so the game has to store Pokedex numbers of each Pokémon separately)
  26. - A failsafe still present in the game from when not every Pokemon had a correctly programmed Pokedex registering sequence turns it into the first Pokemon programmed into the game, Rhydon.
  27. This is correct, although I would change "correctly programmed Pokedex registering sequence" to just "valid Pokedex number".
  29. - Even then, the Pokedex flag for that glitch Pokemon is set, so if we catch that same Pokemon again, the Pokedex entry never displays, and the glitch Pokemon can be caught without turning into a Rhydon.
  30. This is correct.
  32. - The reason the graphics are messed up on the second battle is that the sprite of a Pokemon in it's summary and its Pokedex entry is flipped horizontally from it's in-battle front sprite.
  33. it's -> its
  35. - Most Pokemon summaries/Pokedex entries have code when you close them that tells the game to stop displaying the front sprites flipped, but glitch Pokemon were never intended to be seen, so they don't have that.
  36. This is correct, but I would reword this to something like "Pokémon with valid Pokédex entries will reset the variable that indicates whether to flip the front sprite, but the error handler to fix glitch Pokémon doesn't actually do this."
  38. - This results in the game trying to flip every sprite horizontally, but back sprites and trainer sprites don't have that animation, resulting in a garbled mess when the sprite loads.
  39. Also correct, although I would not use the term "animation" since the "flipped sprite" is actually just generated at runtime and not stored in the game.
  41. - This Pokemon's hexidecimal ID is the same as that of the "Cancel" button at the bottom of the party menu. If you get the cancel button to the top of your party, the game tries to load an empty party, but the game knows the party isn't empty, so it assumes you have 256 Pokemon. 255 is the maximum number an 8-bit game can handle without complex programming magic before the number overflows and reverts back to zero. Since you have 0 Pokemon and a non-zero number amount of Pokemon at the same time, the game assumes you have 256 Pokemon and it just overflowed. But, since you only have 5 Pokemon, the game draws data for the other 251 Pokemon it thinks you have out of other active areas of the games code, including your trainer ID and current location.
  42. Absolutely wrong and I have no idea where you even got this explanation. The reason you get a large number of Pokémon is due to viewing the "Super Glitch" move that the glitch Pokémon has. The corruption caused by it is the same principle as with the Cooltrainer move, except with a different buffer that's in a location that allows corrupting party count.
  44. - By doing some Pokemon swaps, we can convince the game we are in the Hall of Fame. The problem is that Pokemon are made up of massive amounts of code values, and it's hard to find a Pokemon you can switch to change one important value without changing a bunch of other important values in unintended ways. The Pokemon that contains your Trainer ID is safe to switch with the Pokemon that contains your current location and warps you to the hall of fame, provided you have the very specific trainer ID you gave yourself at the beginning of the game.
  45. Mostly correct, there is some technical information missing here (I've forgotten the technical aspects of how the wrong warp exactly works but I think the trainer ID is swapped into the map you travel to when you exit the current map from the north). The general idea echoed here is correct, in that changing values in an overflowed party is really difficult, but the goal is to place you in the Hall of Fame. However, changing your current map ID to the Hall of Fame would not actually work because the game wouldn't load the Hall of Fame's script since a warp was never triggered (and actually it would probably crash due to the way that Route 1's script pointer would be executing in the wrong ROM Bank since Route 1's map bank is different than the Hall of Fame's map bank)
RAW Paste Data