The Room Data
Address 0xC424 : Room Data | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Address | Offset | Bytes | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC424 |
0x000
|
0xF0 | Room layout | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Each room is made up of 0x200 tiles. This information is made up from the above 0xF0 bytes. The background can be made up from a selection of 8 different 8x8 bitmaps, the first tile being blank. Each tile only uses 3 bits per byte. So 8 tiles are stored with only 3 bytes... |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC514 |
0x0F0
|
0x04 | Attribute table | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
This table is used to detect which tile Monty is about to walk into. Each byte holds the matching attribute of the appropriate tile. This allows different tiles to be used in different ways. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | Solid Block | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | Rope | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | Killer / Water | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC518 |
0x0F4
|
0x02 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC51A |
0x0F6
|
0x01 | Room number of NORTH exit | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC51B |
0x0F7
|
0x01 | Room number of SOUTH exit | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC51C |
0x0F8
|
0x01 | Room number of WEST exit | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC51D |
0x0F9
|
0x01 | Room number of EAST exit | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC51E |
0x0FA
|
0x03 | Helper Object data | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x000 | Byte | X position of object | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x001 | Byte | Y Position of object (see notes) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x002 | Byte | Index number of object bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC521 |
0x0FD
|
0x06 | Crusher Object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x000 | Byte | X position of object | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x001 | Byte | Y Position of object (see notes) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Set both X & Y to zero if no crusher is required in room | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x002 | Byte | Lowest Y position crusher can fall | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x003 | Byte | Countdown before crusher drops | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x004 | Byte | Direction 00 - up 01-down |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x005 | Byte | Start Y position | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC527 |
0x103
|
0x0A | Unused | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC531 |
0x108
|
0x0F | Coal bitmap | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC540 |
0x115
|
0x0F | Coals | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x000 | Byte | Index (unique value) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x001 | Byte | X Position (in characters) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x002 | Byte | Y position (in characters) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00D | Byte | Index (unique value) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00E | Byte | X position (in characters) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00F | Byte | Y position (in characters) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC54F |
0x124
|
0x48 | Tile bitmap data used for drawing background | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00 | Byte | Colour attribute of background | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x01 | Byte | 8 bytes of background bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x09 | Byte | Colour attribute of tile 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x11 | Byte | 8 bytes of tile 1 bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x12 | Byte | Colour attribute of tile 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x1A | Byte | 8 bytes of tile 2 bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x1B | Byte | Colour attribute of tile 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x23 | Byte | 8 bytes of tile 3 bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x24 | Byte | Colour attribute of tile 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x2C | Byte | 8 bytes of tile 4 bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x2D | Byte | Colour attribute of tile 5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x35 | Byte | 8 bytes of tile 5 bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x36 | Byte | Colour attribute of tile 6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x3E | Byte | 8 bytes of tile 6 bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x3F | Byte | Colour attribute of tile 7 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x47 | Byte | 8 bytes of tile 7 bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0xC596 |
0x16C
|
0x78 | Killer Objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Each room can have 6 killer objects on screen. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x16C
|
0x14 | Killer Object 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x000 | Byte | Status | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Status can be as follows: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
00 | When the counter reaches zero, the object will change direction. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
01 | Home in onto Monty's position | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
02 | When the counter reaches zero the object is disabled and the index object is enabled. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
03 | Object is disabled and ignored. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x001 | Word | Address of UP bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x003 | Word | Address of DOWN bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x005 | Word | Address of LEFT bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x007 | Word | Address of RIGHT bitmap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x009 | Byte | Colour, Attribute value | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00A | Byte | Indexed of linked object. (See status) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00B | Byte | Direction | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Directions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0 | UP | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | DOWN | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | LEFT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | RIGHT | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00C | Byte | X position | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00D | Byte | Y position | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00E | Byte | Counter start value | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x00F | Byte | Animation counter | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x010 | Byte | Counter (see Status) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x011 | Byte | Velocity (in pixels) Set to zero for stationary objects. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x180
|
0x14 | Killer Object 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x194
|
0x14 | Killer Object 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x1A8
|
0x14 | Killer Object 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x1BC
|
0x14 | Killer Object 5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x1D0
|
0x14 | Killer Object 6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x1E4
|
0x14 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x1F8
|
0x07 | Sliding floor | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x000 | Byte | Y position of left hand section ( see notes ) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x001 | Byte | Start X position of left hand section ( see notes) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x002 | Byte | End position of left hand section | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x003 | Byte | Current X position of right hand section | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x004 | Byte | Y position of right hand section | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
0x005 | Byte | Current direction of movement ( 00 - Closing / 80 - Opening ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||