Language…
16 users online:  AmperSam, AndersonSMW, Boosius, Daniel_mi_bb_fiu_fiu, EduX, fsvgm777, Mariotag1, MellowYouth, monkey03297, overdrive, Purps, Shiki_Makiro, SMoki, TheXander, Triple P, Zoulzx7 - Guests: 77 - Bots: 73
Users: 68,954 (2,366 active)
Latest user: Alma

SMW Memory Map

Displaying 50 out of 840 addresses.

View: moderated | waiting (20)

Filter

Link
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 16
  • 17
RAM Address Length Type Description Details
$7E0DAC 1 byte I/O Controller 1 button disable flags ($4218), one frame. If a bit is set here, that bit will be disabled in $18/$0DA8 (but not $17).
Format: axlr----.
a = A, x = X, l = L, r = R, 0 = null/unused.
$7E0DAD 1 byte I/O Controller 2 button disable flags ($421A), one frame. If a bit is set here, that bit will be disabled in $18/$0DA9 (but not $17).
Format: axlr----.
a = A, x = X, l = L, r = R, 0 = null/unused.
$7E0DAE 1 byte Hardware mirror Handles brightness and force blank. Format: f---bbbb. f = force blank flag, --- = unused bits, bbbb = brightness setting. Mirror of SNES register $2100.
$7E0DAF 1 byte Misc. Mosaic direction. #$00 = shrinking mosaic; #$01 = growing mosaic.
$7E0DB0 1 byte Hardware mirror Current mosaic pixel size on level load. Mirror of SNES register $2106, though bits 0 and 1 are always set ($2106 = $7E:0DB0 | #$03).
$7E0DB1 1 byte Timer Is used to keep a mode active. If the respective value is positive, the game mode doesn't change. This is primarily used in the fading routines (example: from overworld to level and vice versa).
$7E0DB2 1 byte Flag Two player game flag. #$00 = No; #$01 = Yes.
$7E0DB3 1 byte Player Which character is in play. #$00 = Mario; #$01 = Luigi. If you prefer Luigi to be #$04, use $7E:0DD6.
$7E0DB4 1 byte Player Mario's lives. Note that this is only used in two player games, you'll want $7E:0DBE in 99% of the cases.
$7E0DB5 1 byte Player Luigi's lives. Note that this is only used in two player games, you'll want $7E:0DBE in 99% of the cases.
$7E0DB6 1 byte Player Mario's coins. Note that this is only used in two player games, you'll want $7E:0DBF in 99% of the cases.
$7E0DB7 1 byte Player Luigi's coins. Note that this is only used in two player games, you'll want $7E:0DBF in 99% of the cases.
$7E0DB8 1 byte Player Mario's powerup/status. Note that this is only used in two player games, you'll want $7E:0019 in 99% of the cases.
$7E0DB9 1 byte Player Luigi's powerup/status. Note that this is only used in two player games, you'll want $7E:0019 in 99% of the cases.
$7E0DBA 1 byte Yoshi Mario's Yoshi color. #$04=yellow; #$06=blue; #$08=red; #$0A=green
$7E0DBB 1 byte Yoshi Luigi's Yoshi color. #$04=yellow; #$06=blue; #$08=red; #$0A=green
$7E0DBC 1 byte Player Item in Mario's item box. #$00 = None; #$01 = Mushroom; #$02 = Fire Flower; #$03 = Star; #$04 = Feather. Note that you'll want $7E:0DC2 in most cases.
$7E0DBD 1 byte Player Item in Luigi's item box. #$00 = None; #$01 = Mushroom; #$02 = Fire Flower; #$03 = Star; #$04 = Feather. Note that you'll want $7E:0DC2 in most cases.
$7E0DBE 1 byte Player Current player lives, minus one (#$04 here means that the player has 5 lives).
$7E0DBF 1 byte Player Current player coin count.
$7E0DC0 1 byte Counter Green star block coin counter. Starts at 30 (#$1E) at the beginning of a level, and decrements for each coin that is collected. Adjusts content of green star block when it hits zero. (A 1-Up mushroom comes out, instead of a spinning coin.)
It is also used in Chocolate Island 2 to count how many coins have been collected since the start of the level, and determine what sublevel data should be loaded.
$7E0DC1 1 byte Yoshi Player can carry Yoshi over levels flag. #$00 = can't carry over levels; #$01 = can carry over levels.
$7E0DC2 1 byte Player Item in current player's item box. #$00 = None; #$01 = Mushroom; #$02 = Fire Flower; #$03 = Star; #$04 = Feather.
$7E0DC3 4 bytes Empty Empty. Cleared on reset and titlescreen load. $7E:0DC3 is also cleared when selecting how many players to use, but this can be disabled with no known side effects by setting $00:9E48 to [80 01 EA].
$7E0DC7 2 bytes Player Overworld X position where Mario should be going to. Is used by overworld path tiles to indicate Mario's direction. Updated as soon as Mario starts moving - zero otherwise.
$7E0DC9 2 bytes Player Overworld Y position where Mario should be going to. Is used by overworld path tiles to indicate Mario's direction. Updated as soon as Mario starts moving - zero otherwise.
$7E0DCB 2 bytes Player Overworld X position where Luigi should be going to. Is used by overworld path tiles to indicate Luigi's direction. Updated as soon as Luigi starts moving - zero otherwise.
$7E0DCD 2 bytes Player Overworld Y position where Luigi should be going to. Is used by overworld path tiles to indicate Luigi's direction. Updated as soon as Luigi starts moving - zero otherwise.
$7E0DCF 2 bytes Player Player X speed on the overworld. Added with $7E:13D5, which does happen to be zero all the time.
$7E0DD1 2 bytes Player Player Y speed on the overworld. Added with $7E:13D7, which is zero most of the time.
$7E0DD3 1 byte Overworld Player direction. #$00 = up; #$02 = down; #$04 = left; #$06 = right.
$7E0DD4 1 byte Should be 00 This address is effectively the high byte of $0DD3 on the overworld and should not be touched there, though in levels it is unused. It is also referenced once as the low byte of $0DD5, though its value isn't used there.
Cleared on reset and titlescreen load, and when Mario starts walking on an overworld path.
$7E0DD5 1 byte Misc. Used to indicate how a level has been exited, and hence what events to activate on the overworld. Valid Values
$7E0DD6 1 byte Player Which character is in play. Used on the overworld. The value of this address is actually $7E:0DB3 * 4.
#$00 = Mario; #$04 = Luigi.
$7E0DD7 1 byte Should be 00 An address that is expected to be #$00 throughout the entire game. $7E:0DD6 (current player) is sometimes used in 16bit mode, so using this address for different purposes is a bad idea.
$7E0DD8 1 byte Flag Used to tell if the game is currently switching between Mario and Luigi or not.
#$00 = Not switching between Mario and Luigi.
#$01 = Switching between Mario and Luigi, during the fade-out.
$7E0DD9 1 byte Empty Empty. Cleared on reset and titlescreen load.
$7E0DDA 1 byte Misc. Back-up of the music register. Gets its value from the level music table at $05:84DB.
Bit 7 of this address is set when the player has a star powerup or presses a P-switch; when this is cleared again, the music ends.
This address is also set to #$FF when the level ends, either by beating it or by dying.
Bit 6 is similar but is used to not reupload all music. This is used when changing from the Mario start screen to the level game mode.
$7E0DDB 3 bytes Empty Empty. Cleared on reset and titlescreen load.
$7E0DDE 1 byte Misc. Which files to delete on the erase file screen. Format: xxxxx123. It is also used as an overworld sprite index.
$7E0DDF 1 byte Sprites Starting OAM index for overworld sprites. Appears to be used only by the cloud sprites.
$7E0DE0 5 bytes Sprites Used for the overworld cloud sprites. This table is used in such a way that clouds check each other's 16-bit Y positions. By doing this, they can maintain their speed, making it the same for all clouds on-screen.
$7E0DE5 16 bytes Sprites Overworld sprite number. Valid Values
$7E0DF5 16 bytes Sprites Miscellaneous overworld sprite table.
$7E0E05 16 bytes Sprites Miscellaneous overworld sprite table.
$7E0E15 16 bytes Sprites Miscellaneous overworld sprite table.
$7E0E25 16 bytes Sprites Miscellaneous overworld sprite table.
$7E0E35 16 bytes Sprites Overworld sprite X position, low byte.
$7E0E45 16 bytes Sprites Overworld sprite Y position, low byte.
$7E0E55 16 bytes Sprites Overworld sprite Z position, low byte; distance that the sprite is from the ground.
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 16
  • 17