🎃 Happy Halloween, TCRF! 🎃
Notes:Super Adventure Island II
This page contains notes for the game Super Adventure Island II.
Level Layout: Foreground (BG Layer #2)
The foreground level layout defines the tiles with collision detection. This layer is also responsible for World Map tile placement.
Example: Light Gate @ 17A6D5 (Header Starts) Example: Light Gate @ 17A6EB (Tile Data Starts)
Foreground level header is 22 bytes:
0x00-0x01: Tilesheet? 0x02 Unknown 0x03-0x04: Local pointer to tile data 0x05: Unknown 0x06-0x07: Number of 32x32 tiles on the X axis 0x08-0x09: Number of 32x32 tiles on the Y axis 0x0A-0x0B: Number of screens on the X axis 0x0C-0x0D: Number of screens on the Y axis 0x0E: Unknown 0x0F: Tile size? 0x10-0x13: Camera position? 0x14-0x15: Number of bytes in tile data
Tile data follows, one byte for each tile.
In ROM, the tiles are stored in 64 bytes for one 8 by 8 screen, and continues along the X axis for each screen.
In RAM, the tiles are drawn line by line, until the X axis is filled and then wraps around to the next Y line.
$7E:6000 to $7E:6FFF in memory appeares to be occupied by this data.
Level Layout: World Map
The World Map is in a similar format. The header for the World Map beings at 0x8D000 in ROM. Standard header followed by two bytes for each tile.
512 declared tiles from 0x0000 to 0xFF01 (Remember: Little endian). The map is drawn with 16x16 tiles rather than 32x32 tiles.