mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-10-05 07:37:52 -04:00
d510ebd0df
gCatchTile_BurstStart_Gfx is 8 frames of the lightning strike drawn by gCatchTile_RevealOamFramesets, and it is the last of the burst family. Six frames have their pieces on one sub-tile phase and consume the slice in order, so they take shapes; frame 4 has a piece 4px off and takes an approximate one. I had this filed as blocked, on the grounds that frame 6 contains an overlap no layout can express. That was half right and it cost the other seven frames. The overlap is real -- a 16x16 at t204 and a 16x32 at t207 both claim t207, so that frame's tiles are not one run and it stays a strip -- but it says nothing about the rest of the sheet, and treating the whole thing as blocked was the error. The frames were worth generating rather than hand-computing: 6 shapes, up to 78 cells each. The helper takes a frameset's piece list and either returns a shape or explains why not. It rejects on three grounds, and the third only turned up here: mixed sub-tile phases, two pieces landing on one grid cell, and pieces that do not consume the tile slice in order. That last check is what correctly sends frame 6 to a strip -- a grid-overlap test alone accepts it, because the two pieces do not collide on screen, only in the tile numbers they read. t219 is unused and t240..255 are unreferenced. Palette from gCatchTile_BurstStart_Pal into OBJ bank 14, so no vote. Rebuilt sheet matches the ROM blob before and after recolouring, check passes, make compare passes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>