Files
pokepinballrs/tools/scripts
Cyphgirl 30c880b502 Extract the launcher Spoink frames from baserom
gSpoinkEntity_Gfx is 7 frames of 0x1C0 over tile 263.
gSpoinkLauncherSpriteSet draws a 16x32 with an 8x32 beside it and a 16x8 below,
14 tiles, in palette bank 11, which the vote finds on its own.

The shape carries one approximation and it is worth naming. The body pair sits on
the tile grid, but the lower strip is offset 4 pixels -- half a tile -- so it
cannot share that grid, and the shape places it at the nearest column instead.
Everything else is exact and the sheet still rebuilds byte for byte, since the
shape only decides where tiles land in the PNG.

Elsewhere a phase mismatch like this has meant falling back to plain strips, and
that would have been the consistent choice. It is the wrong one here: a strip
slices the 16x32 body into bands and the sprite becomes unreadable, whereas the
shape shows seven legible Spoinks for the cost of a 4px lie about one strip.
Ruby's intro sheet takes the third option and splits the sprite at that seam, as
spoink and spoink_tail, which does not survive 7 frames interleaving.

Rebuilt sheet matches the ROM blob before and after recolouring, check passes,
make compare passes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 09:38:02 -04:00
..