Glitch sound bank
Glitch sound banks are invalid music banks in Pokémon Red, Blue, and Yellow. These effectively serve as categories for all of the music in the games.
Normal sound banks include 0x02 (overworld), 0x1F (dungeons and title screen) as well as 0x20 in English Yellow or 0x28 in Japanese Yellow which contains the printer error theme, Pokémon Yellow unused tune, encounter with Jessie and James theme and Pikachu's Beach theme.
Forcing a glitch sound bank to play can cause glitches, with not only glitch audio but also glitch effects such as a glitch trade screen (when attempting to play a song from bank 1 in Red/Blue) or freezes (see Too bad! The trade was canceled! (effect)).
Glitch sound banks can be accessed as a side effect of encountering regular MissingNo. in Yellow, or with the GameShark codes 01xxEFC0, 01xxF0C0 where xx is to be replaced with the bank.
Sound bank arbitrary code execution
- Main article: Sound bank arbitrary code execution
Arbitrary code execution is possible in Pokémon Red and Blue with sound bank 0A. The code at 0A:58EA will run some instructions which corrupt the stack. F55B (D55B, stored PC item 17) will become the stack, so can be changed to somewhere easier such as 22 D3 (inventory item 3) using Water Stone x211 at PC item 17. As the stack was corrupted and the game will typically freeze, it may be more convenient to write to use arbitrary code execution to write to the save file (SRAM) rather than only writing to RAM. This can be done by modifying RAM which persists after saving and resetting, then calling 1C:778C (SaveSAVtoSRAM0) to save the game without the complications of save file checksums.
| |