View Page Source

Back to Page
Revision 11 (current)
Edited by slamo on 9/2/2022 4:03 PM
!! Tile data

! Tile function calculation procedure

All memory addresses here are relative to the System Bus.

* Tile ID data starts at 0xC1A0 - each row is 78 (0x4E) tiles wide, and each tile takes up one byte.

* If the tile ID is greater than the one-byte value at 0xD6F7, it's automatically considered a generic passable tile.

* The start of the tile function table is a two-byte value at 0xD5F5 and increases in two-byte steps. For example, if the table starts at 0x7574 and the tile ID is 0x00, its function is stored at 0x7574, tile ID 0x01's function is at 0x7576, etc.

* The function corresponds to the location of the code that is called to handle this tile.

! Tile function info

||Function (hex)||Description||
|07DB|Passable?|
|69CF|Passable, cannot be roped through|
|69D7|Passable|
|69F6|Partially solid (sand)|
|69FC|Partially solid (grass)|
|6A02|Partially solid (sand)|
|6A08|Partially solid (sand)|
|6A0E|Partially solid (sand)|
|6A44|Partially solid (right bracket)|
|6A4A|Partially solid (left bracket)|
|6B14|Partially solid (branch)|
|6B1A|Partially solid (foliage)|
|6B1F|Partially solid (branch)|
|6B25|Partially solid (branch)|
|6B2B|Partially solid (branch)|
|6B30|Partially solid (branch)|
|6B35|Partially solid (branch)|
|6B3A|Partially solid (branch)|
|6B44|Partially solid (branch)|
|6B4E|Partially solid (branch)|
|6B60|Partially solid (branch)|
|6B66|Partially solid (branch)|
|6B6C|Partially solid (branch)|
|6C22|Breakable block|
|6C63|Turns to object?|
|6CE8|Turns to object?|
|6D72|Collectible (time)|
|6D85|Underwater collectible (1-up)|
|6D8D|Collectible (1-up)|
|6DAB|Underwater collectible (pellet)|
|6DB3|Collectible (pellet)|
|6EA1|Solid|
|6EA8|Passable, exit level on floor contact|
|6EB9|Death (partial block)|
|6EC8|Death (partial block)|
|6ECD|Death (partial block)|
|6ED2|Death (partial block)|
|6ED7|Death (partial block)|
|6F1E|Death|
|6F44|Death|
|6FD6|Solid|
|7091|Partially solid (palm)|
|7096|Partially solid (palm)|
|709B|Partially solid (palm)|
|7171|Partially solid (bamboo)|
|7177|Partially solid (bamboo)|
|717D|Partially solid (bamboo)|
|7181|Partially solid (half)|
|7191|Water|
|719C|Water (lowering/rising)|
|7201|Water (half)|
|7210|Water|
|7239|Water, partially solid|
|723F|Water, partially solid|
|7245|Water, partially solid|
|724B|Water, partially solid|
|7251|Water, partially solid|
|7257|Water, partially solid|
|725D|Water, partially solid|
|7263|Water, partially solid|
|7269|Partially solid (right sand)|
|726F|Partially solid (left sand)|
|7275|Partially solid (slope)|
|727B|Partially solid (slope)|
|7281|Partially solid (slope)|
|7286|Partially solid (slope)|
|72AF|Partially solid (hill)|
|72B4|Partially solid (hill)|
|72B9|Partially solid (hill)|
|72C1|Partially solid (hill)|
|72C7|Partially solid (hill)|
|72CD|Partially solid (hill)|
|72D6|Partially solid|
|7830|Partially solid (sand)|
|7836|Water, partially solid|
|783C|Water, partially solid|
|79D2|Death (partial block)|
|79D8|Death (partial block)|
|79DE|Partially solid (foliage)|
|79E4|Partially solid (foliage)|
|79EA|Partially solid (foliage)|
|79ED|Partially solid (bridge)|
|79F3|Partially solid (bridge)|
|8002|Partially solid (grass)|
|8003|Partially solid (grass)|
|8004|Partially solid (branch)|
|8005|Partially solid (branch)|
|8006|Partially solid (branch)|
|8007|Partially solid (branch)|
|8008|Partially solid (branch)|
|8009|Partially solid (vine)|
|800A|Partially solid (branch)|
|800B|Partially solid (branch)|
|800C|Partially solid (grass)|
|800D|Partially solid (grass)|
|800E|Partially solid (foliage)|
|800F|Partially solid (branch)|
|8010|Partially solid (branch)|
|8011|Partially solid (foliage)|
|8012|Partially solid (branch)|
|8013|Partially solid (foliage)|
|8014|Partially solid (branch)|
|8029|Partially solid (palm)|
|802A|Partially solid (palm)|
|802B|Partially solid (palm)|
|802C|Partially solid (palm)|
|802D|Partially solid (palm)|
|802E|Partially solid (palm)|
|802F|Partially solid (palm)|
|8030|Partially solid (palm)|
|8108|Partially solid (foliage)|
|813C|Partially solid (foliage)|
|818F|Partially solid (foliage)|
|819F|Partially solid (vine)|
|824F|Partially solid (foliage)|
|82BF|Partially solid (grass)|
|82DF|Partially solid (grass)|

!! Object data

Object data starts at 0xD600 in the system bus, with each object taking up 256 bytes. The first object is always the player, and then the second object is at 0xD700, the third at 0xD800, etc for a total of 10 objects.

||Relative address (hex)||# of bytes||Description||
|00|1|Object type|
|01|2|Y momentum|
|04|2|Y position|
|06|2|X momentum|
|09|2|X position|
|1D|1|Health (if 0xFF, it's indestructible)|