Banner
Views: 789,916,730
Time:
4 users online: goldenrules, Madeline, Maxodex,  Ninja Boy - Guests: 27 - Bots: 180 Users: 41,241 (1,500 active)
Latest: PauloArkantus
Tip: Create a thread for your hack in the Works in Progress once you have enough screenshots/videos to show.Not logged in.
SMW Memory Map
Displaying 500 out of 2956 addresses. Show Waiting Addresses (3)
Filter
Link
Address
Hexadecimal number for a partial address. 6-digit number for a full address. Use - to denote a range. Use , to list more than one address.
Length
Type
Enable JavaScript to use multiple regions.
Region
Hold control to select multiple. Check "All" to select all at once.

Type
Description
Separate each individual keyword with spaces. Surround a phrase with quotes to look for the exact phrase, or with / to use a PCRE regular expression. Prepend with - to exclude a keyword or phrase, with + to require a whole word or phrase, or with -+ to exclude a whole word or phrase. ? matches any character, * matches any amount of characters.
 
Pages: « 1 2 3 4 5 6 » Per Page: 25 50 75 100 150 500 All
ROM Address Length Type Description Details
$008000 39 bytes ASM This is the starting address of SMW. This takes care of basic initialization such as disabling IRQ, HDMA, DMA, clearing the SPC ports, enabling F-blank, disabling emulation mode, disabling decimal mode, initializing the direct page, and setting up the stack.
$008027 43 bytes ASM This is code is responsible for uploading the OAM clear routine to $7F8000. The uploaded routine is essentially an unrolled loop which stores #$F0 to all of the OAM mirror($0200) Y positions.
$008052 25 bytes ASM This is the main part of the SMW initialization routine. SPC engine upload, sample upload, OAM setup, windowing setup, and RAM clearing all happens here.
$00806B 14 bytes ASM This is the main game loop of SMW. It is used to wait for V-blank to complete before executing the code of the next frame. One of the frame counters ($13) is also incremented here.
$00810E 15 bytes Subroutine (JSR) OW Music uploader.
$008134 37 bytes Subroutine (JSR) Uploads level music bank.
$008159 17 bytes Subroutine (JSR) Credit music uploader.
$008179 49 bytes ASM Handles transfers to and from the SPC700 (I/O). Changing all values to [EA] (NOP) or jumping over the code effectively mutes all sound.
$008293 1 byte Misc. How many scanlines the status bar uses during a regular level.
$00835D 1 byte Layer 3 How many scanlines the status bar uses during the battles with Bowser, Ludwig, and Reznor.
$008370 1 byte Layer 3 How many scanlines the status bar and ceiling use during the battles with Morton and Roy.
$0084C8 8 bytes Subroutine (JSL) Wrapper for the stripe image uploader (pointer lies in $12). Because it upload tiles, it must run in either f- or v-blank (e.g. in NMI).
$0084D0 258 bytes Stripe Image Stripe image pointer table. Each 24-bit pointer here corresponds to a value of $12, but only multiples of 3 are used. (The first pointer is for value 00, the second is for value 03, the third for 06, etc.)
$0085FA 86 bytes Subroutine (JSR) Fills the entire layer 3 tilemap with tile 0x0FC (transparent tile) i.e. the code "empties" it. Also wipes the OAM before returning.
$008650 119 bytes Subroutine (JSR) This is the routine that polls the controller and updates $15, $16, $17, $18.
$0086A0 (x8A0) - Change to [9C A0 0D AD A0 0D A2 00] to cause both player 1 & 2 to be controlled by controller 1.
$0086DF 27 bytes Subroutine (JSL) Pointer subroutine: Jump to a 2-byte pointer, the position of the pointer used is "Position after the JSL + 1 + (A*2)". The subroutine should always be accessed by a JSL.
$0086FA 36 bytes Subroutine (JSL) Pointer subroutine: Jump to a 3-byte pointer, the position of the pointer used is "Position after the JSL + 1 + (A*3)". The subroutine should always be accessed by a JSL.
$00871E 143 bytes Stripe Image Stripe Image Uploader. Uses $00-$02 as a 24-bit pointer to tile data. See this thread how the stripe image format works. Must be run during a blank, usually NMI.

To call from a custom routine, do this:
- Store stripe image pointer (24-bit) to $00-$02
- Push 24-bit return address (bank -> mid -> lo)
- PHB : LDA #$00 : PHA : PLB
- PEA $84CD
- JSL $00871E
$0087AD 617 bytes Subroutine (JSL) This routine is the DMA routine in charge of updating layers one and two as needed. This is controlled by the addresses $1BE4 and $1CE6 when they are a non-zero value.
$008A4E 43 bytes Subroutine (JSR) Clear RAM subroutine. This is part of the reset routine.
$008A79 59 bytes ASM The routine that sets up certain VRAM-related registers in normal levels.
- $008A80: Default value for $2107 [23].
- $008A85: Default value for $2108 [33].
- $008A8A: Default value for $2109 [53].
- $008A8F: Default value for $210B [00].
- $008A94: Default value for $210C [04].
- $008AAB: Default value for $2130 [02], although it's actually stored to the mirror here (i.e. $44).
$210A is never set, since it is only ever used in Mode 0.
$008C59 40 bytes Layer 3 Tile array for numbers in bonus star counter.
$008C81 126 bytes Layer 3 Default status bar tiles. Format for each 8x8 tile:
TTTTTTTT YXPCCCTT

*$008C81-$008C88: top line of status bar (4 top tiles of the item box)
*$008C89-$008CC0: Second line of status bar
*$008CC1-$008CF6: Third line of status bar
*$008CF7-$008CFE: bottom line of status bar (4 bottom tiles of item box)
$008D8B 1 byte Timer Timer speed (USE WITH $008E2E)
$008D90 28 bytes Misc. These four tables indicate the DMA settings and the source address to use for the status bar tiles (the ones that are uploaded at the very beginning of the level). The tables get stored in the order of $43x0-$43x6.
$008DAC 59 bytes Layer 3 The routine that draws the status bar onto the screen. It uses DMA to write the Layer 3 tiles to VRAM.
$008DF5 5 bytes Layer 3 The tiles that make up Luigi's name in the status bar.
$008DFA 4 bytes Sprite tilemap related Tilemap of reserve item. First byte is mushroom, second is flower, third is star, fourth is feather.
$008DFE 4 bytes Sprite tilemap related YXPPCCCT of stars in the item box. It cycles between the four entries every second frame.
$008E02 4 bytes Sprite tilemap related YXPPCCCT data for reserve item. First byte is mushroom, second is flower, third is bypassed ($008DFF), fourth is feather.
$008E06 20 bytes Layer 3 Bonus star counter tilemap - 2 bytes for each number. Every first byte is for the upper tile, every second byte for the bottom tile.
$008E1A 480 bytes Layer 3 The routine that updates the values of all the addresses used for the status bar ($0EF9-$0F2F).
$008E28 - Change this address to AD to disable the timer.
$008E2E - Timer speed (USE WITH $008D8B)
$008E5C - Time is Running Out SFX. Change from FF to 00 to stop the music from speeding up when time reaches 99.
$008E6B - [22 06 F6 00] Change to [EA EA EA EA] to not kill Mario when the timer reaches zero. The timer will count down normally and stop at zero, but Mario will not die
$008EDB - Change this and/or $008F09 from 20 12 90 to EA EA EA to disable writing the score to the status bar when playing as Mario and/or Luigi, respectively. Useful if you want to place another counter in place of the score using Smallhacker's Status Bar Editor.
$008F2C - How many coins you need to get an 1up (USE WITH $008F37)
$008F2F - [EE E4 18] Change to [EA EA EA] to not gain a life after collecting enough for one.
$008F37 - Number of coins to subtract from the counter when you gain enough for a 1up (Default: $64 (100). Change to [01] to create a coin wallet effect - use with $008F2F.
$008F41 - (Use with $008F45) Maximum life limit, minus one. Warning: Changing this to anything higher than 0x7E (127 lives) will remove the life limit entirely! Also, if you have more than
99 lives, the life counter will appear slightly glitched.
$008F45 - (Use with $008F41) Maximum life limit, minus one. Note that if you have more than 99 lives, the life counter will appear slightly glitched.
$008F62 - Number of bonus stars required to enter bonus game
$008F67 - [8D 25 14] Change to EA EA EA to disable entering bonus game when player has 100 bonus stars.
$008F6F - Amount of bonus stars that will be subtracted when 100 bonus stars are collected. Change to [01] to make 99 the maximum amount of bonus stars you can get - to create a bonus star wallet effect, use with $008F67.
$008F7E - Writes coins to status bar. Changing to [EA EA EA EA EA EA] will disable the coins from being written to the status bar.
$008F95 - [09] The X position of the small bonus star counter in the status bar.
$008FC5 - [20 79 90] Change to EA EA EA to disable the item GFX in the status bar
$008FCE - Length of "LUIGI" text (Status bar)
$008FE7 - [FC](blank tile) Tile used on the status bar when there's no Yoshi coin in that spot.
$008FED - [2E](coin tile) Tile used on the status bar when there is a Yoshi coin in that spot. Change to [FC](blank tile) to visually disable collected Yoshi Coins.
$008F1D 30 bytes Misc. Routine that handles actually increasing the player's coin count and giving a life from 100 coins, controlled by RAM address $7E13CC.
$008FDC 1 byte Layer 3 [05] If the player has collected at least this number of Dragon Coins, the status bar will display $008FE0 Dragon Coins instead (none by default).
$008FE0 1 byte Layer 3 [00] Number of Dragon Coins to display in the status bar, if the player has collected at least 5.
$008FF0 2 bytes Layer 3 Location of the first Dragon Coin tile in the status bar. See this diagram for possible values.
$009012 51 bytes Subroutine (JSR) Subroutine to write a player's score into status bar.
Call with Y = #$00, X as the position to write to on the status bar (standard is #$14), and $00-$03 as the score to write (in hexadecimal). Note that this routine does not remove leading 0s; that is handled at $008EDE and $008F0C.
$009045 12 bytes Subroutine (JSR) Hexadecimal to Decimal conversion subroutine.
"A" now has decimal 1s digit of original "A".
"X" now has decimal 10s and possibly 100s digit of original "A".
(Note: It ends with an RTS. You can JSL to $00974C if you want, though.)
$009053 3 bytes Layer 3 Change to EAEAEA to get rid of the small bonus stars. Use in conjunction with address $00:9068
$009068 3 bytes Layer 3 Change to EAEAEA to get rid of the small bonus stars. Use in conjunction with address $00:9053
$009079 88 bytes Layer 3 Subroutine that draws the power up item to the item box on the status bar during levels.
$0090AE is the X position of the Item Box item.
$0090B3 is the Y position of the Item Box item.
Note: Those two positions are only graphical. It won't change where the item drops from when select is pressed.
$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"
$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".
$0093C1 1 byte Sound effect "Nintendo Presents" logo sound effect
$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 is music Bank Used for the Title Screen. 0E = Overworld Music, 48 = Level Music, 59 = Ending Music.
$0096C7 is the title screen (level C7) music.
$0096CC is the title screen level number+$24.
$009724 is the intro screen (level C5) music.
Changing $009725 to "9C FB 1D" will allow you to change the music for the intro via Lunar Magic.
$009737 is the Bowser scene 1 music.
$00974C 4 bytes Subroutine (JSL) Calls the hex->dec subroutine and ends in an RTL.
$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.)
The save routine is documented in depth here.
$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.
$009D30 8 bytes Subroutine (JSR) Subroutine used for changing the background color on the titlescreen, when entering/exiting the file erase menu. To use, load the color (16-bit) to A and a CGADDSUB value (for half-color math) to Y first.

Changing the first three bytes from [8D 01 07] to [EA EA EA] will disable the titlescreen back area color from changing.
$009D6D 1 byte Misc. How many exits you need to get the *96 icon.
$009D71 1 byte Misc. First tile of the *96 icon.
$009D73 1 byte Misc. Second tile of the *96 icon.
$009D8B 1 byte Palette Palette for "number of levels beaten" in the Title Screen's Game Selection Menu (stored in YXPCCCTT format, but kind of screwy; value 30 seems to work well, though)
$009DB5 69 bytes Subroutine (JSR) The subroutine that checks if a saved game file is blank or not. When this subroutine returns, if Z = 0, the file is a new one.
$009E25 1 byte Misc. Amount of lives to start with.
$009E35 2 bytes ASM Set powerups at game start. ($19 = #$00, small Mario.)
$009E6C 1 byte Misc. Number of options in the file select menu. $04 by default.
$009E6E 1 byte Misc. Number of options in the 1/2 player select menu. $02 by default.
$009EC1 1 byte Layer 3 Tile number of the arrow cursor in the title screen menus.
$009EC2 1 byte Palette YXPCCCTT properties of the arrow cursor in the title screen menus.
$009F2A 1 byte Misc. Speed of Fade-ins and Fade-outs.
$009F2F 1 byte Overworld border Change from 01 to 0F to stop fadeout on entering level, new area, and back to submap. (Use with $00:9F59)
$009F37 81 bytes Subroutine (JSR) Fading/mosaic routine.
Change $009F59 from D0 to 90 to eliminate all fadeouts. (use in conjunction with $009F2F). Mod note: I've heard that this one is buggy. Use on your own risk.
$009F67 controls which layers are affected by the mosaic effect.
Format: xxxx4321.
The numbers present the layer numbers to add mosaic on. So 1 = Layer 1, 2 = Layer 2, etc.
$009F88 48 bytes Layer 3 Layer 3 settings. The table is indexed by 3t + i, where t is the tileset number and i is the Layer 3 image setting (00 = variable tide, 01 = low tide, 02 = tileset-specific image). It is used by the routine at $009FB8. The actual format seems to be:
01 = variable-height tide
02 = fixed-height tide
80 = Layer 3 smashers/cage
81 = slow-auto-scrolling background (except in tilesets 1 and 3, where it will be a background that scrolls at half the rate Layer 1 does)
C0 = same as 80, except without the smasher palette
$009FB8 141 bytes Subroutine (JSR) The main Layer 3 handling routine in levels.

- $009FDA: Starting Y position of the rising/lowering tide.
- $009FDF: Y position of the fixed-height tide.
- $009FF3: One of two tilesets for which the tileset-specific Layer 3 background will not auto-scroll. The other is at $009FF7.
- $009FF7: One of two tilesets for which the tileset-specific Layer 3 background will not auto-scroll. The other is at $009FF3.
- $00A00A: Pointer to the layer 3 crusher palette.
$00A045 38 bytes Layer 3 The routine that sets the interaction of the Layer 3 tide tiles.

Both $00A04E and $00A04F are the low byte of the Map16 tile that the tides act like; nothing is stored to the high byte, so this is always on page 0.
$00A06B 14 bytes Coordinate 16-bit X-coordinates for each of the seven submaps. The main map has values of 0, and is overridden elsewhere.
$00A079 14 bytes Coordinate 16-bit Y-coordinates for each of the seven submaps. The main map has values of 0, and is overridden elsewhere.
$00A09C 1 byte Timer Timer to disable skipping the intro message (level C5).
The timer decreases every 4 frame.
$00A0CC 3 bytes Misc. Saves Mario/Luigi's powerups based on which one you are using for the level
$00A0F9 1 byte ASM Part of the routine that runs after dying with zero lives.

If # of levels beat is zero, then it will take you back to the intro screen, if levels beat is positive, it will take you back to the last place you saved on the OW and bring up the Continue/End dialog.

Change this byte to BRA ($80) to cause it to not send you to the intro screen and bring up the Continue/End dialog if you haven't saved for the first time. (In other words, it will take you back to Yoshi's House on an unedited overworld.)
$00A148 1 byte Overworld GFX file for animated tiles (waterfalls etc) on the overworld.
$00A15A 4 bytes Overworld border Call to the routine to draw the number of lives on the overworld border.

Change to [80 02] (BRA $02) to disable the amount of lives from being shown in the overworld border. Use with $04A530.
$00A1E3 1 byte ASM Change to 0xEA to keep the game running when a message box is on the screen.
$00A21E 1 byte Controller Button to press for Pause. (Checks $16)
$00A21F 1 byte ASM Change from F0 (BEQ) to 80 (BRA) to disable pausing
$00A22D 1 byte Timer Timer (in frames) that runs to prevent the pause flag from being flipped instantly. Change [3C] to another value to change the time it takes for Mario to pause/unpause.
$00A23E 1 byte Music Change to 12 and music will continue to play when you pause the game. Changing [11] to another value will alter the sound effect that occurs when pausing the game.
$00A248 1 byte Debug DEBUG: Advance frame / Slow motion (00 = enable)
$00A256 1 byte Debug DEBUG: Slow motion speed
$00A25B 47 bytes Controller Code to handle leaving the level with Start+Select.

Change $00:A268 to 00 to always allow leaving the level.
Change $00:A273 to 00 to beat the level by doing that, not just leave it. Holding A or B will give the secret exit.
$00A300 144 bytes Subroutine (JSR) The routine that handles the graphics that get DMA'd to the first five 16x16 tiles in SP1. It also write the necessary colors to the player's palette (colors 6-F).
$00A30A - Mario/Luigi Palette - Starting Index (Changing this will cause Mario/Luigi to flash when the screen fades out after beating a boss)
$00A320 - Mario/Luigi Palette - Amount of colours * 2
$00A390 1 byte ASM [C2] Change to 60 to disable all animations in levels. This includes colour 64.
Note: LM will still show the animations.
$00A3DB 2 bytes Overworld border [00 08] For which VRAM address animation data will be broken up into two lines of two tiles instead of a single line of four tiles.
$00A400 2 bytes Overworld border [00 09] VRAM address of the second line of two animated tiles (value should be $00A3DB + 0x100).
$00A41A 1 byte Palette [A9] Changing this to 60 will disable the flashing yellow color in levels, but not on the overworld.
$00A41B 1 byte Palette Palette number to use for the flashing palette. Default value is $64
$00A429 12 bytes Palette Changing [B9 0C B6 8D 22 21 B9 0D B6 8D 22 21] to [80 0A EA EA EA EA EA EA EA EA EA EA] will disable the flash animation of colour #64. Make sure that the "View Animation" function in Lunar Magic is disabled.
WARNING: Will disable the animated colours on the OW too!
$00A439 1 byte Misc. Change [F0] (BEQ) to [80] (BRA) to prevent various tiles in SP1 to be overwritten (which meant using ExGFX for them would have no effect). This does not affect tiles 00-09, 10-19 and 7F of SP1.
$00A514 1 byte Palette The first animated colour on the overworld. (Default: 6D.)
$00A51D 1 byte Palette The second animated colour on the overworld. (Default: 7D.)
$00A757 1 byte Misc. How far to offset the players position to the right when exiting a vertical pipe. Values above 0F aren't recommended.
$00A75F 1 byte Misc. How many frames to move Mario when exiting upward from a vertical pipe.
$00A763 1 byte Misc. How many frames to move Mario when exiting downward from a vertical pipe while small.
$00A769 1 byte Misc. How many frames to move Mario when exiting downward from a vertical pipe while with a powerup.
$00A82E 1 byte Misc. GFX File loaded for "MARIO START!", "GAME OVER", etc.
$00A8C3 104 bytes Sprite Misc. 26x4 byte table, Sprite GFX list.
Normal levels can use 00-0F, but the following values have also been observed:
10: [00 00 00 08] Unused?
11: [10 0F 1C 1D] Overworld
12: [00 01 24 22] Morton, Roy, Ludwig
13: [00 01 25 22] Iggy, Larry, Reznor
14: [00 22 13 2D] Castle destruction sequence
15: [00 01 0F 22] Walking home during the credits
16: [00 26 2E 22] Yoshi's House during the credits
17: [21 0B 25 0A] Boss list from the credits
18: [00 0D 24 22] Bowser
19: [2C 30 2D 0E] THE END screen
$00A92B 60 bytes Level data 26x4 byte table, FG/BG GFX list.
Normal levels can use 00-0E, but cutscenes set this to higher values.
$00A96F 28 bytes Level data Submap Foreground Graphics
$00A993 63 bytes Layer 3 Layer 3 GFX28 to 2B upload routine. Pages are uploaded in 64 tile chunks in four passes.
$00A9CD 1 byte Misc. GFX file to use for Nintendo Presents logo
$00AA70 1 byte Misc. GFX file to load special world graphics into
$00AA76 1 byte ASM Change from 10 to 80 to disable the Koopas from using different graphics after the special world is passed
$00AA79 1 byte Sprite tilemap related GFX File loaded for enemies after Special World is passed
$00AB43 1 byte Mode 7 tilemap GFX File loaded for Mode 7 objects
$00AC06 2 bytes Palette Layer 3 Palettes Pointer
$00AC0B 2 bytes Palette Layer 3 Palettes Starting Index
$00AC10 2 bytes Palette Layer 3 Palettes X-Span -1
$00AC15 2 bytes Palette Layer 3 Palettes Y-Span -1
$00AC1D 2 bytes Palette Foreground/Sprite Palettes Pointer
$00AC22 2 bytes Palette Foreground/Sprite Palettes Starting Index
$00AC27 2 bytes Palette Foreground/Sprite Palettes X-Span -1
$00AC2C 2 bytes Palette Foreground/Sprite Palettes Y-Span -1
$00AC3C 2 bytes Palette Back Area Colours Pointer
$00AC42 2 bytes Palette Tileset Specific FG Palettes Pointer
$00AC59 2 bytes Palette Tileset Specific FG Palettes Starting Index
$00AC5E 2 bytes Palette Tileset Specific FG Palettes X-Span -1
$00AC63 2 bytes Palette Tileset Specific FG Palettes Y-Span -1
$00AC6B 2 bytes Palette Tileset Specific Sprite Palettes Pointer
$00AC82 2 bytes Palette Tileset Specific Sprite Palettes Starting Index
$00AC87 2 bytes Palette Tileset Specific Sprite Palettes X-Span -1
$00AC8C 2 bytes Palette Tileset Specific Sprite Palettes Y-Span -1
$00AC94 2 bytes Palette Layer 2 Background Palettes Pointer
$00ACAB 2 bytes Palette Layer 2 Background Palettes Starting Index
$00ACB0 2 bytes Palette Layer 2 Background Palettes X-Span -1
$00ACB5 2 bytes Palette Layer 2 Background Palettes Y-Span -1
$00ACBD 2 bytes Palette Layer 1 Berry Palettes Pointer
$00ACC2 2 bytes Palette Layer 1 Berry Palettes Starting Index
$00ACC7 2 bytes Palette Layer 1 Berry Palettes X-Span -1
$00ACCC 2 bytes Palette Layer 1 Berry Palettes Y-Span -1
$00ACD4 2 bytes Palette Berry Sprite Palettes Pointer
$00ACD9 2 bytes Palette Berry Sprite Palettes Starting Index
$00ACDE 2 bytes Palette Berry Sprite Palettes X-Span -1
$00ACE3 2 bytes Palette Berry Sprite Palettes Y-Span -1
$00AD1E 7 bytes Palette Palette IDs to use for each submap
$00AD28 2 bytes Palette Overworld Map Layer 2 Palettes Pointer
$00AD30 2 bytes Palette Overworld Map Layer 2 Palettes Pointer (Special World Passed)
$00AD4D 2 bytes Palette Overworld Map Layer 2 Palettes Starting Index
$00AD52 2 bytes Palette Overworld Map Layer 2 Palettes X-Span -1
$00AD57 2 bytes Palette Overworld Map Layer 2 Palettes Y-Span -1
$00AD5F 2 bytes Palette Overworld Map Layer 1 Palettes Pointer
$00AD64 2 bytes Palette Overworld Map Layer 1 Palettes Starting Index
$00AD69 2 bytes Palette Overworld Map Layer 1 Palettes X-Span -1
$00AD6E 2 bytes Palette Overworld Map Layer 1 Palettes Y-Span -1
$00AD76 2 bytes Palette Overworld Map Sprite Palettes Pointer
$00AD7B 2 bytes Palette Overworld Map Sprite Palettes Starting Index
$00AD80 2 bytes Palette Overworld Map Sprite Palettes X-Span -1
$00AD85 2 bytes Palette Overworld Map Sprite Palettes Y-Span -1
$00AD8D 2 bytes Palette Overworld Map Layer 3 Palettes Pointer
$00AD92 2 bytes Palette Overworld Map Layer 3 Palettes Starting Index
$00AD97 2 bytes Palette Overworld Map Layer 3 Palettes X-Span -1
$00AD9C 2 bytes Palette Overworld Map Layer 3 Palettes Y-Span -1
$00ADA9 2 bytes Palette Title Screen Layer 3 Palettes (Row 1) Pointer
$00ADAE 2 bytes Palette Title Screen Layer 3 Palettes (Row 1) Starting Index
$00ADB3 2 bytes Palette Title Screen Layer 3 Palettes (Row 1) X-Span -1
$00ADB8 2 bytes Palette Title Screen Layer 3 Palettes (Row 1) Y-Span -1
$00ADC0 2 bytes Palette Title Screen Layer 3 Palettes (Row 2) Pointer
$00ADC5 2 bytes Palette Title Screen Layer 3 Palettes (Row 2) Starting Index
$00ADCA 2 bytes Palette Title Screen Layer 3 Palettes (Row 2) X-Span -1
$00ADCF 2 bytes Palette Title Screen Layer 3 Palettes (Row 2) Y-Span -1
$00AE16 1 byte Misc. [02] Sprite Palette setting for Morton, Ludwig, Roy, Reznor, and Bowser battles
$00AE1B 1 byte Misc. [07] FG Palette setting for Morton, Ludwig, Roy, Reznor, and Bowser battles
$00AF35 4 bytes ASM Change to 4C 91 B0 EA to completely disable the fade-out only when beating a level. (USE WITH $00:B091).
$00AF39 1 byte ASM Change to 80 to completely disable the fade-out when beating a level. Warning: Boss fights including Reznor will glitch out and not send you back to the overworld when doing this.
$00AFBA 3 bytes Misc. Change from B9 F7 AE [LDA $AEF7,y] to A9 00 00 [LDA #$0000] to disable fading completely, even in boss levels. WARNING: When end level scorecard pops up in boss levels, mode 7 stuff will disappear due to the mode being changed to 1 so layer 3 stuff shows up.
$00B091 15 bytes Empty Unused data.
Change to AD C6 13 F0 FA A5 13 29 03 4C 39 AF to completely disable the fade-out only when beating a level. Does not apply to bosses (USE WITH $00:AF35).
$00B0A0 16 bytes Palette Shared background area colour. Back area colour 0 - 7
$00B0B0 24 bytes Palette BG Palette 0
$00B0C8 24 bytes Palette BG Palette 1
$00B0E0 24 bytes Palette BG Palette 2
$00B0F8 24 bytes Palette BG Palette 3
$00B110 24 bytes Palette BG Palette 4
$00B128 24 bytes Palette BG Palette 5
$00B140 24 bytes Palette BG Palette 6
$00B158 24 bytes Palette BG Palette 7
$00B170 16 bytes Palette Palette 0 colours 8-F in levels.
$00B180 16 bytes Palette Palette 1 colours 8-F in levels.
$00B190 12 bytes Palette Palette 2 colours 2-7, FG Palette 0, in levels.
$00B19C 12 bytes Palette Palette 3 colours 2-7, FG Palette 0, in levels.
$00B1A8 12 bytes Palette Palette 2 colours 2-7, FG Palette 1, in levels.
$00B1B4 12 bytes Palette Palette 3 colours 2-7, FG Palette 1, in levels.
$00B1C0 12 bytes Palette Palette 2 colours 2-7, FG Palette 2, in levels.
$00B1CC 12 bytes Palette Palette 3 colours 2-7, FG Palette 2, in levels.
$00B1D8 12 bytes Palette Palette 2 colours 2-7, FG Palette 3, in levels.
$00B1E4 12 bytes Palette Palette 3 colours 2-7, FG Palette 3, in levels.
$00B1F0 12 bytes Palette Palette 2 colours 2-7, FG Palette 4, in levels.
$00B1FC 12 bytes Palette Palette 3 colours 2-7, FG Palette 4, in levels.
$00B208 12 bytes Palette Palette 2 colours 2-7, FG Palette 5, in levels.
$00B214 12 bytes Palette Palette 3 colours 2-7, FG Palette 5, in levels.
$00B220 12 bytes Palette Palette 2 colours 2-7, FG Palette 6, in levels.
$00B22C 12 bytes Palette Palette 3 colours 2-7, FG Palette 6, in levels.
$00B238 12 bytes Palette Palette 2 colours 2-7, FG Palette 7, in levels.
$00B244 12 bytes Palette Palette 3 colours 2-7, FG Palette 7, in levels.
$00B250 12 bytes Palette Palette 4 colours 2-7 in levels.
$00B25C 12 bytes Palette Palette 5 colours 2-7 in levels.
$00B268 12 bytes Palette Palette 6 colours 2-7 in levels. Colour 4 will be overwritten in levels, but not in boss rooms.
$00B274 12 bytes Palette Palette 7 colours 2-7 in levels.
$00B280 12 bytes Palette Palette 8 colours 2-5 in levels, the last four bytes (colours 6-7) are only available during the Nintendo Presents logo; after that, they are overwritten by the first two colours from Mario's palette.
$00B28C 12 bytes Palette Palette 9 colours 2-7 in levels.
$00B298 12 bytes Palette Ludwig palette, and palette A colours 2-7 in levels.
$00B2A4 12 bytes Palette Roy palette, and palette B colours 2-7 in levels.
$00B2B0 12 bytes Palette Palette C colours 2-7 in levels.
$00B2BC 12 bytes Palette Morton palette, and palette D colours 2-7 in levels
$00B2C8 20 bytes Palette Mario Palette
$00B2DC 20 bytes Palette Luigi palette. Colours 6-F of palette 8 while small, big, or caped Luigi.
$00B2F0 20 bytes Palette Fire Mario's palette
$00B304 20 bytes Palette Fire Luigi palette. Colours 6-F of palette 8 while fire Luigi.
$00B318 24 bytes Palette Sprite palette 0, loaded to palettes E and F.
$00B330 24 bytes Palette Sprite palette 1, loaded to palettes E and F.
$00B348 24 bytes Palette Sprite Palette 2, loaded to palettes E and F.
$00B360 24 bytes Palette Sprite palette 3, loaded to palettes E and F.
$00B378 24 bytes Palette Sprite palette 4, loaded to palettes E and F.
$00B390 24 bytes Palette Sprite palette 5, loaded to palettes E and F.
$00B3A8 24 bytes Palette Sprite palette 6, loaded to palettes E and F.
$00B3C0 24 bytes Palette Sprite palette 7, loaded to palettes E and F.
$00B3D8 14 bytes Palette YI Overworld Palette 4, Colours 1-7
$00B3E6 14 bytes Palette YI Overworld Palette 5, Colours 1-7
$00B3F4 14 bytes Palette YI Overworld Palette 6, Colours 1-7
$00B402 14 bytes Palette YI Overworld Palette 7, Colours 1-7
$00B410 14 bytes Palette Main Overworld Palette 4, Colours 1-7
$00B41E 14 bytes Palette Main Overworld Palette 5, Colours 1-7
$00B42C 14 bytes Palette Main Overworld Palette 6, Colours 1-7
$00B43A 14 bytes Palette Main Overworld Palette 7, Colours 1-7
$00B448 14 bytes Palette Star World Overworld Palette 4, Colours 1-7
$00B456 14 bytes Palette Star World Overworld Palette 5, Colours 1-7
$00B464 14 bytes Palette Star World Overworld Palette 6, Colours 1-7
$00B472 14 bytes Palette Star World Overworld Palette 7, Colours 1-7
$00B480 14 bytes Palette Vanilla Dome/Bowser's Valley Overworld Palette 4, Colours 1-7
$00B48E 14 bytes Palette Vanilla Dome/Bowser's Valley Overworld Palette 5, Colours 1-7
$00B49C 14 bytes Palette Vanilla Dome/Bowser's Valley Overworld Palette 6, Colours 1-7
$00B4AA 14 bytes Palette Vanilla Dome/Bowser's Valley Overworld Palette 7, Colours 1-7
$00B4B8 14 bytes Palette Forest of Illusion Overworld Palette 4, Colours 1-7
$00B4C6 14 bytes Palette Forest of Illusion Overworld Palette 5, Colours 1-7
$00B4D4 14 bytes Palette Forest of Illusion Overworld Palette 6, Colours 1-7
$00B4E2 14 bytes Palette Forest of Illusion Overworld Palette 7, Colours 1-7
$00B4F0 14 bytes Palette Special World Overworld Palette 4, Colours 1-7
$00B4FE 14 bytes Palette Special World Overworld Palette 5, Colours 1-7
$00B50C 14 bytes Palette Special World Overworld Palette 6, Colours 1-7
$00B51A 14 bytes Palette Special World Overworld Palette 7, Colours 1-7
$00B552 14 bytes Palette Palette 5 colours 9-F.
$00B560 14 bytes Palette Palette 6 colours 9-F.
$00B56E 14 bytes Palette Palette 7 colours 9-F.
$00B5DE 16 bytes Palette Contains the colors for the flashing lightning in Valley of Bowser.
$00B60C 16 bytes Palette Colours used in animation of Yoshi coin and yellow map spot
$00B61C 16 bytes Palette Colours used in animation of red map spot
$00B65E 14 bytes Palette Iggy/Larry Platform Palette
$00B674 14 bytes Palette Palettes 2 and 9, colours 9-F.
$00B682 14 bytes Palette Palettes 3 and A, colours 9-F.
$00B690 14 bytes Palette Palettes 4 and B, colours 9-F.
$00B69E 112 bytes Palette Bowser palettes (8 palettes, 7 colours each)
$00B70E 36 bytes Palette "The End" palettes (3 palettes, 6 colours each; order is Luigi, Mario, Princess)
$00B992 50 bytes Graphics Pointers to GFX00 through GFX31, low byte
$00B9C4 50 bytes Graphics Pointers to GFX00 through GFX31, high byte
$00B9F6 50 bytes Graphics Pointers to GFX00 through GFX31, bank byte
$00BA4D 19 bytes Empty Unused data.
$00BA60 32 bytes Pointer The low byte of a series of Map16 data pointers in horizontal levels. The high bytes are at $00BA9C, and the bank byte is either $7E or $7F. These are indexed by screen number; each byte in this table and the other corresponds to the start of a particular screen's Map16 data (or chunk of 0x1B0 bytes). These are used in various routines that read or write Map16 data to find where a particular tile is.
$00BA80 28 bytes Pointer The low byte of a series of Map16 data pointers in vertical levels. The high bytes are at $00BABC, and the bank byte is either $7E or $7F. These are indexed by screen number; each byte in this table and the other corresponds to the start of a particular screen's Map16 data (or chunk of 0x200 bytes, which means that all of these will be 00 in a clean ROM anyway). These are used in various routines that read or write Map16 data to find where a particular tile is.
$00BA9C 32 bytes Pointer The high byte of a series of Map16 data pointers in horizontal levels. The low bytes are at $00BA60, and the bank byte is either $7E or $7F. These are indexed by screen number; each byte in this table and the other corresponds to the start of a particular screen's Map16 data (or chunk of 0x1B0 bytes). These are used in various routines that read or write Map16 data to find where a particular tile is.
$00BABC 28 bytes Pointer The high byte of a series of Map16 data pointers in vertical levels. The high bytes are at $00BA80, and the bank byte is either $7E or $7F. These are indexed by screen number; each byte in this table and the other corresponds to the start of a particular screen's Map16 data (or chunk of 0x200 bytes, which means that these are all simply multiples of 2 plus #$C8). These are used in various routines that read or write Map16 data to find where a particular tile is.
$00BEB0 268 bytes Subroutine (JSL) SMW's Map16-tile-generating routine. It uses values of $9C to determine which tile to generate, but these values are hardcoded. (See RAM address $9C.) This is the main part; $00BFBC runs the codes for each tile.
$00BFBC 67 bytes Subroutine (JSR) A subroutine used with $00BEB0; it runs different codes depending on the value of $9C. The pointers for the different values begin at $00BFC9. They go from 01 to 1B, although the actual codes are kind of weird...the pointers vary depending on which Map16 page the tile is on, whether or not item memory should be affected, and if there are special cases (such as the Yoshi coin, which generates two tiles simultaneously).
$00C00D 86 bytes Subroutine (JSR) The subroutine that sets item memory bits. It is called during the subroutine at $00BEB0 for values of $9C that utilize item memory.
$00C06B 9 bytes Misc. Tiles to generate on Map16 page 0, used for values 01-09 of $9C. Note that the first byte is unused.
$00C074 54 bytes Subroutine (JSR) SMW's subroutine for generating tiles on Map16 page 0. $00C077 is an alternate entry point to this routine; if it is used instead, then the tile generation will not affect item memory.
$00C0B2 15 bytes Misc. Tiles to generate on Map16 page 1, used for values 0A-17 of $9C.
$00C0C1 58 bytes ASM A portion of code used in SMW for generating tiles on Map16 page 1. $00C0C4 is an alternate entry point to this routine; if it is used instead, then the tile generation will not affect item memory.
$00C0FB 177 bytes ASM The portion of code in SMW's Map16-tile-generating routine that changes the actual graphics of the tile. Both $00C074 and $00C0C1 use it (the former jumps to it, and it immediately follows the latter).
$00C29E 72 bytes Misc. BG Tiles/Palette for Flipped Gate (1)
$00C2E6 72 bytes Misc. BG Tiles/Palette for Flipped Gate (2)
$00C4AF 1 byte Misc. If you change this byte from [02] to [01], the keyhole will activate the normal exit.
$00C526 1 byte Music Music played when you have completed the Bonus Game.
$00C558 1 byte Sound effect POW Finishing Sound Effect.
$00C570 1 byte Misc. [F0] Change to [80] to make the item not drop when the player presses Select.
$00C576 1 byte Debug DEBUG: Powerup select (F0 = enable)
$00C599 28 bytes Pointer Pointer to Mario's animation routines. ($7E0071)
$00C5E8 248 bytes Misc. Movement data for all of the castle destruction scenes.

Each data entry consists of two values, the first being the command and the second being the number of frames to keep that command active.
If bit 4 of the command byte is set, question marks will be drawn above Mario (as in Roy/Ludwig's scenes).
If bit 5 is clear, the rest of the byte is read as input data for $15/$16.
If bit 5 is set, then the first four bits are used to run additional commands. x0-x6 will run a variety of small routines, while x7-xF will change Mario's pose.
If #$2D, the P-balloon sound will also be played (for Lemmy's).
Lastly, #$FF marks the end of that scene's data.
$00C6E0 7 bytes Misc. Base indices to the data at $00C5E8 for each of the castle destruction scenes.
$00C92C 2 bytes Misc. [F0 3D] Change to [EA EA] to prevent Mario walking after touching goal spheres or the goal tape.
$00C9A7 7 bytes Level number The level numbers that triggers the seven castle destruction sequences. The first byte is for scene 1, the second is for scene 2, and so on.
$00C9AE 1 byte Level number One of the two level numbers that triggers the credits scene. The other is at $00CA13.
$00C9BD 1 byte Music Goal point fade-out music
$00C9FE 3 bytes ASM [8D D5 0D] The code itself stores either 01 or 02 to $0DD5. Change to [EA EA EA] to make it possible to set the normal/secret exit info through $0DD5 via LevelASM, sprites, etc. (Note: To activate any exit at all, $0DD5 has to be explicitly set to 01 or 02. Leaving it as 00 will cause no exit to be activated at all, and values 03-FF should not be used.)
$00CA0C 1 byte Level number Translevel number of the level where defeating a boss will activate the secret exit.
$00CA12 2 bytes Misc. [C9 31] Changing this to [80 11] will prevent any "boss defeated" scenes from ever being played.
$00CA13 is one of the two level numbers that triggers the credits scene. The other is at $00C9AE.
$00CA2C 1 byte Misc. Set to 00 to disable midway points (they'll still make you big though)
$00CA31 13 bytes Subroutine (JSR) Set the "peace" pose for the player depending on whether he's on Yoshi or not.
$00CB0C 1 byte ASM Change from '8D' to '0C' to not make HDMA gradients act strangely at the end of the level (goal tape). Of course, you should still avoid using HDMA channel 7 if this is all you change.
$00CB12 258 bytes Misc. Opening window data.
$00CBA3 - Change 4B to 49 to fix a misplaced tile on the keyhole "iris in" effect.
$00CC84 1 byte Debug DEBUG: Free-roaming mode (F0 = enable)
$00CC85 1 byte Debug Change this to 00 and you'll activate free roaming mode (just like $00CC84)
$00CD4E 4 bytes ASM [AD 8F 14 0D] Change to [EA EA EA AD] to enable climbing while holding an item
$00CD5F 1 byte Mario physics Change from [15] to [16] so you don't automatically grab whatever you are climbing (vine, net, etc.) again if you happen to still be holding up/down. Instead after you jump it will let go and let you jump until you press up/down again.
$00CDA9 4 bytes Misc. Mario riding on Yoshi animations
$00CDC5 1 byte Misc. Animation frame for Mario crouching on Yoshi
$00CDF6 131 bytes Subroutine (JSR) L & R scrolling routine.
Change $00CDFC from D0 to 80 to disable L & R scrolling. Or change to [EA EA] to allow scrolling even if the player is holding multiple buttons (works best if $00CE12 is set to 01).
$00CE12 is the number of frames L or R must be held before screen scrolling occurs.
$00CE40 is the screen scroll sound effect.
$00CE99 8 bytes Mario tilemap Spin Jump frame table
(00 00 - Mario Standing - Small - Big)
(25 44 - Mario Back to Screen - Small - Big)
(00 00 - Same as first)
(0F 45 - Mario Facing Screen - Small - Big)

They are indexed by the frame counter.
$00CEA1 8 bytes Mario tilemap Spinjump direction table.
$00CEA9 8 bytes Mario tilemap Cape spin cape image table.

These are run while spin jumping with a cape or doing a spin attack. Only these four cape images ($02,$07,$06,$09) seem to work with cape contact, and will only work if RAM $14A6 is above zero.
$00CEBE 1 byte Mario physics Amount of frames to show the cape at highest altitude frame. (After, for example, a spin-jump has been done.)
$00CF42 1 byte Mario physics Power-up that can attack with both cape spin and spin jump
$00CF75 1 byte Mario tilemap [3F] Mario shooting fireball on ground pose.
$00CF7B 1 byte Mario tilemap [16] Mario shooting fireball in air pose.
$00CF90 1 byte Mario tilemap [0F] Mario turning around while holding item pose.
$00CFCA 1 byte Controller Which button to press to look up. (Look at Ram Address $7E:0015 for values).
$00CFCB 1 byte Mario physics Change from [F0] to [80] to disable looking up.
$00CFCE 1 byte Mario tilemap This is the player looking up pose, the default is #$03.
$00D034 8 bytes Mario physics Cape Collision X (Horizontal) Offsets: Two bytes for right and left, on ground and in air.

The first two sets are for when Mario is on the ground while spinning ($0C,$00- right; $F4,$FF left), and the second two are while he is in the air ($08,$00 - right; $F8,$FF - left)

The first byte in each set determines the position per pixel, the second sets whether it is in front or behind him ($FF is behind, $00 is in front) Use $FF-$80 for the behind byte($FF), and $00-$79 for the in front byte ($00)

This does not effect the image offsets.
$00D03C 8 bytes Mario physics Cape Collision Y (Vertical) Offsets: 2 bytes for right and left, on ground and in air.

The first two sets are for when Mario is on the ground while spinning ($10,$00 - right; $10,$00 - left), and the second two are while he is in the air ($02,$00 - right; $02,$00 - left)

The first byte in each set determines the position per pixel, the second sets whether it is above him or below him ($FF is below his feet, $00 is from his feet up) Use $FF-$80 for the below byte ($FF), and $00-$79 for the above byte ($00)

This does not effect the image offsets.
$00D044 30 bytes Mario physics Routine that does the actual calculation for cape-interaction. Uses the two tables at $00:D034 and $00:D03C.
$00D062 31 bytes Subroutine (JSR) Cape Swing routine.
$00:D065 controls which power-up the player needs to have to be able to cape spin.
Change $00:D067 to 00 to make mario cape spin in all forms.
$00:D077 controls how long Cape Spin lasts.
$00:D07C controls the cape spin sound effect to generate.
$00D081 45 bytes Subroutine (JSR) Fireball throwing routine.
$00D082 is the power-up that can throw fireballs.
Change $00D084 to 00 to let Mario throw fireballs in all forms.
Change $00D085 from A5 73 to A9 00 to enable throwing fireballs while ducking.
Change $00D087 from 0D 7A 18 to EA EA EA to enable throwing fireballs while on Yoshi.
Change $00D08A to 80 do disable throwing fireballs.
Change $00D093 from F0 to 80 to disable throwing fireballs while spin jumping.
$00D0B9 1 byte Mario tilemap Mario death pose (uses RAM $13E0)
$00D0D5 3 bytes ASM Set 9C C1 0D to EA EA EA in order to not lose Yoshi on the OW when you fall down a pit when on top of Yoshi.
$00D0D8 3 bytes ASM ASM that handles losing lives. Change to [EA EA EA] to not lose a life after dying. Change to [80 03 EA] to always go to the Game Over screen when dying.
$00D0DE 1 byte Music Game Over music
$00D0F1 1 byte ASM ASM that handles the 'TIME UP!' message. Change 'D0' to '80' to disable it.
$00D0F8 10 bytes Misc. Controls timer for TIME UP/GAME OVER message. Change $00D0F9 from C0 to 00 to remove the animation, and change $00D0FE from FF to whatever you want to shorten the timer (however, 00 is as long as FF; 01 is the shortest).
$00D11A 1 byte ASM Change [85] to [60] and Mario will not flip X-wise when he dies.
$00D11D 12 bytes Mario tilemap Mario Shrinking Animation poses (uses RAM $13E0).
$00D141 1 byte Timer How long flashing invincibility (when you get hit) lasts
$00D156 5 bytes ASM Change to EE E4 18 EA 64 to turn the Mushroom into a 1up, but it'll still play the animation
$00D18D 6 bytes Mario physics Speed at which Mario enters/exits a pipe.
The first two bytes are horizontal speed when entering/exiting a horizontal pipe.
The next two bytes are both horizontal speed in vertical pipes, and vertical speed in horizontal pipes.
The last two are the vertical speed in vertical pipes.
$00D1AE 1 byte Misc. Animation frame for Mario entering horizontal pipe on Yoshi
$00D20A 1 byte Mario tilemap Mario's pose for entering a vertical pipe (Default is 0F - facing screen)
$00D229 1 byte Misc. Animation frame for Mario entering vertical pipe on Yoshi
$00D231 5 bytes Overworld border Change (A9 02 8D F9 13) to EA EA EA EA EA to remove Mario's priority when he's going down a pipe.
$00D255 1 byte Sound effect Mario emerge from vertical pipe Sound Effect.
$00D2BD 16 bytes Mario physics Mario's jump height. The earlier ones are when Mario is moving slowly (or standing still); the latter is when he's moving faster. Even entries are normal jump, odd are spin.

Formula:
LDA $7B
BPL +
EOR #$FF
INC A
+
LSR #2
AND #$FE
TAX
LDA $140D
BEQ +
INX
+
LDA $00D2BD,x
STA $7D
$00D345 104 bytes Mario physics Accelerations for Mario in a non-slippery level, or in a slippery level while in midair.
The table is split into sets of four 16-bit values each, in the order of $13E1. The values in these sets are ordered as: walking (no X/Y) left, running (X/Y held) left, walking right, running right.
$00D3AD 16 bytes Mario physics Accelerations for Mario when flying.
Consists of 16-bit values in two sets (facing left/right) of two groups (moving left/right) with two values each (no X/Y and X/Y held).
$00D3BD 24 bytes Mario physics Sliding accelerations on slopes in a non-slippery level.
Each value is 16-bit, in the same order as $13E1 (excluding flat ground).
$00D3D5 104 bytes Mario physics Turning decelerations for Mario in a non-slippery level, or in a slippery level while in midair.
The table is split into sets of four 16-bit values each, in the order of $13E1. The values in these sets are ordered as: walking (no X/Y) left, running (X/Y held) left, walking right, running right.
$00D43D 104 bytes Mario physics Accelerations for Mario in a slippery level.
The table is split into sets of four 16-bit values, in the order of $13E1. The values in these sets are ordered as: walking (no X/Y) left, running (X/Y held) left, walking right, running right.
$00D4B5 24 bytes Mario physics Sliding accelerations on slopes in a slippery level.
Each value is 16-bit, in the same order as $13E1 (excluding flat ground).
$00D4CD 104 bytes Mario physics Turning decelerations for Mario in a slippery level.
The table is split into sets of four 16-bit values, in the order of $13E1. The values in these sets are ordered as: walking (no X/Y) left, running (X/Y held) left, walking right, running right.
$00D535 104 bytes Mario physics Mario's maximum X speeds on flat ground and on slopes.
The table consists of sets of 8 bytes, in the order of $13E1. Each of these sets then consists of four groups of two bytes each (for max left and max right), in the order: walking, running, running fast, sprinting.

The "running fast" values get used when running faster than #$23 (defined at $00D723) and either on the ground or shot out of a diagonal pipe.
$00D59D 16 bytes Mario physics Mario's maximum X speeds while flying. The first 8 bytes are facing right, the second 8 are facing left.
Each of these sets are split into four groups of two bytes each (for maximum left and right speeds). Only the first two groups are actually used, for flying without X/Y and flying with X/Y respectively.
Also, in case it's not clear, the maximum speeds in the direction opposite of Mario's are from pressing that direction with B to slow down (e.g. <+B when facing right).
$00D5AD 16 bytes Mario physics Mario's maximum X speeds in water.
The first set of 8 bytes is for when Mario isn't carrying an item, while the second set is with one. Each set consists of four groups of two bytes each (for max left and max right), in the order: on ground, swimming, on ground in a tide, swimming in a tide.
$00D5BD 12 bytes Mario physics Mario's maximum X speeds when sliding down slopes with the down button. In the order of $13E1, without flat ground or flying included.
$00D5C9 34 bytes Mario physics Mario's minimum X speeds on flat ground and on slopes.
The table is in the order of $13E1. Each entry gets two bytes; the second byte is the actual speed ($7B), while the first is the accumulating fraction bits ($7A).

The last 8 bytes of the table seem to be unused.
$00D5CA 30 bytes Mario physics How much Mario moves while on slopes, added to $7B. Values correspond to $7E:13E1 (slope type) divided by four. Every second byte is unused.
$00D5E8 1 byte Mario physics X speed of player as he's floating in water freely in a level where a Layer 3 tide is active. (Does not affect the speed given when the player manually moves around on his own horizontally.)
$00D5EA 1 byte Mario physics X speed of player as he's floating in water AND standing on a platform (like the floating grassy platforms) in a level where a Layer 3 tide is active. (Does not affect the speed given when the player manually moves around on his own horizontally.)
$00D603 1 byte Controller Which button to press to duck. Format: byetUDLR; b = A or B; y = X or Y; e = select; t = Start; U = up; D = down; L = left, R = right.
$00D604 1 byte ASM Change from F0 (BEQ) to 80 (BRA) to disable ducking.
Note that setting $01EB16 to [EA EA A5 73] (NOP #2 : LDA $73) is a good idea if you're using this.
$00D61C 2 bytes ASM Change from 30 12 to EA EA to disable jumping.
$00D63E 1 byte ASM Change from 10 to 80 to disable Spin Jump.
$00D644 1 byte Mario physics [19] Change to [00] to allow Mario to spin jump while carrying an item. Because Mario spins so fast, the animation will not be smooth.
$00D645 1 byte ASM Change this from "1A" to "60" to disable spin jumping. Unlike 0583E (SNES $00:D63E) from "10" to "80", changing this address does not make the "A" button do the regular jump, but it disables spin jumping altogether. This way, you can use the "A" button for something else without it jumping automatically.

Note: Still allows you to spinjump out of the water and dismount Yoshi.
$00D64A 1 byte Misc. Spin Jump Sound, uses bank 1DFC.
$00D65E 10 bytes ASM Mario jumping routine. (Sound effect + store to Mario Y speed.)
$00D65F is the Sound effect for Mario jumping. $00D661 is the bank for the sound effect. By default it uses $1DFA, but you can make it use $1DFC by changing $00D661 to FC or $1DF9 by changing it to F9.
$00D66F 1 byte Mario physics Change to 80 to disable Cape Flight and Jumping High while dashing. Interestingly enough, changing it to A9 will make Mario do a dash jump with every jump, even at a standstill, and will allow him to gain speed in the air. In addition, doing so will have the effect of causing every Jump performed by Cape Mario to become a Cape Flight.
$00D674 1 byte Mario physics [D0] Change to 80 to prevent the player from flying with a cape. The player will still be able to float, cape-spin, and jump higher when running but will never "take off".
$00D677 1 byte Mario physics Mario fly time
$00D707 1 byte Mario tilemap [0D] Mario's turning(skidding) pose
$00D717 1 byte ASM Change [50] to [80] to disable running and cause Mario to never run. The Y (or X) button will not cause Mario to run. This does not affect other uses of the Y button, like shooting fireballs or carrying sprites.
$00D718 1 byte Mario physics Change [1E] to [00] to cause Mario to always run, as if the Y button is always down. This does not affect other uses of the Y button, like shooting fireballs or carrying sprites. Also, Cape Mario will still need the Y button to fly.
$00D72C 1 byte Misc. Number of frames Mario should continue to show his running frames for after jumping.
$00D7A5 3 bytes Mario physics Gravity. The first byte is when not holding B (or A), the second is gravity when holding B/A, and the third is when riding on a winged Yoshi.
$00D7AF 1 byte Mario physics Falling maximum speed (without button held)
$00D7B0 1 byte Mario physics Falling maximum speed with button held
$00D7B9 1 byte Mario physics The speed at which Mario falls with a cape. Set it lower to make him float slower, higher to float faster, and over D0 to enable unlimited jumping in midair with the cape.
$00D7BA 1 byte Mario physics Flight acceleration (added to y speed)
$00D7C8 7 bytes Mario physics Maximum falling speed for cape mario, index by RAM address $1407 (cape phase).
$00D7CF 6 bytes Mario physics cape speed
$00D805 1 byte Mario physics Power-up that can fly
$00D8EA 1 byte Misc. power-up that can float (cape by default)
$00D905 1 byte Mario physics change to 16 = Raccoon Mario (floating if you tap Y instead of holding it)
$00D909 1 byte Mario physics Time until you stop floating after you have pressed B while while in the air with a cape.
$00D972 1 byte Mario physics Change to 00 to disable sprinting after running on the ground for a long period of time. Note that cape flight will also be disabled as a consequence.
$00D998 1 byte ASM Change this from [F0] (BEQ) to [80] (BRA) so that when the player is carrying an item while swimming, his Y speed won't be affected (the player will sink normally). Also, if you change this to [D0] (BNE), the player will float if carrying nothing and sink if carrying an item.
$00D9D0 1 byte Mario physics Maximum sinking speed of player when holding an item while swimming. When adjusting this value, it's recommended that it's equal to x5BD4. Format of RAM $7E007D.
$00D9D4 1 byte Mario physics Maximum sinking speed of player when holding an item while swimming. When adjusting this value, it's recommended that it's equal to x5BD0. Format of RAM $7E007D.
$00D9D8 1 byte Mario physics Maximum rising speed of player when holding an item while swimming. When adjusting this value, it's recommended that it's equal to $00D9DC. Format of RAM $7E007D.
$00D9DC 1 byte Mario physics Maximum rising speed of player when holding an item while swimming. When adjusting this value, it's recommended that it's equal to x5BD8. Format of RAM $7E007D.
$00DA37 1 byte ASM Change to 80 to disable ducking underwater, can be used in conjunction with $00D604 hex edit.
$00DA55 84 bytes Mario physics Mario's horizontal water interaction routine.
To disable layer 3 tides moving him, set $00:DA6F (0x05C6F) and $00:DA58 (0x05C58) to 80 (BRA).
$00DA8E 1 byte Mario tilemap Shooting fireball while swimming pose. Default is #$18 (Swimming pose 3)
$00DAAA 1 byte Sound effect Sound effect that plays when you press the button to swim
$00DAB7 1 byte Mario physics Vine climbing speed 1 (right and down)
$00DAB9 1 byte Mario physics Vine climbing speed 2 (left and up)
$00DB9A 1 byte ASM [10] Change to 80 to disable jumping while climbing.
$00DBA6 1 byte Sound effect Sound effect to play when jumping while climbing. The bank it stores to is located at $00DBA8 [$1DFA by default] and can be changed to $1DF9 or $1DFC.
$00DBB3 1 byte Sound effect Sound effect played when Mario hits a net. (1DF9)
$00DC2D 75 bytes Mario physics Routine that updates the player's X and Y position by X and Y speed. Here is the formula:

M = $SS/$10

M is the approximate amount of pixels the player has moved per frame. SS is the value in $7B or $7D.
$00DC78 4 bytes Misc. Number of animation frames to use for walking/running Mario, indexed by Mario's status.

Ex: db $01,$02,$02,$02 The first byte it for small Mario, next is Super (Big) Mario, then Cape Mario, and finally Fire Mario. $01 means 2 frames for small Mario and $02 means 3 frames for the others. Longer animations are possible, but that'd require moving stuff around in $13E0, which hasn't been researched yet.
$00DC7C 1 byte Mario physics Animation rates for both Mario's run animation and his cape animation (as it's flapping in the "wind" from running).
Indexed by the absolute value of Mario's X speed, divided by 8. For specifically the run animation, $13E5 is also added to the index.
$00DD4E 228 bytes Mario tilemap X positions of Mario's tiles in various poses, two bytes per tile.
$00DDDE 2 bytes Mario tilemap X offset of cape when climbing.
$00DE32 228 bytes Mario tilemap Y positions of Mario's tiles in various poses, two bytes per tile.
$00DEC2 2 bytes Mario tilemap Y offset of cape when climbing.
$00DF16 4 bytes Mario tilemap Tileset to use for Mario, paged by status ($7E0019)
$00DF1A 70 bytes Pointer Tile expansion pointer table (Small Mario)
$00DF60 122 bytes Pointer Tile expansion pointer table (Big Mario)
$00DFDA 50 bytes Mario tilemap Tile expansion table (8x8 tiles in GFX00 used by Mario)
$00E00C 192 bytes Mario tilemap Mario upper tile.
$00E0CC 192 bytes Mario tilemap Mario lower tile.
$00E18C 2 bytes Palette This is a two byte table used to index the player's palette based on the direction the player is facing.
$00E23A 44 bytes Mario tilemap Cape tile map
$00E266 44 bytes Mario tilemap cape offsets
$00E2D3 1 byte Debug DEBUG: Infinite star (set to 00 to activate)
$00E30D 1 byte Misc. How many palettes to cycle through when Mario/Luigi is invincible, -1
$00E34F 4 bytes Misc. Change to EA EA EA EA (NOP #4) and all forms of Big Mario will not go into the ground a few pixels.
$00E35D 3 bytes ASM Change to $EA,$EA,$EA (NOP #3) to cancel out Mario moving up and down one pixel while walking and running. This is useful if you are using more than three animation frames for walking/running, and thus can be worked into your GFX/tilemap accordingly.
$00E364 1 byte ASM Change to $80 (BRA) to disable Mario from being offset vertically by one pixel while running on the wall (using the purple triangles). This should be combined with $00E34F and $00E35D for the complete effect.
$00E3AA 1 byte Misc. Which animation frame value to start pulling tilemaps from the size-independent table
$00E3FE 1 byte Misc. power-up that shows the cape graphics
$00E4B9 33 bytes Misc. Values stored to $13E1 for each slope tile.

Rather than being indexed by the tile's Map16 tile number, this table is instead indexed based on the actual slope tile used; for instance, gradual slopes have 8 tiles (4 left-facing and 4 right-facing) whereas normal slopes have 4 (2 left-facing and 2 right-facing). The slopes in the table by index are:
00 - Gradual
08 - Normal
0C - Steep
0E - Purple Triangle
10 - Very Steep Ledge-edge (from standard object 13)
12 - Upside-down Steep (unused)
14 - Upside-down Normal (unused)
18 - Conveyors
1C - Very Steep
20 - Flat ground
$00E4DA 33 bytes Mario physics Y speeds to give Mario when standing stationary or walking down on various slope tiles. These values are ordered the same way as $00E4B9.
$00E4FB 33 bytes Mario physics Y speeds to give Mario when moving up various slope tiles (i.e. towards its "peak"). These values are ordered the same way as $00E4B9, though the "flat ground" value is unused.
$00E51C 33 bytes Misc. Sizes of the "top" area on various slope tiles; if Mario is moving downwards while within this distance from the top of the ledge/slope, he will be pushed on top of it. These values are ordered the same way as $00E4B9.
$00E53D 33 bytes Misc. Values stored to $13EE/$15B8 for each slope tile. These values are ordered the same way as $00E4B9, although the upside-down slope values actually do get used (perhaps unintentionally) for fireballs.
$00E55E 106 bytes Misc. Indices to the tables at $00E4B9-$00E53D and $00E632, when in any tileset except 0 and 7 (used for upside-down slopes). This table is indexed by Map16 tile number, for the range 16E-1D7.

An index to this table is stored at $82.
$00E5C8 106 bytes Misc. Indices to the tables at $00E4B9-$00E53D and $00E632, when in tilesets 0 or 7 (used for diagonal pipes). This table is indexed by Map16 tile number, for the range 16E-1D7.

An index to this table is stored at $82.
$00E632 512 bytes Misc. Values stored to $1694 for slopes, to indicate how far the top of the slope is from the top of the actual tile at any given X position; essentially, these values define the actual shape of each slope.

The indices to this table are the same as $00E4B9 (excluding flat ground), except multiplied by #$10 and with the sprite's X position within the tile (from $9A) added to it.
$00EA08 3 bytes ASM Change [20 29 F6] to [EA EA EA] (JSR $F629 to NOP NOP NOP) to prevent the player from getting killed when stuck in a block, such as a cement block. Instead, he will get thrown downwards.
$00EA82 1 byte Mario physics [10] Change to 80 to disable spin jumping from water
$00EA8E 1 byte Sound effect Mario spin-jump from water sound effect.
$00EA9C 1 byte Mario tilemap Mario's pose as he comes out of the water.
$00EAA0 1 byte Mario physics How high Mario can jump out of the water.
$00EAC1 26 bytes Objects Table of which slope tiles on Map16 page 1 are in water.
$00EB79 2 bytes ASM Change to A9 00 to make Super/Fire/Cape Mario have a 16x16 interaction field (like Small Mario) or change it to A9 01 to have a 16x32 interaction field (like big Mario) (in conjunction with addresses $01B4C0 and $03B67C)
$00EBFD 4 bytes Misc. Code that checks Mario's powerup state when entering doors.

Change to [80 02] to allow small doors can be entered even if Mario is big, and normal doors to be entered even if riding Yoshi.
$00EC0B 1 byte Controller Change from 16 to 15 to allow Mario to enter doors by holding up, instead of just pressing it.
$00EC0D 1 byte Controller What button to press to activate a door. Format of $7E0015. (byetUDLR)
$00EC11 1 byte Sound effect Entering Door Sound Effect.
$00EE69 2 bytes ASM Change to EA EA (NOP #2) if you want Small Mario to be able to break turn blocks with a spin jump. Alternatively, change this address to 80 18 (BRA $18) if you want turn blocks to not be breakable by spin jumps.
$00EE79 1 byte Objects Controls which (page 1) tile activates the brown creating/eating block sprite when stood on. Note that a few tiles are handled before this and can not trigger this effect.
$00EEB2 1 byte Objects Change from 1E to 04 (BNE jumps to $00EEB7 instead of $00EED1) to make it possible to trigger already triggered switch palace switches, as opposed to them randomly becoming solid for no obvious reason.

Note that this only applies to switches inserted using Direct Map16; switches inserted as extended objects will still disappear.
$00EEF6 1 byte Mario physics Change this to [80] to disable sliding on slopes. The slide will instead be changed to ducking like on flat terrain
$00EEF8 3 bytes ASM Change to [EA A9 00] to enable sliding while holding an item.
$00F05C 36 bytes Misc. Table for several Map16 blocks that handles which bounce block sprite is shown when the block is hit. Please see this thread and this thread for additional information.
Block order is as follows:
00-1C: Tiles 111-12D
1D-20: Tiles 021-024
21: Broken turnblock
22: Green ! block
23: Yellow ! block
$00F080 36 bytes Misc. Table for several Map16 blocks that handles which powerup is spawned out of the block when it's hit (see here for more details). Block order is the same as $00F05C.
$00F0A4 36 bytes Misc. Table for several Map16 blocks that handles from which sides the block is activated, in ----btrl format.
- = unused, b = bottom, t = top, r = right, l = left
Block order is the same as $00F05C.
$00F0C8 36 bytes Objects Table for several Map16 blocks that handles which tiles to generate (the value stored to $9C) when the block is hit. Block order is the same as $00F05C.
$00F124 2 bytes ASM Change from D0 39 to EA EA to make Munchers (and other hurt blocks such as castle spikes) hurt Mario while riding Yoshi.
$00F176 131 bytes Objects Green Star Block code.
$00:F1E9 - FG/BG Tileset in which coin question blocks' behavior are changed for the 3-block 1up bonus game.
$00:F1EA - Change from F0 0D to EA EA to disable the 3-block 1up bonus game, allowing you to use coin question blocks in levels with the switch palace tileset (4), and freeing up the 5 bytes at RAM address $13F4 for custom use.
$00F17A 1 byte Objects How many colored Exclamation Blocks are allowed by default within all tilesets to enable spawning items, with the exception of Ghost House, Boss Battles, etc...

$02 (Green, Yellow) by default, Can be set to $00 to disable item spawning, and instead make them solid.
$00F21D 1 byte Sprite Misc. Sprite to generate out of the bonus block (the rows of ?-blocks) if all three of them were guessed right. Default: #$05 (1-Up). Other possible values include, but are not excluded to: #$00 = None; #$01 = Mushroom; #$02 = Fire Flower; #$03 = Star; #$04 = Feather.
$00F237 1 byte Sound effect Incorrect! Sound effect for the bonus 3 block minigame.
$00F253 1 byte Misc. What the remaining blocks become when hitting the incorrect block in a bonus area
$00F2BB 3 bytes ASM Change [99 3C 1F] to [EA EA EA] to make the 1up checkpoint work again when reentering a level
$00F2CD 33 bytes Objects The code for the midway point tile (Map16 tile 38, not the extended object).
$00F2CE - What tile gets generated after breaking the midway point tape (see $9C; default is 02 - none).
$00F2D5 - Change to [80 01] to disable the glitter that appears after touching a midpoint.
$00F2E2 - Change to [80] to disable midway powerups (or [80 01] to make them always make you big, even if you have a better powerup).
$00F2E5 - What powerup midway points give you.
$00F2E9 - What sound effect midway points play.
$00F316 1 byte Misc. Change '0F' to the following, and the 3UP moon will add this to your life or score counter:

00 = Nothing at all
01 - 0C = Scores 10-8000.
0D = 1UP.
0E = 2UP.
0F = 3UP.
10 = 5UP (glitched).
11-FF = Best not to use.
$00F325 3 bytes ASM Replace '99 EE 1F' with 'EA EA EA' to make moons reappear when you re-enter a level after collecting them.
$00F332 69 bytes ASM The code that handles a Yoshi coin being collected.

$00F333 is the Map16 tile number of the top half of the coin.
$00F33C is the offset of the score sprite when the top half is collected, relative to the bottom half.
Changing $00F343 [EE 22 14] to [EA EA EA] will disable the Yoshi Coin counter in the status bar. Note that this will also stop them from respawining when you've got five of them.
$00F34A is the number of Yoshi coins that need to be collected to trigger the "collected all" flag.
Changing $00F354 [99 2F 1F] to [EA EA EA] will make the Yoshi coins reappear even after collecting all 5 (or more) of them.
$00F359 is the Yoshi coin sound.
$00F35E is how many regular coins a Dragon Coin gives you.
$00F364 is the value stored to $9C when the coin is collected.
$00F377 59 bytes Subroutine (JSL) The subroutine that handles the score when you get a Yoshi coin.
Changing $00F37A [EE 20 14] to [EA EA EA] will stop the Yoshi Coin counter from increasing and giving you points and giving you a life after you collected enough for one.
$00F38A 40 bytes Subroutine (JSL) Subroutine to spawn a score sprite at Mario's position. Load the score sprite to spawn in A before calling; alternatively, jump a few bytes earlier to $00F388 to specifically spawn a 1up score sprite.
$00F3B2 18 bytes Subroutine (JSR) This subroutine gets an index to the "one bit per level" tables ($1F2F, $1F3C, $1FEE) depending on the overworld level number ($13BF). When it returns, Y holds the byte index to $1F2F and A holds the bit to check/set.
$00F3E5 4 bytes Controller Which button you have to be pushing in order to enter the 4 kinds of pipes. In order: End on right, end on left, end on bottom, end on top.
$00F3ED 1 byte Misc. [37] Offset of entering vertical pipes. Setting it to any other number than 36-38 will make the player incapable of entering.
$00F43A 1 byte Sound effect Going Down Pipe Sound
$00F443 10 bytes Subroutine (JSR) Subroutine that checks if Mario is in the center of a door. Not used for boss doors.

$00F44B [08] is the width of the enterable region of the door (up to 0x10). $00F447 [04] is how far to offset the enterable region; this should be set to half of $00F44B.
$00F44D 24 bytes Mario physics Routine that sets up Mario's object collision points for RAM addresses $98-$9B, inclusive.
$00F598 2 bytes Mario physics Highest Y position that the player is able to be at, 16 bit. Note that this is a negative value.
$00F5AD 2 bytes Misc. Change to 80 03 (BRA $03) to make it so falling into a pit results in death even in Yoshi wings levels, or to 80 00 (BRA $00) to make it so falling into a pit will always activate the normal exit.
$00F5B7 79 bytes Subroutine (JSL) Hurt Subroutine (JSL to it to hurt the player).
$00:F5B9: Change to F0 to make mario invincible. (Will not make him invincible to crushing objects, lava or pitfalls).
$00:F5C1-$00:F5C3: Change from 0D 93 14 to EA EA EA to make Mario die normally when touching an enemy/muncher even after getting the goal tape/sphere.
$00:F5C6: Change from 9C E3 18 to EA EA EA to prevent coin game cloud counter from resetting on hit.
$00:F5D7: Change this to 80 to have Mario die when touched, regardless of powerup status.
$00:F5E3: This SFX plays when you get hit when flying.
$00:F5ED: Invincibility timer when hit while flying.
$00:F5F4: Mario shrinking SFX.
$00:F5F8-$00:F5FB: Set to EA EA EA EA to disable item box auto-falling when you get hurt.
$00:F5FC-$00:F5FF: Change the "A9 01 85 71" to "EA EA EA EA" to disable mario's shrinking animation when hit.
$00F606 35 bytes Subroutine (JSL) Death Subroutine (JSL to it to kill Mario).
$00F607 controls the speed at which the player jumps up ($7E007D format).
$00F60B controls which music is played when Mario dies.
$00F619 can be changed from 0D 14 to 12 14 to make the screen not scroll when the player loses a life.
$00F61C controls the amount of time Mario stays on screen before dying.

*note that if Mario Falls into a hole, the rom will JSL to $00F60A to skip the death animation
$00F69F 4 bytes Misc. Where Mario has to be vertically on-screen for the game to consider the screen "caught up" with him in a particular direction, thereby stopping it from scrolling. The first two bytes are for scrolling upwards, while the second two are scrolling down.
Pages: « 1 2 3 4 5 6 » Per Page: 25 50 75 100 150 500 All

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2019 - SMW Central
Legal Information - Privacy Policy - Link To Us


Total queries: 7

Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • SMBX Community
  • ROMhacking.net
  • MFGG