ZZAZZ glitch: Difference between revisions

+Overview heading
(Fixed grammar)
Tags: Mobile edit Mobile web edit
(+Overview heading)
Line 1: Line 1:
[[File:ZZAZZ.png|200px|thumb|right|The player encounters one of several [[glitch Trainer]]s which can trigger the ZZAZZ glitch.]]
[[File:ZZAZZ.png|200px|thumb|right|The player encounters one of several [[glitch Trainer]]s which can trigger the ZZAZZ glitch.]]


The '''ZZAZZ glitch''' is a data-corrupting [[glitch]] found in the [[Generation I]] {{pkmn|games}} that occurs when the {{player}} encounters a certain [[glitch Trainer]]. In [[Pokémon Red and Blue]] it can be triggered by using the {{DL|Mew glitch|Ditto glitch}} with a {{stat|Special}} stat of 248, 251, 252, 254 or 255 and without altering the {{stat|Attack}} stat. In [[Pokémon Yellow]] the stats of 249, 250 or 253 will also cause the glitch in addition to the above.
The '''ZZAZZ glitch''' is a data-corrupting [[glitch]] found in the [[Generation I]] {{pkmn|games}} that occurs when the {{player}} encounters a certain [[glitch Trainer]].
 
==Overview==
In [[Pokémon Red and Blue]] it can be triggered by using the {{DL|Mew glitch|Ditto glitch}} with a {{stat|Special}} stat of 248, 251, 252, 254 or 255 and without altering the {{stat|Attack}} stat. In [[Pokémon Yellow]] the stats of 249, 250 or 253 will also cause the glitch in addition to the above.


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 {{wp|binary-coded decimal}}, 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 {{PDollar}}9999. However, since the glitch Trainers encountered have an invalid money value unlike normal {{pkmn|Trainer}}s, the arithmetic functions fail to behave as expected, corrupting a pointer<ref>http://forums.glitchcity.info/index.php/topic,36.msg194415.html#msg194415</ref> 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 {{PDollar}}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 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 {{wp|binary-coded decimal}}, 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 {{PDollar}}9999. However, since the glitch Trainers encountered have an invalid money value unlike normal {{pkmn|Trainer}}s, the arithmetic functions fail to behave as expected, corrupting a pointer<ref>http://forums.glitchcity.info/index.php/topic,36.msg194415.html#msg194415</ref> 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 {{PDollar}}9999 after the first. For the Trainers that trigger the ZZAZZ glitch, this happens over two hundred times, destroying many important game variables.