Super Mario Land/RAM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a RAM map for Super Mario Land.

RAM Map

VRAM

Addr    Size    Description
----    ----    -----------
9806       2    Lives displayed, copy from (DA15)
9821       1    Score - Ten thousands
9822       1    Score - Thousands
9823       1    Score - Hundreds
9824       1    Score - Tens
9825       1    Score - Ones
....    ....    ....
9829       1    Coin - Tens
982A       1    Coin - Ones
....    ....    ....
982C       1    Current world
982E       1    Current stage
....    ....    ....
9831       1    Timer - Hundreds
9832       1    Timer - Tens
9833       1    Timer - Ones

WRAM

Addr    Size    Description
----    ----    -----------
C0A3       1    Lives earned or lost
C0A4       1    ? (0x39 = Game Over)
C201       1    ? Mario's Y position relative to the screen
C202       1    ? Mario's X position relative to the screen
C203       1    Mario's pose.
C207       1    Probably used in Mario's jump routine. (0x00 = Not jumping, 0x01 = Ascending, 0x02 = Descending)
C208       1    Mario's Y speed.
C20A       1    Mario is on the ground flag (0x01 = On the ground, 0x00 = In the air)
C20C       1    ? Absolute value of Mario's X speed
C20D       1    Direction Mario faces while walking. (0x20 = Left, 0x10 = Right)
DA15       1    Lives (Binary-coded decimal)
....    ....    ....
DF10       2?   Channel 1 Track Pointer?
DF12       1    Channel 1 Note Time Left
DF13       1    Channel 1 Note Duration
DF14       2    Channel 1 Note Pointer
DF19       2    Channel 1 Note Frequency
DF1B       1    Channel 1 Is Note Silenced/Finished? (0x00 = no, 0x01 = yes)
DF1E       1?   Channel 1 Note Current Time Alive
DF2X      16    Same as above for Channel 2
DF3X      16    Same as above for Channel 3
DF4X      16    Same as above for Channel 4
....    ....    ....
DFE0       1    Request a Channel 1 Sound Effect (0x00 = no request, 0x01 = jump, 0x02 = fireball, 0x03 = jump on enemy, 0x04 = gain powerup, 0x05 = coin, 0x06 = shrink, 0x07 = hit block, 0x08 = 1up, 0x09 = hit block again?, 0x0a = time count down at the end of level, 0x0b = powerup comes out, 0x0c and above = invalid)
DFE1       1    Channel 1 Sound Effect currently playing

HRAM

Addr    Size    Description
----    ----    -----------
FF99       1    Powerup Status (0x00 = small, 0x01 = growing, 0x02 = big with or without superball, 0x03 = shrinking, 0x04 = invincibility blinking)
....    ....    ....
FFA6       1    Time until respawn from death (set when Mario has fell to the bottom of the screen) 
FFB3       1    ? (0x39 = Game Over)
FFB5       1    Mario has the Superball? (0x00 = no, 0x02 = yes)
FFFA       1    Coins (Binary-coded decimal)
FFFB       1    ? (0x2B = Extra Life)

Notes

  • Binary-coded decimal (daa) - if you view it as a hex number, the count skips A through F in any given ordinal. In this way, the hex value is human readable as the "correct" (decimal) number.
  • A list of less certain addresses is available on the Talk page for further review.