User Tools


Differences

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

Link to this comparison view

Next revision
Previous revision
banjo_kazooie_gruntys_revenge:rooms [2016/10/17 08:56]
jesse created
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 | 
 +| 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 | 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 ​====
  
-^ Address ^ Header address ^ Level ^ Music ^ Ingame name ^ Room name | +==== 48: ?? ====
-| 80CF52C | 81ADCE8 | 2 | 2 | BEACHSTART | Breechull beach |+