Arbitrary glitch Pokémon sprites - 'Permanent' custom sprites
Posted by: Torchickens
Date: 2017-05-24 18:35:15
In Pokémon Yellow glitch Pokémon 0xE6 ("9") has a variable backsprite which is taken from DAC9 in WRAM.
This is in the range of the stored Pokémon data. If a properly compressed sprite is placed here (such as with offgao's memory editor) it is possible to create a custom sprite.
Furthermore, on some occasions this glitch Pokémon's backsprite will freeze the game (e.g. if the data begins with 00 as this means the dimensions to its sprite are 0x0), but a freeze can be avoided by specifying proper dimensions at the beginning of the file.
Compressing the sprite and inserting it into the game is possible with a combination of this tool and Stag019's Pokémon sprite compressor tool.
(Follow similar steps to these instructions; specifying the size, block size and codec on Tile Molester, pasting the file there and saving it as a 2BPP file and compress the file with Stag019's tool)
Then open the compressed PIC file with a hex editor and copy the data to DAC9.
Here are a few examples. You should be able to make much better files but these are just for demonstration:
Note the Pokémon is "Pidgeot" because I modified a Pidgeot to the 0xE6 glitch Pokémon rather than obtaining one myself. You can do this with any 0xE6 glitch Pokémon in Yellow.
[img]http://i.imgur.com/m9fY7Tp.png[/img]
[img]http://i.imgur.com/ZWtxvnN.png[/img]
[img]http://i.imgur.com/L617B8K.png[/img][img]http://i.imgur.com/ebu5KVV.png[/img]
[img]http://i.imgur.com/CZ52Oi3.png[/img]
The palette of the sprite will be determined by the second species byte. While using the editor you could modify this byte (such as D16A for the first Pokémon to 80 for the Golduck palette).
I have not yet found a glitch Pokémon with a RAM front sprite but one may exist.
Here is the raw code for my smiley face example:
44 B6 55 54 E4 5A A3 0A A5 34 63 92 4C 18 B5 AA A9 4B 92 62 9A 34 A4 A8 62 58 86 89 6A 46 49 92 52 AA 26 48 91 4E 99
21 3B 53 24 94 DD A2 53 34 A6 88 62 16 4B 8A 92 2A 22 56 06 2A 19 2A 94 C1 68 A6 2A 4C 2A AA 30 63 29 4E 05 8D EA
55 55 6A 31 9F 96 74 4C 32 76 49 12 76 49 09 DB 9D AC 4A 71 F4 44 42 11 D5 0C 7E 16
BGB is really good for this as you can open up the debugger, go to DAC9, right click and paste the code.
[img]http://i.imgur.com/8JbdWed.png[/img]