Jump to content

Arbitrary sprites: Difference between revisions

no edit summary
>Torchickens
No edit summary
No edit summary
 
(10 intermediate revisions by 4 users not shown)
Line 1:
[[File:Yoshi battle.png|thumb|right|160px|'Yoshi' as the backsprite of a Pokémon.]]
 
'''Arbitrary sprite''' (or '''custom sprites''') or '''arbitrary sprite pointers''' refers to a [[glitch technique]] in {{RBY}}, in which a [[glitch]] or memory edit is used to insert data the player desires into a Pokémon, [[glitch Pokémon]], Trainer or [[glitch Trainer]]'s sprite.
 
It does not refer to hacking Pokémon sprites into the ROM, but rather refers to 'custom sprites' appearing due to modified [[RAM]].
Line 39:
In Yellow, [[glitch Pokémon]] {{gdex|Y:230|9ゥ (0xE6)}}'s backsprite is sourced from FAC9 (DAC9)). By default, on Super Game Boy the glitch Pokémon is yellow, but the palette of the desired sprite can be changed by changing the second species byte of a 9ゥ (0xE6).
 
Dimension byte 0x44 sprites can be 'installed' into the game for 9ゥ (0xE6, by modifying the contents of DAC9 (which is located within the storage system Pokémon data) with arbitrary code execution.
 
This exploit was documented by Torchickens.
 
===With Family 175 (Red/Blue)===
The Family 175 glitch Pokémon in Red/Blue (specifically {{gdex|RB:228|0xE4}}, {{gdex|RB:233|0xE9}}, {{gdex|RB:238|0xEE}}) take their frontsprite from screen data at CDE5. Though it may not be possible to see a custom frontsprite from those glitch Pokémon with standard arbitrary code execution, it is possible with a special form of arbitrary code execution known as [[OAM DMA hijacking]], and this exploit can be set up with a tool such as [[TheZZAZZGlitch's memory editor]] and map script execution at D36E.
 
This exploit was documented by Torchickens.
Line 54:
 
==In later generations==
Arbitrary sprites are possible in Pokémon Ruby and Sapphire. All glitch Pokémon’s palettes are indexed out of bounds from the array holding each species’ compressed palette pointers. These pointers can end up in Pokémon storage data, which allows the player to manipulate data within their boxes (through ACE or by save editing) so that when decompressed, the “palette” data will overwrite the decamark sprite in memory. It should be noted that this same technique is not possible in Emerald or FRLG because of how memory is laid out differently.
Arbitrary sprites are theoretically possible, but no vulnerability to do it have, as of yet been documented.
 
==See also==
Line 71:
 
{{YouTube|d3OsHGhjz48|ChickasaurusGL}}
 
Arbitrary sprites in Pokémon Ruby:
 
{{YouTube|qdR3DwaG0kI|unclekrunkel}}
 
==External links==
*[https://rgmechex.com/tech/gen1decompress.html Retro Game Mechanics Explained's tool to compress and decompress Generation I sprites online (supports PNGs)]
*[https://sites.google.com/site/torchickens2/glitching-tools Sprite import tools mirror on Torchickens' Google Sites]
*"Sprite import tools for RBY" can be downloaded within Evie's Google Sites backup [https://drive.google.com/drive/folders/1DAVPYay9sAuXwi4qXbDQfPU2sIDI_mXH?usp=sharing here]. It is based on the previous work of the GB Dev (for .2bpp encoding) and Skeetendo (for sprite compression) communities.
 
[[Category:Generation I glitches]]
[[Category:Major glitches]]
Cookies help us deliver our services. By using our services, you agree to our use of cookies.