Pokémon Gold and Silver: Difference between revisions

Jump to navigation Jump to search
Content added Content deleted
m (Removed the stub template. Even though the page can still use a lot of information it's no longer a stub.)
(→‎Game-breaking glitches: Added a mention of the type 0xD0 glitch.)
Tags: Mobile edit Mobile web edit
 
Line 17: Line 17:
An alternative starting point for breaking the game is the [[bad clone glitch]]. If performed successfully, the bad clone glitch will give the player a Pokémon with all of its main data, importantly the second species byte, being 0x00. This "bad clone" can be easily stabilized into a [[GlitchDex/GS:000|????? (0x00)]]. The game engine, especially the Pokémon storage system, is not designed to be robust against the invalid species IDs 0x00 or 0xFF, and breaks down rather easily. In particular, [[????? party overloading]] can allow the player to add a seventh Pokémon into the party, which in turn allows removing the 0xFF party list terminator. Without the party terminator, removing Pokémon from the party or inserting (with "move PkMn w/o mail") Pokémon into the party will corrupt the player's entire party data, and potentially beyond, by shifting everything up or down a byte until a 0xFF byte is found. With carefully designed exploit procedures such as the [[Celebi Egg trick]], the player can basically create any Pokémon, item, etc. with this techniques.
An alternative starting point for breaking the game is the [[bad clone glitch]]. If performed successfully, the bad clone glitch will give the player a Pokémon with all of its main data, importantly the second species byte, being 0x00. This "bad clone" can be easily stabilized into a [[GlitchDex/GS:000|????? (0x00)]]. The game engine, especially the Pokémon storage system, is not designed to be robust against the invalid species IDs 0x00 or 0xFF, and breaks down rather easily. In particular, [[????? party overloading]] can allow the player to add a seventh Pokémon into the party, which in turn allows removing the 0xFF party list terminator. Without the party terminator, removing Pokémon from the party or inserting (with "move PkMn w/o mail") Pokémon into the party will corrupt the player's entire party data, and potentially beyond, by shifting everything up or down a byte until a 0xFF byte is found. With carefully designed exploit procedures such as the [[Celebi Egg trick]], the player can basically create any Pokémon, item, etc. with this techniques.


With the above techniques, the player can even create Key items as held items, which enables the [[duplicate Key items glitch]], allowing the player to access an expanded Balls pocket and set up [[Wrong pocket TMs and HMs|wrong pocket TM/HM]] ACE. However, the biggest problem with this route of breaking the game is the bad clone glitch itself, which is dependent on sub-frame timing and also possibly missable (needs a box that has never been full, and also depends on SRAM data that is not necessarily initialized unless the player clears the save data beforehand). An alternative method to obtain a "bad clone", and thus follow the same route without executing the actual bad clone glitch, is the [[Hall of Fame SRAM glitch]], but that glitch can hardly be considered practical in any scenario: It involves entering the Hall of Fame without a save file, meaning that it does not work with any existing save file, and is too much work for breaking a brand-new save file, especially since the Coin Case route is always available.
With the above techniques, the player can even create Key items as held items, which enables the [[duplicate Key items glitch]], allowing the player to access an expanded Balls pocket and set up [[Wrong pocket TMs and HMs|wrong pocket TM/HM]] ACE. Alternatively, one can make use of the fact that the bad clone will have no moves to directly set up ACE with the [[type 0xD0 move glitch]].

However, the biggest problem with either route above of breaking the game is the bad clone glitch itself, which is dependent on sub-frame timing and also possibly missable (needs a box that has never been full, and also depends on SRAM data that is not necessarily initialized unless the player clears the save data beforehand). An alternative method to obtain a "bad clone", and thus follow the same route without executing the actual bad clone glitch, is the [[Hall of Fame SRAM glitch]], but that glitch can hardly be considered practical in any scenario: It involves entering the Hall of Fame without a save file, meaning that it does not work with any existing save file, and is too much work for breaking a brand-new save file, especially since the Coin Case route is always available.


There is a save corruption technique even harder than the bad clone glitch, [[checksum collision]]. Due to its dependence on both subframe-level timing and minor details of the save file, this technique is considered speedrun-only, and in fact it was thought to be TAS-only until the speedrunning circle came up with a route<ref>[https://pokemon-speedrunning.github.io/speedrun-routes/#/gen-2/gold-silver/main-any/gold-silver-backup-collision-route/ Pokemon Gold-Silver Any% Backup Collision Route]</ref> with ''some'' leeway (namely, 1/3 of a frame).
There is a save corruption technique even harder than the bad clone glitch, [[checksum collision]]. Due to its dependence on both subframe-level timing and minor details of the save file, this technique is considered speedrun-only, and in fact it was thought to be TAS-only until the speedrunning circle came up with a route<ref>[https://pokemon-speedrunning.github.io/speedrun-routes/#/gen-2/gold-silver/main-any/gold-silver-backup-collision-route/ Pokemon Gold-Silver Any% Backup Collision Route]</ref> with ''some'' leeway (namely, 1/3 of a frame).