Minimize and Substitute glitch
Reason given: Does this glitch happen if the player doesn't open and close the fight menu, but the player acted after the opponent during the previous turn?
|PRAMA Initiative a également une page sur Minimize and Substitute glitch.|
Enemy Chansey in the Unknown Dungeon know Minimize.
If after an enemy Pokémon uses Minimize, the player opens and closes the fight menu then view the stats of any valid Pokémon in the party, their sprite will become the "minimized" sprite and the opponent's sprite will become a broken version of the Pokémon they viewed.
If the player views the summary of certain glitch Pokémon the opponent's sprite won't change but their backsprite still will. This is because viewing the front sprites of those glitch Pokémon triggers the Rhydon trap.
The Substitute glitch occurs when the player opens and close the fight menu then views the stats of any valid Pokémon in the party after the foe uses Substitute. It causes the user's sprite to become the Substitute back sprite.
On the stats screen, the selected Pokémon's sprite is displayed using the same area of the VRAM, vFrontPic (49 tiles, from tile $00 to tile $30), as the enemy Pokémon's sprite in battle. Therefore, when closing the stats screen, the enemy Pokémon's sprite needs to be reloaded. If the enemy is minimized, or has a substitute up, then instead of reloading its sprite, the function for the corresponding battle animation, AnimationMinimizeMon or AnimationSubstitute, is instead invoked to draw the "minimized" sprite or substitute sprite.
However, both functions rely on [H_WHOSETURN] to determine which sprite should be minimized or replaced with substitute. The code handling those special cases didn't set [H_WHOSETURN], so it is possible for its value to be 0 (player) instead of 1 (enemy). In this case, the player's sprite will be affected by the animation instead, and the enemy's sprite will be drawn with the tiles of the Pokémon whose stat screen is displayed instead. The sprite looks "broken" because the front sprite shown on the stat screen is flipped, which means that each tile is flipped and the order of columns is flipped too. Displaying those flipped tiles in the unflipped order results in a "broken" sprite.
Opening and closing the fight menu can help set up this glitch, because when drawing the fight menu, [H_WHOSETURN] is set to 0 so that the GetCurrentMove function can correctly get the move the cursor is on, in order to display its type.