SMW Memory Map
Displaying 25 out of 840 addresses.
View: moderated | waiting (19)
RAM Address | Length | Type | Description | Details |
---|---|---|---|---|
$7E0000 | 16 bytes | Misc. | Scratch RAM, is and can be used for a big number of purposes. The general purpose is temporarily preserving a value for later use in a routine. Of note is the following address, used in LM ASM hacks: $7E:0003 (16-bit) - Block number from LM Map16 editor. Also used in the custom Map16 tile change routine. |
|
$7E0010 | 1 byte | Flag | If the value in it is not zero, run the actual game; otherwise, loop forever. It's set to a non-zero value during NMI, and it's set to zero after the game mode has been run, so that the game runs exactly once a frame - one NMI trigger per frame. | |
$7E0011 | 1 byte | Flag | Used to distinguish IRQ #1 from IRQ #2's code. (Inside the Morton/Ludwig/Roy room, where IRQ is used twice, although it can be used in other areas that run IRQ as well.) #$00 = IRQ #1; #$01 = IRQ #2. | |
$7E0012 | 1 byte | Graphics | Stripe image loader - value must be divisible by 3. | Valid Values |
$7E0013 | 1 byte | Counter | "True" frame counter. Increments once per frame, except when the game is lagging. Note that $7E:0014 is better suited for most purposes. | |
$7E0014 | 1 byte | Counter | "Effective" frame counter. Stops when, for example, RAM addresses such as $7E:009D are not zero (lock sprite flag, usually indicates the player is dying, grabbing a powerup, or something similar). Inside sprite code, this address is often preferred over $7E:0013, especially in graphics routines, as graphics will not be updated when the player dies if this address is used as an index to the tilemap. | |
$7E0015 | 1 byte | I/O | Controller buttons currently held down. Format: byetUDLR. b = A or B; y = X or Y; e = select; t = Start; U = up; D = down; L = left, R = right. |
|
$7E0016 | 1 byte | I/O | Controller buttons newly pressed this frame. Format: byetUDLR. b = B only; y = X or Y; e = select; t = Start; U = up; D = down; L = left, R = right. |
|
$7E0017 | 1 byte | I/O | Controller buttons currently held down. Format: axlr----. a = A; x = X; l = L; r = R, - = null/unused. |
|
$7E0018 | 1 byte | I/O | Controller buttons newly pressed this frame. Format: axlr----. a = A; x = X; l = L; r = R, - = null/unused. |
|
$7E0019 | 1 byte | Player | Current player powerup status. | Valid Values |
$7E001A | 2 bytes | Hardware mirror | Layer 1 X position, current frame. Mirror of SNES register $210D. For autoscrolling Layer 1, see $1462 instead. |
|
$7E001C | 2 bytes | Hardware mirror | Layer 1 Y position, current frame. Mirror of SNES register $210E. For autoscrolling Layer 1, see $1464 instead. |
|
$7E001E | 2 bytes | Hardware mirror | Layer 2 X position, current frame. Mirror of SNES register $210F. For autoscrolling Layer 2, see $1466 instead. |
|
$7E0020 | 2 bytes | Hardware mirror | Layer 2 Y position, current frame. Mirror of SNES register $2110. For autoscrolling Layer 2, see $1468 instead. |
|
$7E0022 | 2 bytes | Hardware mirror | Layer 3 X position. Mirror of SNES register $2111. | |
$7E0024 | 2 bytes | Hardware mirror | Layer 3 Y position. Mirror of SNES register $2112. | |
$7E0026 | 2 bytes | Misc. | If Layer 3 tides are disabled, this is the X offset of Layer 2 from Layer 1, calculated as $1466 - $1462. If Layer 3 tides are enabled, it is instead the X offset of Layer 3 from Layer 1, calculated as $22 - $1462. Used for handling interaction with Layer 2/3. |
|
$7E0028 | 2 bytes | Misc. | If Layer 3 tides are disabled, this is the Y offset of Layer 2 from Layer 1, calculated as $1468 - $1464. If Layer 3 tides are enabled, it is instead the Y offset of Layer 3 from Layer 1, calculated as $24 - $1464. Used for handling interaction with Layer 2/3. |
|
$7E002A | 2 bytes | Hardware mirror | Mode 7 Center X position. Mirror of SNES register $211F, + #$0080. | |
$7E002C | 2 bytes | Hardware mirror | Mode 7 Center Y position. Mirror of SNES register $2120, + #$0080. | |
$7E002E | 2 bytes | Hardware mirror | Mode 7 matrix parameter A. Mirror of SNES register $211B. | |
$7E0030 | 2 bytes | Hardware mirror | Mode 7 matrix parameter B. Mirror of SNES register $211C. | |
$7E0032 | 2 bytes | Hardware mirror | Mode 7 matrix parameter C. Mirror of SNES register $211D. | |
$7E0034 | 2 bytes | Hardware mirror | Mode 7 matrix parameter D. Mirror of SNES register $211E. | |