Table of Contents

Rooms

Every data in a room block is uncompressed except for tiles.

Room index

The lookup table for each room starts at 0x80CF4EC. Each entry is 8 bytes long.

[PP PP PP PP] [LL LL] [MM MM]

P Absolute pointer to the level header
L Level index (ex: 2 = Breachull beach)
M What music plays in the room

List of Rooms

There are 38 rooms in the rom.

ID Address Header address Level Music Ingame name Room name
0 80CF4EC 80CF61C 0 1 SPIRALBOTTOM Spiral mountain
1 80CF4F4 80F0658 0 1 SPIRALMIDDLE
2 80CF4FC 8113AA4 0 1 SPIRALTOP
3 80CF504 812E364 2 2 QUARRY Grunty's quarry
4 80CF50C 8153CD4 1 3 LOWERFARM
5 80CF514 81748A8 1 3 UPPERFARM
6 80CF51C 8199534 FF A MUMBOHUT Mumbo's hut
7 80CF524 81A62D4 0 4 HONEYB Honey B's hive
8 80CF52C 81ADCE8 2 2 BEACHSTART Breechull beach
9 80CF534 81E205C 2 C UNDERCORAL
10 80CF53C 83BAEB8 5 5 OCTOSHOOT
11 80CF544 81FD794 1 3 COWBOSS
12 80CF54C 8210E3C FF 6 BEACHSLIDE Slide minigame
13 80CF554 82326F0 2 2 BEACHTOP Breachull peak
14 80CF55C 8240E60 FF 7 BEACHSHOOT
15 80CF564 824CB5C 5 5 FJORD
16 80CF56C 83B94C0 FF 6 SKIDOOS
17 80CF574 828093C 5 9 FURNSECTION
18 80CF57C 83C98BC 0 F GRUNTY
19 80CF584 83902C0 3 B HOUSEROOMS
20 80CF58C 835E39C 3 B BOARDWALK
21 80CF594 82A8F78 5 9 FURNSTORE
22 80CF59C 82B4674 4 D HARBOUR Spiller's harbour
23 80CF5A4 82DAB88 4 D CASTLEINNER
24 80CF5AC 82E8854 4 D INSIDES
25 80CF5B4 83A6370 4 D OCTOPUS
26 80CF5BC 82F7E9C 4 D SANDAREA
27 80CF5C4 830DA48 4 D VILLAGE
28 80CF5CC 832AAA0 FF 6 BOATFIGHT
29 80CF5D4 832E668 0 8 JIGGYTEMPLE
30 80CF5DC 8338928 1 C DIVESPOT
31 80CF5E4 833BA54 3 B CANDLEPUZ
32 80CF5EC 8382E18 5 9 POISONROOM
33 80CF5F4 83503DC 3 B SWAMPGAS
34 80CF5FC 83DA084 0 0 FRONTEND
35 80CF604 83E2A8C FF E GRUNTYSHOOT
36 80CF60C 83E6B6C 5 9 FJORDCAVERN
37 80CF614 83F48A8 FF 6 GRUNTYSHOOT

Room header

The room header is 0x64 bytes long. This data is copied to RAM at 0x3003344.

Offset Length Description
0x00 2 Tile data 1 count
0x02 2 Tile set 1 count
0x04 2 Tile data 2 count
0x06 2 Tile set 2 count
0x08 2 Enabled backgrounds
0x0A 2 Map X length (in tiles)
0x0C 2 Map Y length (in tiles)
0x0E 1
0x0F 1 Compression method used (0 = no compression, 1 = LZ77, 2 = huff)
0x10 4
0x14 1 BG0 tile set (00 = set 1, 01 = set 2)
0x15 1 BG1 tile set (00 = set 1, 01 = set 2)
0x16 1 BG2 tile set (00 = set 1, 01 = set 2)
0x17 1 BG3 tile set (00 = set 1, 01 = set 2)
0x18 4 Background palette pointer
0x1C 4 Tile data 1 pointer
0x20 4 Tile set 1 pointer
0x24 4 Tile data 2 pointer
0x28 4 Tile set 2 pointer
0x2C 4 Tile animations 1 pointer
0x30 4 Tile animations 2 pointer
0x34 4 Collision pointer
0x38 4 Textbar NPC pointer
0x3C 4 Textbar bozzeye pointer
0x40 4 Entities pointer
0x44 4 Sprite palette pointer
0x48 4 ?? pointer
0x4C 4 Map 1 pointer
0x50 4 Map 2 pointer
0x54 4 Map 3 pointer
0x58 4 Map 4 pointer
0x5C 1 BG0 stationary (0 = not stationary, 1 = stationary)
0x5D 1 BG1 stationary (0 = not stationary, 1 = stationary)
0x5E 1 BG2 stationary (0 = not stationary, 1 = stationary)
0x5F 1 BG3 stationary (0 = not stationary, 1 = stationary)
0x60 1 BG0 control (If these booleans are true, some functions have control over the background control registers.)
0x61 1 BG1 control
0x62 1 BG2 control
0x63 1 BG3 control

Room data

1C: Tile data 1

Tile data is compressed pixel data which is directly transferred to VRAM. The tile data is 4bpp.

20: Tile set 1

Each tile in the tile set is a collection of 16 entries. Each entry refers to tile data in ram and is 2 bytes in size.

[PP PP] [X] [Y] [TTTTTTTTTT]

P The palette of the block
X X mirror boolean
Y Y mirror boolean
T The tile data it uses.

28: Tile set 2

See Tile set 1

2C: Tile animations

Tile animations store its own tiles. In game the animated tiles is put in VRAM first and then the other tiles.

Block structure

Size Description
4 Number of tile animations
8 * n Tile animation index
16 * n Tile data

Tile animation index

Each entry is 8 bytes long.

[FF FF] [SS SS] [PP PP PP PP]

F Number of frames
S Frames per second
P Tiles pointer

Tile data

Tile data is transferred to VRAM at intervals to make the animation effect. See Tile data 1.

34: Collision

38: Textbar NPC

The textbar consists of Y * X tile entries.

Size Description
1 X size
1 Y size
2 * (X * Y) Tile entries

3C: Textbar bozzeye

see Textbar NPC

40: Entities

48: ??