Anonymous user
ZZAZZ glitch: Difference between revisions
no edit summary
>Torchickens (→Cause) |
>Torchickens No edit summary |
||
Line 15:
==Cause==
Whether
In Pokémon Red/Blue/Yellow, money is stored so that a hexadecimal value represents a decimal value, which is related to why the ZZAZZ glitch writes 99 (normally dec:153) to things.
Upon encountering a ZZAZZ glitch Trainer, its base money payout will be multiplied by the level of the last Pokémon and the result (the prize money) capped at "009999" will be stored at D079 (D078 in Yellow).
Multiplication in the winning money calculation is implemented as a consecutive addition (like 3*4 is 3+3+3+3), but a glitch occurs when the money caps at 9999. Every time the game resets the payout back to 9999, the game moves the payout money pointer 3 bytes forward, so the game keeps writing hex:9999 to memory addresses located past the winning money bytes.
The more times that the money value in the current pointer caps at 00 99 99, the more bytes are corrupted.
The first byte in the series (XX 99 99) is never written to, meaning that some values stay the way they were. The extent of corruption depends on how many additions the game used. Bytes may not be kept at 99 if they change naturally in battle. An example is the address D083 (D082 in Yellow), which may be constantly changing before the player sends out their Pokémon so that the low HP noise is played.
|