the cutting room mirror

Super Adventure Island II

This article has a talk page!
view on tcrf.net

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.

(Source: HarroSIN via leonhart.us)