ZZAZZ glitch



The ZZAZZ glitch is a data-corrupting glitch found in the Generation I. It can be triggered by using the with a  stat of 251, 252, 254 or 255. This makes the undefined encounter a glitch Trainer that in turn causes this glitch to occur.

The glitch is directly caused by a multiplication routine used to calculate the amount of money awarded at the end of the battle. As money in Generation I is stored as, the game must perform several arithmetic functions in order to load the proper value into memory; as part of this loading, the game attempts to ensure that the money value is capped at 9999. However, since the glitch Trainers encountered have an invalid money value unlike normal s, the arithmetic functions fail to behave as expected, corrupting a pointer and causing the byte 0x99 to be written to the first two out of every three bytes for each time the calculated award would exceed 9999 after the first. For the Trainers that trigger the ZZAZZ glitch, this happens over two hundred times, destroying many important game variables.

The glitch Trainer is usually seen sending out a level 153 'M (FF) or a Q ◣ with an extremely long bar; attempting to use a move or even just view the party will cause the game to freeze due to the corruption. However, the Trainer can be easily escaped by using any item (as long as it does not display the party, such as any type of Poké Ball); doing so automatically causes the battle to end (also due to the corruption). During and after the battle, the player can see that every Pokémon in their party except each third one has been changed to a level 153 whose first, second, and fourth moves are all ; the player's name except for every third letter has also been overwritten with capital Z's (hence the name of the glitch). All of these correspond to index number 0x99.

Although the player's name has been corrupted, the OT values of the party Pokémon have not, causing them to be treated as outsider Pokémon. Combined with the fact that most of them are level 153, they will always disobey the player (as not even the is programmed to make Pokémon over level 100 obey), unless the player's name stays the same after the glitch(with a name of ZZ or ZZ ZZ).

If the player attempts to battle a regular Trainer after triggering the glitch, that Trainer will become a glitch Trainer with the player's sprite. Their name will either be the player's original name, their ZZAZZ-glitched name, or sometimes a different glitched name, and their party will again consist mainly of several 'M (FF) or Q ◣. Attempting to battle this Trainer will not outright cause the game to crash, although attempting to view the player's party still will. Using items will not end the battle this time. The Trainer is almost impossible to defeat, as the player's Pokémon will not obey (and/or will faint themselves with Explosion, causing the party menu to appear and crash the game), and at least one of the Trainer's level 153 Pokémon has an extremely large amount of HP.

Less immediately noticeable effects of the widespread corruption include changes to in-game interfaces such as the menu. If a player attempts to save the game, glitch options may be displayed that could possibly cause the game to crash. This is due to the corruption of memory address D12C (D12B in Yellow) to an invalid value, which controls which two options (such as Yes/No or Heal/Cancel) appear when the player is provided a choice, along with the size of the menu.

The corrupted menu can be fixed by talking to a Pokémon Center nurse, which displays Heal/Cancel regardless of the value and resets D12C/D12B back to 0 (Yes/No) and allowing the player to save the game. Saving is also indirectly possible via changing PC boxes but saving the game with both methods will often make the player unable to load their save file depending on the player's name before the corruption.

The inability to load the game is actually due to a failsafe that treats the savefile as invalid if the player's name exceeds the intended maximum length, which is very likely due to all of the previous corruption. If this effect is bypassed such as by having an original name that was exactly 2 or 5 characters long (since every third position is not corrupted and so the end-of-string character at position 3 or 6 will be preserved), then the game will be able to load the corrupted file without problems.

There is also a ZZAZZ variant of Jacred, caused by using the Ditto glitch with a Special stat of 200 and using Growl one or two times. Because this is a ZZAZZ variant, the battle can be escaped by using any type of Poké Ball, though this is slightly difficult to do as the Bag will be corrupted and almost fully filled with items named " PokéTrainer". However, it is possible to scroll down past the Cancel button, find a Poké Ball, and then use that to escape the battle. After escaping, the player will be in a type of Glitch City. The game will not be able to be saved directly through the menu, because when the party is opened, the game will lock. The city has no PC to indirectly save the game, nor a Pokémon Center where the menu's save option can be restored by healing the player's party.