Evie (ChickasaurusGL) 🌺 | Making Kirby a Pokémon with arbitrary code execution (back sprite and menu sprite) (Pokémon Yellow) @ChickasaurusGL | Uploaded July 2021 | Updated October 2024, 13 hours ago.
Notes: Just a fun demo ^^, you can do this for your favourite character with this previous method youtube.com/watch?v=d3OsHGhjz48 , but I decided to make a custom menu sprite of Kirby as well.
You can import kirby pokemon yellow.sav from the following link to try yourself. sites.google.com/site/torchickens2/pokemon-save-files
Specific details unique to this method; We don't want to break the OAM DMA routine; which would break menu sprites, so the code writes a relative jump at FF8A to FF9F so the OAM DMA code at FF80 does its job.
FF9F is written to in advance, for code that will set CD3D (field move) to glitch field move 0x11. Using any field move will run the script for field move 0x11, which executes arbitrary code at D2B4.
At D2B4 (Pokémon nicknames) is code to add the Kirby menu sprite, by modifying 8000 and the OAM DMA entries at C300+.
Lastly, both Pokémon 1 is glitch Pokémon 0xE6 with the Clefairy palette, and glitch Pokémon 0xE6's back sprite pointer (DAC9) is a Kirby sprite in advance.
Notes: Just a fun demo ^^, you can do this for your favourite character with this previous method youtube.com/watch?v=d3OsHGhjz48 , but I decided to make a custom menu sprite of Kirby as well.
You can import kirby pokemon yellow.sav from the following link to try yourself. sites.google.com/site/torchickens2/pokemon-save-files
Specific details unique to this method; We don't want to break the OAM DMA routine; which would break menu sprites, so the code writes a relative jump at FF8A to FF9F so the OAM DMA code at FF80 does its job.
FF9F is written to in advance, for code that will set CD3D (field move) to glitch field move 0x11. Using any field move will run the script for field move 0x11, which executes arbitrary code at D2B4.
At D2B4 (Pokémon nicknames) is code to add the Kirby menu sprite, by modifying 8000 and the OAM DMA entries at C300+.
Lastly, both Pokémon 1 is glitch Pokémon 0xE6 with the Clefairy palette, and glitch Pokémon 0xE6's back sprite pointer (DAC9) is a Kirby sprite in advance.