SMW Memory Map
Displaying 50 out of 3144 addresses.
View: moderated | waiting (20)
ROM Address | Length | Type | Description | Details |
---|---|---|---|---|
$0090D1 | 104 bytes | Sprite tilemap related | Tile numbers for 'MARIO START' and various similar messages. $0090EE is for the top half of Time Up. $009122 is for the bottom half of Time Up. |
|
$009139 | 98 bytes | Sprite tilemap related | YXPPCCCT properties for 'MARIO START' and various similar messages. Change $00913F from 30 to 34 and $009170 from F0 to F4 to fix the S in "Mario/Luigi Start". $009156 is for the top half of 'TIME UP". |
|
$0091AC | 1 byte | Misc. | Number of coins needed to get an 1up from the green star block. | |
$0091DB | 1 byte | ASM | Change it to D0 to switch the "Mario/Luigi Start" | |
$00922F | 33 bytes | Subroutine (JSR) | Routine that uploads the entire palette from $0703 to CGRAM. Note that it first resets $0703 and $0704 to $0000 (i.e. turns color 0 to black). This routine is called during various loading screens (Nintendo Presents, level load, overworld load, cutscene load, credits load) but not during gameplay. |
|
$009250 | 51 bytes | Subroutine (JSR) | Routine that initializes the windowing HDMA parameters. It sets the window to use HDMA channel 7 (or 1, if using SA-1 pack v1.35+) and to use $04A0 as the source. It also initializes that buffer to all $FF00 (i.e. no window is shown). This is only called on game reset. |
|
$0092AE | 2 bytes | Misc. | The scanline × 2 of the solid lava colour in the Iggy/Larry boss battle. Change it to $A8,$01 (dw $01A8) to have it begin just where the sprite lava tiles end. |
|
$009329 | 84 bytes | Pointer | 16-bit game mode pointers. Indexed by $7E:0100. | |
$009389 | 4 bytes | Coordinate | X position of the "Nintendo Presents" tiles | |
$00938D | 4 bytes | Sprite tilemap related | "Nintendo Presents" logo tilemap | |
$0093A5 | 1 byte | Coordinate | Y position of "Nintendo Presents" logo | |
$0093B0 | 1 byte | Sprite tilemap related | YXPPCCCT properties for "Nintendo Presents". | |
$0093C0 | 5 bytes | Sound effect | Code responsible for the "Nintendo Presents" logo sound effect. $0093C1 (1 byte) is the sound effect ID ($01). $0093C3 (2 bytes) is the port ($1DFC). |
|
$0093C6 | 1 byte | Timer | How long "Nintendo Presents" stays on the screen before disappearing. | |
$0093CB | 1 byte | Misc. | Blinking Nintendo Presents (0F = 0 time, 1F = 1 time, 2F = 2 times, etc) Also known as Nintendo Presents Brightness (Values use Brightness Register ($0DAE)) |
|
$009436 | 3 bytes | Misc. | Change from [AD 33 14] to [4C 17 94] to disable the circle fade in from Title screen. Use in conjunction with address $009AAD. | |
$00943B | 1 byte | Misc. | How fast the circle right before the titlescreen opens. Default value is 04. The higher the value, the faster it opens. Don't go beyond #$19. | |
$009451 | 7 bytes | Palette | Back area colours to use for each castle destruction scene (One byte per movie) | |
$009459 | 7 bytes | Palette | Palette row (in the range 00-07) used by the castle in each castle destruction scene. 1 byte per scene. | |
$009461 | 7 bytes | Stripe Image | Stripe image (index to pointers at $0084D0) to load as the background for each castle destruction scene. | |
$0094A1 | 1 byte | Music | Music Bank that is used for the ending music. 0E = Overworld Music 48 = Level Music 59 = Ending Music |
|
$0094B3 | 1 byte | Music | Boss castle destruction sequence music #1 | |
$00950B | 1 byte | Debug | DEBUG: Boss defeated scene select (30 = enable) | |
$00955F | 1 byte | Misc. | GFX File loaded for Credits font | |
$009586 | 4 bytes | Level number | Which level to use for the Yoshi's House part in the credits. 'A9 28 A0 01'. Do not change A9 and A0. 28 is the low byte of the level (Note: Level number + 24), 01 is the high byte. | |
$00968E | 32 bytes | ASM | This is the beginning of the code that is executed for game mode 10 (the black period between fadeout from the OW and Mario Start). $0096A5 is which Layer 1 tile on the overworld will prevent the "Mario Start!" from appearing if the player is on it. (Default is $56, the Yoshi's House tile.) Change $0096A6 to EA EA to make MARIO START! appear on the Yoshi's house OW tile number, or to 80 03 to make the MARIO START! never appear. |
|
$0096AE | 158 bytes | ASM | This is the code that is executed by game mode 03 (Load title). Game mode 11 (Mario Start) also uses parts of this code. The shared parts starts at $0096D5. - $0096C4: music bank used for the Title Screen. 0E = Overworld Music, 48 = Level Music, 59 = Ending Music. - $0096C7: title screen (level C7) music. - $0096CC: title screen level number + $24. - $009724: intro screen (level C5) music. - $009725: changing it to [9C FB 1D] will allow you to change the music for the intro via Lunar Magic. - $009737: Bowser scene 1 music. |
|
$00974C | 4 bytes | Subroutine (JSL) | JSL wrapper for the HexToDec routine at $009045. | |
$00980F | 2 bytes | Coordinate | 16-bit X position of Mario when he starts at the Iggy / Larry room. First byte = X lo, second byte = X hi (this byte is not recommended to change). | |
$009A16 | 1 byte | Coordinate | Y lo position of Mario at the start of the Morton/Ludwig/Roy battle. | |
$009A1F | 47 bytes | Subroutine (JSR) | Writes the Map16 data for Ludwig/Morton/Roy's boss battle room. $009A40 is what tile the lava tiles in the Morton/Ludwig/Roy battles act like (by default: 05). Only Map16 page 00 is usable. |
|
$009AAD | 3 bytes | Misc. | Change from [A9 33 85] to [4C C0 9A] to disable the circle fade in from Title screen. Use in conjunction with address $009436. | |
$009AB2 | 1 byte | Misc. | Change to [03] to make all layers appear at the same time during titlescreen load. | |
$009ACB | 76 bytes | Subroutine (JSR) | The cursor routine used in file selection, player selection, and erase file. $009AD3 - If you change this to EA EA EA, the cursor arrow will never be shown in front of the game-start menus. (It will still act as though it were there, though.) $009AE4 - SFX that comes up when you select a game at the title screen. $009AFA - SFX played when you change an option at the title screen and overworld menus. |
|
$009B1D | 2 bytes | Palette | BG Palette for the File Erase screen. Original value is $39C9. | |
$009BBC | 1 byte | Sound effect | SFX for saving the game. | |
$009BC9 | 74 bytes | Subroutine (JSL) | Save Game function. (Load Game starts around $009CEF. Last byte used in SRAM seems to be $70:0358.) | Documentation |
$009C1F | 69 bytes | Controller | Mario's movement data on Title Screen. Format: xx yy xx yy xx yy [...] $FF The XXs is the value to store to $15, except that the Select flag (#$20) is instead used to tell if the XY flag (#$40) should be masked away from $16 (if it's set, that bit is stored to $16 unchanged; if clear, that bit is masked away. All other bits are stored to $16.) The YYs is how long to keep that value there. Setting an XX to $FF ends it. |
|
$009C6A | 1 byte | ASM | Change to 80 to open save game menu without pressing a button or Title Screen Playing. | |
$009C82 | 3 bytes | ASM | Change to [EA A9 00] to remove title screen movement. Title screen will not loop. | |
$009C87 | 1 byte | ASM | Change D0 (BNE) to 80 (BRA) to never make the titlescreen loop. | |
$009C9F | 4 bytes | ASM | Change from 22 00 80 7F to EA EA EA EA to disable sprites from disappearing on the title screen when pressing a button (opening file select menu) | |
$009CA9 | 1 byte | Misc. | Display following layers: ---o4321. o = sprite layer, 4 = layer 4 (unused), 3 = layer 3 (no effect however), 2 = layer 2, 1 = layer 1. Clear the corresponding bits for these layers to not make them display on file select screen load. | |
$009CAD | 3 bytes | ASM | Change '9C 9F 0D' to 'EA EA EA', and, if you happened to have a HDMA effect in the titlescreen, it will not be disabled when you go to the File Menu. | |
$009CB1 | 1 byte | Level number | Determines the low byte of the intro level number. Subtract 0x24 for the actual low byte (by default, E9-24=C5, meaning level C5, or possibly 1C5 with Lunar Magic's Display Level Message 1 fix). Change to [00] to skip the intro level and warp to the overworld immediately. | |
$009CCB | 3 bytes | Misc. | SRAM starting addresses for each of the three save files, high byte. | |
$009CCE | 3 bytes | Misc. | SRAM starting addresses for each of the three save files, low byte. | |
$009CD4 | 2 bytes | Palette | BG Palette for File and Player Select screens. Original value is $7393. | |
$009CD7 | 4 bytes | Sprite tilemap related | Y displacement for tiles in the first shared GFX routine ($019CF3). | |
$009CDB | 24 bytes | Sprite tilemap related | Properties for tiles in the first shared GFX routine ($019CF3). It's indexed by the value of $05 times 4. | |