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 (to rom3)
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
DFE8       1    Request a Music Track (0x00 = no request, 0x01 = level clear, 0x02 = death, 0x03 = pyramid, 0x04 = underground, 0x05 = shoot-'em-up, 0x06 = chai kingdom, 0x07 = birabuto kingdom, 0x08 = muda kingdom, 0x09 = bonus game, 0x0a = walk to prize, 0x0b = boss, 0x0c = starman, 0x0d = get prize, 0x0e = failure?, 0x0f = daisy, 0x10 = game over, 0x11 = credits, 0x12 = fake daisy, 0x13 = tatanga, 0x14 and above = invalid)
DFE9       1    Music Track currently playing
DFF0       1    Request a Channel 3 Sound Effect (0x00 = no request, 0x01 = boss hit, 0x02 and above = invalid)
DFF1       1    Channel 3 Sound Effect currently playing
DFF8       1    Request a Channel 4 Sound Effect (0x00 = no request, 0x01 = nokobon explosion, 0x02 = break brick, 0x03 = fly death, 0x04 = gao fireball, 0x05 and above = invalid)
DFF9       1    Channel 4 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.