The instant victory effect is a quirk in Pokémon Gold, Silver and Crystal. It is probably intended as an error trap to prevent battling with an empty party; however, it can still lead to some glitchy effects. Despite the name, it can also cause the player to lose a battle without fighting.
There are two types of scenarios where this effect happens:
- The player's party Pokémon count is 0.
- The party Pokémon count is not 0, but among those, no Pokémon could be sent out because they either have fainted or are eggs. (Notice that if the player manage to de-sync the party count byte and the party species list, then any Pokémon in excess of the party count won't be checked.)
In both scenarios, entering a battle will immediately end it. More precisely:
- In the first scenario, the screen will fade out for the battle, then immediately fade in. For the purpose of overworld scripts, the result of the battle will be determined by the last battle that did happen:
- If the player won the last battle, or caught the enemy Pokémon (if it was a wild battle), then the player is assumed to have won this battle too. The same happens if no battle has happened since the player started a new game or loaded a save file.
- If the player escaped from the last battle, then the player is assumed to have escaped from this battle too. This is usually equivalent to winning (trainers will become "defeated", etc.). However, this doesn't clear the Electrodes in the Team Rocket HQ, which must be knocked out or caught.
- If the player lost the last battle, then the player will white out from this battle too. The graphic effects will be glitchy because the game never transitioned to the battle scene.
- In the second scenario, the wild Pokémon will appear, or the enemy trainer will sent out their first Pokémon, then instead of the player sending out a Pokémon, the game fades out to the overworld. For the purpose of overworld scripts, the player is always assumed to have won.
Previously a cheat only effect, the effect can now be triggered with ????? party overloading or arbitrary code execution.
Setup and sub-glitches
Obtaining a ????? (FF) will allow for the player to obtain an empty party, if they faint all Pokémon in the party after it and then faint ????? (FF). This prevents the Pokémon Center healing effect from working, leaving the player with an empty party.
Additionally, there is a sub-glitch known as the Trainer grass displacement glitch, in which the player can battle a Trainer in the grass, and access glitch dialog as their victory speech.
Use in speedruns
This effect is often used in glitched speedruns of Pokémon Gold, Silver and Crystal, due to the unique goal definition of those runs. For the glitchless any% run, the goal is to beat Red and trigger the second set of credit roll (instead of the first set of credit roll after beating the Elite Four), but this is not clear enough for glitched categories because the two sets of credit roll are identical, beating Red doesn't trigger any other unique event, and the concept of "beat" itself is ambiguous. For this reason, MrWint defined the goal in his Gold any% TAS submission as follows:
- You must be in Mt. Silver on the map Red is in.
- You must talk to Red and run his unaltered NPC scripts until the credits roll.
Since the battle will always take additional time, the fastest way to do this (usually after achieving arbitrary code execution) is to set the party count to 0 before talking to Red, hence triggering this effect with the first scenario, completely skipping the battle.
|This article or section is a stub. You can help Glitch City Laboratories wiki by expanding it.