| Byte range |
Tile source |
| $80-$8F |
Not a tile - a procedurally-generated 4-quadrant block fill (bit 0-3 = top-left/top-right/bottom-left/bottom-right quadrant on/off) |
| $90-$A4 |
A fixed UDG sprite tile at $FF58 + (byte-$90)*8 - always the hero's body parts, regardless of the active CHARS tileset |
| everything else |
A regular character tile from the active tileset: (CHARS value)+256+(byte-$20)*8. If CHARS is $3C00, the real ROM font is used instead (the ROM isn't part of the snapshot) |
Two SkoolKit macros in paradisecafe.py render these streams:
`decode_data` produces the actual picture (this is what's embedded
throughout the disassembly); `decode_frame` produces an analysis table
instead - one row per byte, with its address, meaning, screen position and
a rendered tile where relevant. Most Frame data entries in this
disassembly include both.