LUNY.CO.UK

Gremlin Graphics:Wanted! Monty Mole

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...
   
TILE 0 1 2 3 4 5 6 7
BIT 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
BYTE 0 1 2
 
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 )