User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
banjo_kazooie_gruntys_revenge:rooms [2016/10/17 22:57]
jesse [List of Rooms]
banjo_kazooie_gruntys_revenge:rooms [2025/10/18 21:21] (current)
Line 1: Line 1:
-====== Rooms ======+======== Rooms ======== 
 Every data in a room block is uncompressed except for the tile data. Every data in a room block is uncompressed except for the tile data.
  
-==== List of Rooms =====+===== Room index ===== 
 + 
 +The lookup table for each room starts at 0x80CF4EC. Each entry is 8 bytes long. 
 + 
 +''​[<​color darkred>​PP PP PP PP</​color>​] [<color darkgreen>​LL LL</​color>​] [<color darkblue>​MM MM</​color>​]''​ 
 + 
 +| <color darkred>​P</​color>​ | Absolute pointer to the level header | 
 +| <color darkgreen>​L</​color>​ | Level index (ex: 2 = Breachull beach) |  
 +| <color darkblue>​M</​color>​ | 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 | ^ ID ^ Address ^ Header address ^ Level ^ Music ^ Ingame name ^ Room name |
Line 12: Line 25:
 | 5 | 80CF514 | 81748A8 | 1 | 3 | UPPERFARM |  | | 5 | 80CF514 | 81748A8 | 1 | 3 | UPPERFARM |  |
 | 6 | 80CF51C | 8199534 | FF | A | MUMBOHUT | Mumbo'​s hut | | 6 | 80CF51C | 8199534 | FF | A | MUMBOHUT | Mumbo'​s hut |
-| 7 | 80CF524 | 81A62D4 | 0 | 4 | HONEYB | |+| 7 | 80CF524 | 81A62D4 | 0 | 4 | HONEYB | Honey B's hive |
 | 8 | 80CF52C | 81ADCE8 | 2 | 2 | BEACHSTART | Breechull beach | | 8 | 80CF52C | 81ADCE8 | 2 | 2 | BEACHSTART | Breechull beach |
 | 9 | 80CF534 | 81E205C | 2 | C | UNDERCORAL |  | | 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 | Tiledata 1 count |
 +| 0x02 | 2 | Tileset 1 count |
 +| 0x04 | 2 | Tiledata 2 count |
 +| 0x06 | 2 | Tileset 2 count |
 +| 0x08 | 2 | Amount of layers on |
 +| 0x0A | 2 | Tilemap X length |
 +| 0x0C | 2 | Tilemap Y length |
 +| 0x0E | 1 |  |
 +| 0x0F | 1 | Compression method used (0 = no compression,​ 1 = LZ77, 2 = huff) |
 +| 0x10 | 4 |  |
 +| 0x14 | 1 | Layer 1 Tileset (00 = set 1, 01 = set 2) |
 +| 0x15 | 1 | Layer 2 Tileset (00 = set 1, 01 = set 2) |
 +| 0x16 | 1 | Layer 3 Tileset (00 = set 1, 01 = set 2) |
 +| 0x17 | 1 | Layer 4 Tileset (00 = set 1, 01 = set 2) |
 +| 0x18 | 4 | Background palette pointer |
 +| 0x1C | 4 | Tiledata 1 pointer |
 +| 0x20 | 4 | Tileset 1 pointer |
 +| 0x24 | 4 | Tiledata 2 pointer |
 +| 0x28 | 4 | Tileset 2 pointer |
 +| 0x2C | 4 | Tile animations 1 pointer |
 +| 0x30 | 4 | Tile animations 2 pointer |
 +| 0x34 | 4 | Collision pointer |
 +| 0x38 | 4 | Textbar NPC |
 +| 0x3C | 4 | Textbar bozzeye |
 +| 0x40 | 4 | Entities pointer |
 +| 0x44 | 4 | Sprite palette pointer |
 +| 0x48 | 4 | ?? pointer |
 +| 0x4C | 4 | Tilemap layer 1 pointer |
 +| 0x50 | 4 | Tilemap layer 2 pointer |
 +| 0x54 | 4 | Tilemap layer 3 pointer |
 +| 0x58 | 4 | Tilemap layer 4 pointer |
 +| 0x5C | 1 | Layer 1 Stationary (0 = not stationary, 1 = stationary) |
 +| 0x5D | 1 | Layer 2 Stationary (0 = not stationary, 1 = stationary) |
 +| 0x5E | 1 | Layer 3 Stationary (0 = not stationary, 1 = stationary) |
 +| 0x5F | 1 | Layer 4 Stationary (0 = not stationary, 1 = stationary) |
 +| 0x60 | 4 |  |
 +
 +===== Room data =====
 +
 +==== 20: Tileset 1 ====
 +
 +Each tile is a collection of 16 blocks of 8x8 tiledata. For each block entry is 2 bytes long.
 +
 +''​[<​color darkred><​sub>​PP PP</​sub></​color>​] [<color darkgreen><​sub>​X</​sub></​color>​] [<color darkblue><​sub>​Y</​sub></​color>​] [<color purple><​sub>​TTTTTTTTTT</​sub></​color>​]''​
 +
 +| <color darkred>​P</​color>​ | The palette of the block|
 +| <color darkgreen>​X</​color>​ | X mirror boolean | 
 +| <color darkblue>​Y</​color>​ | Y mirror boolean |
 +| <color purple>​T</​color>​ | The block of tiledata it uses. |
 +
 +==== 28: Tileset 2 ====
 +
 +See Tileset 1
 +
 +==== 2C: Tile animations ====
 +
 +Tile animations store its own tiledata. In game the animated tiledata is first put in VRAM and then the other tile data.
 +
 +Block structure
 +^ Size ^ Description ^
 +| 4 | Number of tile animations | 
 +| 8 * n | Tile animation index |
 +| 16 * n | Tiledata | 
 +
 +=== Tile animation index ===
 +
 +Each entry is 8 bytes long.
 +
 +''​[<​color darkred>​FF FF</​color>​] [<color darkgreen>​SS SS</​color>​] [<color darkblue>​PP PP PP PP</​color>​]''​
 +
 +| <color darkred>​F</​color>​ | Number of frames |
 +| <color darkgreen>​S</​color>​ | Frames per second |
 +| <color darkblue>​P</​color>​ | tiledata pointer |
 +
 +=== Tiledata ===
 +
 +Each entry is 1 block 8x8 of tiledata.
 +See Tileset 1
 +
 +==== 34: Collision ​ ====
 +
 +==== 38: Textbar NPC ====
 +
 +==== 3C: Textbar bozzeye ====
 +
 +see Textbar NPC
 +
 +==== 40: Entities ====
 +
 +==== 48: ?? ====