Banner
The Overworld Design Contest ends in
9 DAYS, 4 HOURS, 3 MINUTES AND 9 SECONDS
Views: 904,996,024
Time:
20 users online:  Atari2.0, Black Goku, BlueToad, DasFueller, Far, Fintan_, Infinity, Jazzman287, Julintendo, JX444444, King Mayro, Mirann, Paperdomo101, rectify, SJandCharlieTheCat, slopcore, SubconYoshi,  Telinc1, TheBiob, TrendzAndz - Guests: 84 - Bots: 109 Users: 50,740 (2,092 active)
Latest: CritterJason
Tip: The "Edit Animation Settings" tab in Lunar Magic is very convenient if you want to disable certain animations in the game to make room for your own graphics or ExAnimations.
Not logged in.
SMW Memory Map
Displaying 500 out of 3087 addresses. Show Waiting Addresses (24)
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 7 » Per Page: 25 50 75 100 150 500 All
ROM Address Length Type Description Details
$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: Map16 tile number of the top half of the coin.
- $00F33C: offset of the score sprite when the top half is collected, relative to the bottom half.
- $00F343: changing [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 respawning when you've got five of them.
- $00F34A: number of Yoshi coins that need to be collected to trigger the "collected all" flag.
- $00F354: changing [99 2F 1F] to [EA EA EA] will make the Yoshi coins reappear even after collecting all 5 (or more) of them.
- $00F359: Yoshi coin sound.
- $00F35E: amount of regular coins a Dragon Coin gives you.
- $00F364: 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.
$00F3E3 1 byte Coordinate [0A] Signed offset of the enterable region of the left tile of an exit-enabled vertical pipe from the left edge of the tile, in pixels, minus 1

Change to #$FF to make up pipes enterable as no matter where you hit them. (For use with the hex edit at $00F3F9)
$00F3E4 1 byte Coordinate [FF] Signed offset of the enterable region of the right tile of a vertical exit-enabled pipe from the left edge of the tile, minus 1
$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.
$00F3F9 1 byte Coordinate [05] Width of the enterable region of a vertical exit-enabled pipe tile (either one), in pixels

In vanilla SMW, this is half the width of the enterable region of the entire pipe, but this won't be true if the two exit-enabled pipe tiles are made to have overlapping enterable regions.

Change to #$10 to make up pipes enterable no matter where you hit them. (For use with the hex edit at $00F3E3)
$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.
$00F545 80 bytes Subroutine (JSL) Routine that handles behaviours for various Map16 tiles. For P-Switch dependent tiles, this routine only sets the "act as", not the graphics.

$00F54C: Map16 tile number (low byte) that should act like a ? Coin Block when the blue P-Switch is active. Default is ($00)29, the Invisible POW ? Coin Block.
$00F555: Map16 tile number (low byte) that the Invisible POW ? Coin Block should act like when the blue P-Switch is active. Default is ($01)24, the ? Coin Block.

$00F55B: Map16 tile number (low byte) that should act like a Brown "used" Block when the blue P-Switch is active. Default is ($00)2B, the Coin.
$00F572: Map16 tile number (low byte) that Coins should act like when the blue P-Switch is active. Default is ($01)32, the Brown "used" Block.

$00F561 & $00F563: Range of Map16 tiles (page 0) that set the "current Palace Switch being pressed" value in $1423. $00F561 (#$EC) is subtracted from the Map16 tile number, then compared with $00F563 (#$10). If the result is less than #$10, the value gets incremented by 1 and stored to $1423. This makes it so that only tiles ($00)EC to ($00)FB, the Palace Switch tiles, set $1423.

$00F57B: Map16 tile number (low byte) that should act like a Coin when the blue P-Switch is active. Default is ($01)32, the Brown "used" Block.
$00F585: Map16 tile number (low byte) that should act like a Coin when the silver P-Switch is active. Default is ($01)2F, the Black Piranha Plant.
$00F58E: Map16 tile number (low byte) that the Brown "used" Block should act like when the blue P-Switch is active, and the Black Piranha Plant should act like when the silver P-Switch is active. Default is ($00)2B, the Coin.
$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.
$00F6A7 6 bytes Misc. How fast the camera "catches up" to Mario when scrolling vertically. The first two bytes are when scrolling upwards, while the second two are scrolling down.

The third entry is a bit strange, and for the most part unused. If the level is set to "no vertical scroll unless flying/climbing/etc.", then it gets used as the upwards scroll speed of the screen when it's below the point where the screen "locks" vertical scrolling. Since this is normally at the bottom of a level where the screen can't scroll any further down, it can only really get used in vertical levels.
$00F6AD 6 bytes Misc. Vertical limits for scrolling the screen.

The first two bytes are the highest distance the screen can scroll upwards; essentially, it's the top of the level.
The second two are the highest distance the screen can scroll upwards... when the screen is stationary or moving downwards. Recommended to keep it identical to the first two bytes.
The third entry is where the screen's vertical scrolling locks in a level with the "no vertical scroll unless flying/climbing/etc." option. The screen can actually still scroll vertically if it goes below this point, but it can't scroll up past it unless one of the special conditions is met.
$00F6B3 4 bytes Misc. The maximum distances the screen will scroll normally (without L/R held), in 16-bit. The first two are scrolling left, the second two are scrolling right.

Setting these values higher than the ones in $00F6CD may cause the screen to act strangely.
$00F6C1 4 bytes Misc. How quickly the screen moves when scrolling with L/R. The first two bytes are scrolling right, while the second two are scrolling left.

It's worth noting that these are also used to check whether Mario is facing the direction the screen is scrolling, for deciding whether to have it "catch up" to him while he's walking around. It only matters whether the two values are negative or positive, though, so as long as you aren't changing the scroll direction, there shouldn't be any issues. If you want to fix that, you can do so by changing $00F8CB from 0xBF to 0xC5.
$00F6C7 4 bytes Misc. How quickly the screen scrolls horizontally when "catching up" to Mario while he's walking around normally. The first two bytes are right, while the second are left.
$00F6CD 4 bytes Misc. The maximum distances the screen can be scrolled with L and R, in 16-bit. The first is scrolling right, the second is scrolling left.

Setting these values lower than the ones in $00F6B3 may cause the screen to act strangely when screen scrolling.
$00F6DB 516 bytes Misc. Level camera handling routine. This routine handles camera movement with the player.

Horizontal scrolling is handled at $00F70D (horizontal level) and $00F75C (vertical level)

Vertical scrolling (both horizontal and vertical levels) handled at $00F7F4

L/R scrolling (as well as the “auto look ahead” based on player's facing) handled at $00F8AB (scroll lines being moved around is handled at $00CE09)

Layer 2 scrolling (mainly for background) is handled at $00F79D, which determines the scrolling rate in relation with layer 1.
$00F6E5 2 bytes Misc. Distance Mario must be offset to the left of the screen's "hotspot" defined by $7E142A for the screen to scroll leftwards.
$00F6EC 2 bytes Misc. Distance Mario must be offset to the right of the offset at $00F6E5 for the screen to scroll rightwards. Essentially, this defines the width of the area where the screen will never scroll horizontally.
$00F70E 2 bytes Coordinate Lowest Y position the screen is allowed to scroll down to in horizontal levels. Change from C0 00 to CF 00 (do the same on $00F6B1 so the "no vertical scroll unless flying/climbing/etc." work consistently) to allow the bottom row of 16x16 blocks to be shown.
$00F727 1 byte Misc. Change #$00 to #$02 (value to be stored in $7E:0055 and $7E:0056) and you'll get a SMB1-like effect regarding screen-scrolling: it's impossible to go to the left, even with L/R-scrolling.
$00F79D 13 bytes ASM Code that handles the Layer 2 horizontal scroll settings (LM's "Layer 2 (BG) Scrolling Rate").
$00F7AA 24 bytes ASM Code that handles the Layer 2 vertical scroll settings (LM's "Layer 2 (BG) Scrolling Rate").
$00F806 2 bytes Coordinate How high Mario must be in order to make the screen scroll vertically, when the scrolling mode is 'Vertical scroll at will', when Mario lands on a platform. 16-bit value, little endian.
The lower the value, the higher Mario must be in order to make the screen scroll vertically.
$00F878 1 byte Misc. Change from D0 to 80 to activate free vertical scrolling. This will bypass the routine that checks whether Mario is standing on solid ground or not (RAM address $72) and sets the scrolling flag accordingly. The camera follows Mario instead of waiting for him to land on something.
$00F99C 2 bytes Coordinate What 16-bit Y position on screen ($7E:0080) the player should have at the very minimum, before being killed in the Iggy/Larry battle room. Used to simulate lava tiles.
$00F9F5 27 bytes Empty Unused data.
$00FA10 9 bytes Subroutine (JSL) Unreachable, but can be JSL'ed to clear out the sprite status table.
$00FA46 1 byte Misc. Time to shake ground when you hit the big switch in the switch palace. Default is 20.
$00FA4D 1 byte Sprite number Sprite that's spawned when hitting a switch palace. Note that it always uses slot 02.
$00FA80 95 bytes Subroutine (JSL) The routine which triggers the goal tape.

$00FABF - [06] The state which sprites are put into when the goal tape is triggered. Can be set to any of the valid values for RAM address $14C8.
$00FADF 28 bytes Misc. Table of the various sprites Mario receives for carrying different items past the goal tape.

The table itself is divided into four 7-byte sections: P-switches and springboards will use the second section, keys will use the third, baby Yoshi will use the fourth, and anything else will use the first.
Each section is then indexed by Mario's current state, in the order: small, big, cape, fire, with star power, on Yoshi, and unused. The star power index is essentially unused, however, because the counter always gets cleared before the table gets loaded from.

If the value returned is E0-EF, Mario will receive the sprite written at $00FB50 (1-up by default). If it's F0-FF, he'll receive the sprite at $00FB54 (...also a 1-up by default). In both cases, it'll also store the lower four bits to $1594, which for a 1up, will affect the number of lives it gives (0 = 1 life, 1 = 2 lives, 2 = 3 lives, 3 = 5 lives). It's 0 in every obtainable case, though, so the feature is effectively unused.

Additionally, $00FB40 is the sprite to spawn if Mario already has the sprite in his item box (again, 1-up by default).

Lastly, you can re-enable factoring star power into the table by changing $01C0FE to EA EA EA.
$00FB40 1 byte Sprite number Sprite that the Blue/Silver P-switch, Portable Spring Board, Throw Block Sprite and carryable stunned enemies will turn into when they reach the goal point.
$00FB50 1 byte Sprite number Sprite that the Key will turn into when it reaches the goal point.
$00FB53 5 bytes ASM Change to EA EA EA EA EA to prevent the 1UPs being spawned at the goal point. $00:FB54 controls the sprite number that Baby Yoshi (Green, Red, Yellow, Blue) will turn into when it reaches the goal point.
$00FB6F 1 byte Sprite Misc. The Y speed of the sprite when you carry an item over the goal.
$00FB74 1 byte Sprite Misc. The X speed of the sprite when you carry an item over the goal.
$00FB7E 1 byte Sound effect Sound for items given at goal point
$00FBAC 8 bytes Sprite subroutine (JSL) Routine that handles sprites turned into a coin by the goal tape. It's a JSL wrapper to the subroutine at $00FBB4.
$00FBB4 111 bytes Sprite subroutine (JSR) Routine that handles sprites turned into a coin by the goal tape. It first makes the coin appear as a smoke cloud until $1540,x is 0, then it draws the coin, handles its movement and finally it gives Mario a coin, erasing the sprite permanently.
$00FC17 1 byte Misc. [02] Difference between point values of successive sprite coins spawned at the goal tape. The default is 02, so the point sequence will go 100, 400, 1000, 4000, etc.; you can change it to 01 to make the point values go 100, 200, 400, 800, etc. or to 00 to make it always stay at 100 no matter how many sprites get turned into coins.
$00FC23 87 bytes Sprite subroutine (JSL) An unused routine. When called, if there's a Yoshi spawned in the level and Mario is not riding him, it'll teleport him to the left edge of the screen running towards the right, and move him to Mario's Y position. If there's no Yoshi spawned, nothing happens. No matter what, the Yoshi will be turned to green and without wings.

Note that the routine overwrites the Y register.

$00F6CE: [$10] X speed given to Yoshi.
$00FC7A 114 bytes Subroutine (JSL) Used in SMW to initialize Yoshi when entering a level, or sublevel. JSLing to this will cause a Yoshi to spawn and Mario will be riding him, however the Yoshi will not transfer to sublevel or to the overworld. You must set $13C7 if you plan to manually JSL to this routine.
Changing $00FCCE to 0x80 will keep Yoshi from turning blue after grabbing a pair of Yoshi wings.
$00FCF6 1 byte Coordinate X lo position of Iggy and Larry at the start of the boss battle.
$00FCFA 1 byte Coordinate X hi position of Iggy and Larry at the start of the boss battle.
$00FCFF 1 byte Coordinate Y lo position of Iggy and Larry at the start of the boss battle.
$00FD03 1 byte Coordinate Y hi position of Iggy and Larry at the start of the boss battle.
$00FD27 1 byte Sprite number Object that Mario "breathes" while underwater (small bubble)
$00FD5A 67 bytes Subroutine (JSR) SMW's glitter trail subroutine, called when you collect a coin or Yoshi coin.
Change $00FD6B to EA EA EA EA EA (NOP #5) to disable showing a glitter effect when a coin is collected.
$00FE17 1 byte Sprite number Object that Mario leaves when he jumps into water (small bubble)
$00FE4A 73 bytes Subroutine (JSR) Routine to show little puff of smoke when the player turns around.
$00FE94 1 byte Mario physics Initial fireball X speed facing left
$00FE95 1 byte Mario physics Initial fireball X speed facing right
$00FE96 1 byte Coordinate X-position of Mario's fireball (left)
$00FE97 1 byte Coordinate X-position of Mario's fireball (right)
$00FE98 1 byte Coordinate X-position of Mario's fireball when on Yoshi (left). Only relevant if you enable the debug code at $00D087.
$00FE99 1 byte Coordinate X-position of Mario's fireball when on Yoshi (right). Only relevant if you enable the debug code at $00D087.
$00FE9A 1 byte Coordinate X-position of Mario's fireball when on Yoshi and ducking (left). Only relevant if you enable the debug code at $00D087.
$00FE9B 1 byte Coordinate X-position of Mario's fireball when on Yoshi and ducking (right). Only relevant if you enable the debug code at $00D087.
$00FE9C 1 byte Coordinate X-position of Mario's fireball (left), high byte.
$00FE9D 1 byte Coordinate X-position of Mario's fireball (right), high byte.
$00FE9E 1 byte Coordinate X-position of Mario's fireball when on Yoshi (left), high byte. Only relevant if you enable the debug code at $00D087.
$00FE9F 1 byte Coordinate X-position of Mario's fireball when on Yoshi (right), high byte. Only relevant if you enable the debug code at $00D087.
$00FEA0 1 byte Coordinate X-position of Mario's fireball when on Yoshi and ducking (left), high byte. Only relevant if you enable the debug code at $00D087.
$00FEA1 1 byte Coordinate X-position of Mario's fireball when on Yoshi and ducking (right), high byte. Only relevant if you enable the debug code at $00D087.
$00FEA2 1 byte Coordinate Y-Position for Mario's Fireballs (Left)
$00FEA3 1 byte Coordinate Y-Position for Mario's Fireballs (Right)
$00FEA4 1 byte Coordinate Y-position of Mario's fireball when on Yoshi (left). Only relevant if you enable the debug code at $00D087
$00FEA5 1 byte Coordinate Y-position of Mario's fireball when on Yoshi (right). Only relevant if you enable the debug code at $00D087
$00FEA6 1 byte Coordinate Y-position of Mario's fireball when on Yoshi and ducking (left). Only relevant if you enable the debug code at $00D087.
$00FEA7 1 byte Coordinate Y-position of Mario's fireball when on Yoshi and ducking (right). Only relevant if you enable the debug code at $00D087.
$00FEB6 1 byte Sound effect Fireball sound effect
$00FEC0 1 byte Sprite number Object Fire Mario shoots (must change $00FEA9 to 07 for some values to work)
$00FEC5 1 byte Mario physics Initial fireball Y speed
$00FF93 45 bytes Empty Empty (all FF) in a clean ROM.
Used by many patches (like fastrom), and the last byte becomes 42 when you lock the ROM.
$00FFC0 64 bytes Misc. Internal ROM header. Contains a brief summary of the game. See details. Data format
$018008 6 bytes Sprite subroutine (JSR) Subroutine that checks if a sprite is touching a wall. If the accumulator is set, it's touching a wall.
$01800E 6 bytes Sprite subroutine (JSR) Subroutine that is accessed by sprites to check if a sprite is touching the ground. If the accumulator is set, it's touching the ground.
$018014 6 bytes Sprite subroutine (JSR) Routine that checks if a sprite is touching a ceiling. If the accumulator is set, it's touching a ceiling.
$01801A 8 bytes Sprite subroutine (JSL) The subroutine that updates a sprite's Y position without gravity.
$018022 8 bytes Sprite subroutine (JSL) The subroutine that updates a sprite's X position without gravity.
$01802A 8 bytes Sprite subroutine (JSL) Subroutine that updates a sprite's X/Y position, including gravity and block interaction.
$018032 8 bytes Sprite subroutine (JSL) Sprite<->sprite interaction subroutine
$01803A 8 bytes Sprite subroutine (JSL) A subroutine that makes sprites interact with each other and with the player, essentially combining $018032 and $01A7DC.
$018042 8 bytes Sprite subroutine (JSL) SMW's first shared subroutine for drawing sprites. This one draws four 8x8 tiles in a 16x16 arrangement. Not very useful for custom sprites.
$01804A 4 bytes Subroutine (JSR) Routine that inverts the value in the accumulator.
$01804E 62 bytes Sprite subroutine (JSR) Routine to spawn dust sprite (smoke sprite number $03) at the sprite's position. Used for example by Sliding Koopas and Monty Moles.
$01808C 63 bytes Subroutine (JSL) Routine that runs all the normal and cluster sprites routines.
$0180D2 85 bytes Subroutine (JSR) Routine that gets the current sprite's OAM index and decrements all the sprite timers.
$018137 26 bytes Pointer Sprite status subroutine pointers. These are called based on the value of $14C8,x; valid values are 00-0C.
$018151 6 bytes Sprite Misc. This is sprite status #$00, which is is called when a sprite is either dead or nonexistent. It also sets $161A,x to #$FF to prevent that sprite from being reloaded.
$018157 22 bytes Sprite Misc. Routine that handles sprites in the "powerup from being carried past the goal tape" state ($14C8,x = #$0C). It calls the sprite's main code, then despawns it if it went offscreen and applies movement (decelerating the Y speed).
$01816D 5 bytes Sprite Misc. Routine that handles sprites in the "turned into coin by the goal tape" state ($14C8 = #$06). It just JSLs to $00FBAC.
$018172 11 bytes Subroutine (JSR) This is sprite status #$01, which will call the current sprite's init routine.
$01817D 402 bytes Pointer Pointers to sprite initialization routines. These are called based on the sprite number ($9E,x). Valid values are 00-C8; sprites C9 and above are considered different types of sprites and handled by other routines.
$018223 2 bytes Pointer Change from C2 85 to 35 84 to allow throw blocks to be placed directly in Lunar Magic, with infinite timer until they disappear.
$018327 1 byte Timer [3F] How many frames until a Timed Lift (sprite BA) will fall if it starts at an odd X position. Default value is $3F, or about 1 second.
$01832F 1 byte Timer [FF] How many frames until a Timed Lift (sprite BA) will fall if it starts at an even X position. Default value is $FF, or about 4 seconds.
$018335 4 bytes Palette Colours of Yoshi Eggs (Red, Blue, Yellow, Blue)
$018340 1 byte Misc. How many types of Yoshi Eggs to allow, minus one
$01834C 2 bytes Sprite physics Initial leftward and rightward X speeds of diagonally moving sprites, i.e. stream of boo buddies and reflecting fireball (F0).
$018357 1 byte Misc. Initial Y speed of diagonally moving sprites, i.e. stream of boo buddies and reflecting fireball (F0).
$01836A 1 byte ASM Change to EA to make both wooden spikes move up or down depending on X&1 instead of sprite AC always moving down first.
$018391 1 byte Sound effect SFX played by the Banzai Bill
$0183A0 4 bytes Sprite number Sprites inside exploding turn block (Fish, Goomba, Shelless Green Koopa, Green Koopa)
$0183DB 1 byte Timer Length of time before sprite #19's message box appears (don't set lower than 04)
$018455 1 byte Misc. How many types of P-Switches to allow, minus one
$018466 2 bytes Palette Colours of P-Switches (Blue, Silver)
$0184A5 1 byte Sprite number Sprite spawned by killing Lakitu with cape or fireball (Lakitu Cloud)
$0184C6 4 bytes ASM Change to EA EA EA EA to make lakitu cloud never get spawned
$0184E4 1 byte Sprite Misc. [10] Timer to send Bullet Bills behind objects, set on spawn.
$01854C 1 byte Misc. How many segments Pokey has when Mario is riding Yoshi. The amount of segments depends on these bits:
---x xxxx. If any of the x bits are set, a segment will be added. If none is set, the sprite won't appear. If any of the - bits is set, the sprite won't appear.
$018553 1 byte Misc. How many segments Pokey has when Mario isn't riding Yoshi. The amount of segments depends on these bits:
---x xxxx. If any of the x bits are set, a segment will be added. If none is set, the sprite won't appear. If any of the - bits is set, the sprite won't appear.
$01857A 8 bytes Sprite subroutine (JSR) Face Mario subroutine, usually used by sprites to initially face Mario's direction.
$0185CC 402 bytes Pointer Pointers to sprite main routines. These are called based on the sprite number ($9E,x). Valid values are 00-C8; sprites C9 and above are considered different types of sprites and handled by other routines.
$018763 38 bytes Sprite subroutine (JSR) Goal point sphere/boss killed code.

- $018778: if you change this to [20 23 CD] and change $01CD23 to [9E C8 14 CE C6 13 60], it will prevent the player from walking after touching a goal sphere in a horizontal level.
- $018784: it controls which music is played when it's collected.
$018890 3 bytes Subroutine (JSR) Initialization routine for sprite 52 (moving ledge hole in ghost house) that simply decrements the low byte of its Y position.
Lunar Magic v2.53+ renders this routine unused by changing the initialization routine to $0185B7 instead. This is done in order to fix the glitch where placing the hole at the top of a subscreen causes its position to wrap around to the bottom of the subscreen.
$018898 84 bytes Sprite subroutine (JSR) Subroutine that makes Yellow Koopas jump over shells.
$0188E5 is the Y speed they get when jumping ($C0).
$0188EC 4 bytes Sprite Misc. Standard X speeds for sprites 00-13. The first two bytes are used when the "move faster" bit at $0188F0 is clear for the sprite, while the second two are used when it's set.
$0188F0 20 bytes Sprite Misc. Various properties for sprites 00-13. Format: ak--jfls.
a = animate twice as fast in air
k = use 32x16 tilemap (also draws wings on sprites 08+)
-- = unknown/unused
j = jump over thrown shells
f = follow Mario
l = stay on ledges
s = move faster (use $0188EE for X speeds instead of $0188EC)
$0189ED 1 byte Sprite tilemap related Tilemap of blue shell less koopa sliding out of shell
$018AED 1 byte Sprite Misc. Change from D0 to 80 to make bob-ombs not stun themselves then explode on their own, like SMB3 and other games.
$018AF5 1 byte Timer How quickly Bob-omb explodes
$018BCD 1 byte Misc. What animation frame most regular sprites use when turning around
$018C0D 1 byte Sprite number Sprite number to start adding wings to 2-tile high sprites
$018C31 1 byte Sprite number Sprite that Spiny Egg turns into after touching the ground
$018CD7 1 byte Misc. Time it takes for a Red Vertical Parakoopa to turn around after reaching it's maximum/mimimum Y speed. (08)
$018DA2 1 byte Sprite physics Winged Goomba jump height (between 80-FF).
$018DC7 16 bytes Sprite tilemap related Goomba Wing alignment, X position. First 8 bytes are for the alignment when the goomba's hopping left, the other 8 when he's hopping into the right direction.
$018DDF 2 bytes Sprite tilemap related Palette/GFX page/Priority/Flip of Goomba Wing Tiles
$018DE1 4 bytes Sprite tilemap related Sprite tilemap: Goomba Wings
$018DE5 4 bytes Sprite tilemap related Size of Goomba Wing tiles
$018E6E 4 bytes Misc. Speed of piranha plant (in pipe, going up, staying up, going down).
$018E93 1 byte Sprite Misc. YXPPCCCT properties of the stem of sprite 2A, the upside-down piranha plant. Change to $0A to make it use the first graphics page.
$018ECE 1 byte Misc. Replace D0 with 80 to make the classic and upsidedown piranha plants keep coming out of the pipe even if Mario is near or on top of the sprite.
$018F8D 1 byte Sprite number Object Hopping Flame leaves behind
$018FC7 8 bytes Sprite tilemap related Bullet Bill properties, YXPPCCCT.
- First byte: Right flying bullet bill
- Second byte: Left flying bullet bill
- Third byte: Vertically upwards flying bullet bill
- Fourth byte: Vertically downwards flying bullet bill
- Fifth byte: Diagonally flying bullet bill, lower left
- Sixth byte: Diagonally flying bullet bill, upper left
- Seventh byte: Diagonally flying bullet bill, upper right
- Eighth byte: Diagonally flying bullet bill, lower right
$018FCF 8 bytes Sprite tilemap related Which GFX frame to use (00 = regular bill, 01 = vertical bill, 02 = diagonal bill) for the Bullet Bills. Same order as x91C7.
$018FD7 8 bytes Sprite physics X speed of Bullet Bills. Same order as $018FC7.
$018FDF 8 bytes Sprite physics Y speed of Bullet Bills. Same order as $018FC7.
$0190B2 8 bytes Sprite subroutine (JSL) SMW's third shared subroutine for drawing sprites. This one draws a single 16x16 tile.
It can be used by custom sprites, although you'll have to set the correct tile number in OAM afterwards (see the example code).
Example
$0190BA 122 bytes Sprite physics Positions of each of the 4 object collision points for each sprite hitbox, relative to the sprite's XY position ($E4/$14E0 and $D8/$14D4). Consists of two 61-byte tables for each of the X and Y positions:
  • $0190BA-$0190F6: X positions
  • $0190F7-$019133: Y positions
Each byte indexed by %00ccccpp:
  • cccc: Which hitbox to use; retrieved from the low nybble of $1656.
  • pp: Which of the 4 collision points to use:
    • 00 = Right
    • 01 = Left
    • 10 = Bottom
    • 11 = Top
$019138 8 bytes Sprite subroutine (JSL) JSL for sprites interacting with objects. Actually calls routine at $019140.

During processing GPS blocks:
  • $0A-$0D: Position (in pixels) of the collision point currently being processed for sprite interaction with blocks in the level:
    • $0A-$0B (2 bytes): X position
    • $0C-$0D (2 bytes): Y position

    Note, just like $98-9B, coordinates are respective to the top-left of the layer currently being processed. Hence, if Layer 1 and Layer 2 are offset from each other, this value will differ between the two, even when the sprite is at the same position with respect to the level.
  • $0F (1 byte): Index of one of the 4 collision points currently in use. Also used to eject sprite out of block horizontally:
    • #$00 = SpriteV: Right (touches blocks from left)
    • #$01 = SpriteV: Left (touches blocks from right)
    • #$02 = SpriteH: Down (touches blocks from above)
    • #$03 = SpriteH: Up (touches blocks from below)

    Be careful when using custom blocks, $0F remains used before and after custom block processing at $019533. If $0F is modified and not restored, sprite interaction glitches can occur.
$019211 115 bytes Subroutine (JSR) Sprite buoyancy routine. Called from the object interaction routine and handles collision points.

Change $01927F from $13 to $14 to fix an exploit that freezing (setting $9D or pausing the game) can be used to manipulate wall-embedded sprites (with an Xspeed of $00) to move in a desired direction (left and right), see here at 1:40 for an example.
$0192C5 2 bytes Misc. [$01 $FF] Speed (right, left) given by conveyors (tiles 10C/10D) to sprites standing on them.
$0193EF 22 bytes Sprite subroutine (JSR) The code that makes sprites move if placed on conveyor belts.
$0195A5 1 byte Sprite physics Change this value to $00 to fix a small glitch with carryable sprites where throwing the sprite upwards at a hittable block will occasionally cause it to hit the block without actually activating it (due to registering both the bottom of the block and the side of another block at the same time).
$0195FC 32 bytes Empty Unused data.
$01961C 8 bytes Sprite number Sprites spawned by stomping Koopa Troopas (shelless Koopas)
$01962A 49 bytes ASM Code that handles the Bob-omb flashing and exploding. Change $019630 from 1D to 1C to disable the flashing entirely.
$019632 1 byte Sound effect Bob-omb's explosion SFX
$01963C 1 byte Timer Length of Bob-omb's explosion
$019654 1 byte Sprite Misc. Bob-omb Flashing Cycle

00-Palette 06
02-Palettes 04,06
04-Palettes 02,06
06-Palettes 00,04,06
08-Palettes 06,0E
0A-Palettes 04,06,0C,0E
0C-Palettes 02,06,0A,0E
0E-All Palettes
$019688 1 byte Misc. Which shell colour makes a shelless Koopa become invincible (00=Green; 01=Red; 02=Blue; 03=Yellow)
$0196C6 1 byte ASM Change from 1A to 04 to prevent shelless Koopas from hopping out of stunned shells (Use with $01AA15)
$019768 1 byte Sprite number [07] Which of the four Koopas generates a coin when stomped. Valid values are 04 (green), 05 (red), 06 (blue), and 07 (yellow). All others will make the coin never appear.
Alternatively, you can change the next two bytes ([D0 0A]) to [EA EA] to make all (shelled) Koopas spawn coins.
$01977C 1 byte Sprite number Sprite that's spawned when a Yellow Koopa is stomped (Coin)
$019807 1 byte Misc. Default animation frame to use for the shell
$01980E 1 byte Misc. Animation frame to use for the shell when Mario is turning around while holding it
$01983F 1 byte Timer Timing that enemies in a stunned state begin to shake
$019851 1 byte Sprite tilemap related Change to #$80 to prevent koopas eyes blinking while inside the shell.
$019881 1 byte Sprite tilemap related Koopa eye tiles when in shell (open)
$019889 1 byte Sprite tilemap related Koopa eye tiles when in shell (closed)
$0198A7 2 bytes Sprite physics [$E0 $20] X speed (left, right) to give Disco Shells when bumping into a wall.
$0198C7 1 byte Sprite physics ($20) Maximum right speed of Disco Shells.
$0198D1 1 byte Sprite physics ($E0) Maximum left speed of Disco Shells.
$019913 8 bytes ASM Start of sprite being kicked routine.
$019972 1 byte Sprite physics Y speed of kicked Koopa shells and throw blocks when they hit the ground.
Change from 10 to 0C to make shells always glide over one-tile-wide holes, or 14 to make them always fall in.
$01999F 1 byte Sound effect Hitting block with shell sound
$019A22 4 bytes Misc. Animation frame assignments for the shell
$019A26 4 bytes Misc. Flip of each animation frame
$019A34 1 byte Misc. How many animation frames the spinning shell has, -1
$019A52 41 bytes Sprite subroutine (JSR) This is the routine that handles sprites in the "killed by a spin jump state" ($14C8,x = #$04). It handles drawing the smoke on screen, then it erases the sprite permanently when $1540,x is #$00.

$019A57: change to $60 to stop the smoke from appearing (doesn't stop the spin jump stars from appearing).
$019A93 1 byte Sprite physics Change to 02 to fix a small glitch where sprites can slide through solid blocks while sinking in lava if they're moving to the left.
$019AA2 66 bytes Sprite subroutine (JSR) Routine for sprites in state 02 (killed and falling offscreen). It's also shared by the routine for sprites killed in lava.
$019AE4 47 bytes Sprite Misc. Routine that handles sprites in the "smushed state" ($14C8,x = #$03). It draws graphics (with special cases for Dino-Torch and Rex) and handles speed and movement. Once $1540,x reaches 0, the sprite is erased permanently.
$019B0B 1 byte Sprite tilemap related Tile used by squished Dino Torch
$019B13 112 bytes Sprite Misc. Routine called during two sprite death states ($14C8,x = #$02 or #$05). If the "Don't disable clipping when killed by star" tweaker bit is set (bit 0 in $167A,x) the sprite's main code is jumped to. Otherwise, it just draws the death frame.
This is what makes some sprites appear glitched when killed in unintended ways (for example, killing a grinder by sliding).
$019B83 6 bytes Sprite tilemap related Standard Sprite Tile Table: Koopa tilemap
$019B89 3 bytes Sprite tilemap related Standard Sprite Tile Table: Koopa shell tilemap
$019B8C 7 bytes Sprite tilemap related Standard Sprite Tile Table: Shelless koopa tilemap (Fourth byte unused?)
$019B93 7 bytes Sprite tilemap related Standard Sprite Tile Table: Blue shelless koopa tilemap (Fourth byte unused?)
$019B9A 14 bytes Sprite tilemap related Standard Sprite Tile Table: Para-goomba tilemap
$019BA8 4 bytes Sprite tilemap related Standard Sprite Tile Table: Goomba tilemap
$019BAC 14 bytes Sprite tilemap related Standard Sprite Tile Table: Para-bomb tilemap
$019BBA 3 bytes Sprite tilemap related Standard Sprite Tile Table: Bob-omb tilemap
$019BBD 12 bytes Sprite tilemap related Standard Sprite Tile Table: Piranha plant tilemap
$019BC9 1 byte Sprite tilemap related Standard Sprite Tile Table: Football tilemap
$019BCA 4 bytes Sprite tilemap related Standard Sprite Tile Table: Bullet Bill tilemap (Horizontal, Vertical, Diagonal, Diagonal)
$019BCE 3 bytes Sprite tilemap related Standard Sprite Tile Table: Spiny tilemap
$019BD1 8 bytes Sprite tilemap related Standard Sprite Tile Table: Spiny egg tilemap
$019BDD 3 bytes Sprite tilemap related Standard Sprite Tile Table: Buzzy Beetle
$019BE3 3 bytes Sprite tilemap related Standard Sprite Tile Table: Buzzy Beetle Shell.
$019BE6 6 bytes Sprite tilemap related Spike Top tilemap
$019BEC 2 bytes Sprite tilemap related Hopping Flame tilemap
$019BEE 6 bytes Sprite tilemap related Lakitu tilemap (3 frames, 2 bytes each)
$019BF6 12 bytes Sprite tilemap related Magikoopa Tilemap
$019C02 1 byte Sprite tilemap related Throw block sprite tilemap and turn block sprite with hidden enemies inside. (Both use the same byte)
$019C03 10 bytes Sprite tilemap related Climbing Koopa Tilemap
$019C0D 4 bytes Sprite tilemap related Fish (Cheep Cheep) Tilemap (2 frames swimming, 2 frames flopping)
$019C13 4 bytes Sprite tilemap related Thwimp Tilemap
$019C17 1 byte Sprite tilemap related Yoshi Egg Tilemap (only manifests if the Yoshi egg is in the stunned status ($14C8 = #$09), i.e. found in a block or laid by Yoshi; otherwise, the tile loaded from this address is overwritten before drawing).

Change alongside $01F760 - $01F763 and $01F794 to completely remap the Yoshi egg tiles.
$019C1D 12 bytes Sprite tilemap related Portable Springboard Tilemap
$019C2D 4 bytes Sprite tilemap related Bony Beetle tilemap
$019C35 16 bytes Sprite tilemap related Vertical Fireball (Podoboo) tilemap.
$019C5A 2 bytes Sprite tilemap related Eerie tilemap
$019C5C 9 bytes Sprite tilemap related Boo Ghost Tilemap
$019C65 4 bytes Sprite tilemap related Rip Van Fish Tilemap
$019C69 2 bytes Sprite tilemap related Vertical Dolphin Tilemap
$019C6B 2 bytes Sprite tilemap related Diggin' Chuck's Rock Tilemap
$019C6D 3 bytes Sprite tilemap related Monty Mole Tilemap
$019C70 1 byte Sprite tilemap related Ledge-dwelling Mole's Dirt Tilemap (data shared with Goal Point Sphere's Tilemap)
$019C71 8 bytes Sprite tilemap related Ground-dwelling Monty Mole's Dirt (2 Air tiles, 2 Dirt Tiles, 2 Air tiles, 2 Dirt Tiles)
$019C79 4 bytes Sprite tilemap related Sumo Bros' Lightning Tilemap
$019C7D 2 bytes Sprite tilemap related Ninji Tilemap
$019C7F 84 bytes Sprite tilemap related Table containing a sprite's location in the Standard Sprite Tile Table.
$019CD3 4 bytes Sprite tilemap related X displacement for tiles in the first shared GFX routine ($019CF3).
$019CF3 108 bytes Sprite subroutine (JSR) The first of the shared graphics subroutines. This one creates 4 8x8 tiles in a 16x16 block.
$019D5F 177 bytes Sprite subroutine (JSL) The second of the shared graphics subroutines. This one creates 2 16x16 tiles in a 16x32 block, with the second one tile below the base position. It can also be called with a JSR to $019D67.
$019DB6 1 byte Sprite tilemap related Palette/GFX page of standard sprites (shared)
$019E1C 4 bytes Sprite tilemap related Sprite tilemap: Paratroopa Wings
$019E20 4 bytes Sprite tilemap related Palette/GFX page/Priority/Flip of Paratroopa Wing tiles
$019E24 4 bytes Sprite tilemap related Size of Paratroopa Wing tiles
$019E95 116 bytes Sprite subroutine (JSR) Subroutine that draws wings for 16x16 sprites.
It uses $1570,x to decide if to draw open or closed wings (increasing it once per frame will result in the normal wings animation speed).
If used in a custom sprite, the data bank needs to be set to $01 (see example code).
Example
$019F0D 78 bytes Sprite subroutine (JSR) The third of the shared graphics subroutines. This one creates a single 16x16 tile.
$019F3C 1 byte Sprite tilemap related Palette/GFX page of standard sprites (shared)
$019F5B 6 bytes Coordinate x-pos table of sprite being carried:
walking, turn from left to right, turn from right to left (two bytes each, indexed by Mario's direction)
$019F6B 4 bytes Sprite physics X-speed of the touched/kicked shell.
Value 1: left-speed, when touched (not kicking)
Value 2: right-speed, when touched
Value 3: left-speed, when kicked
Value 4: right-speed, when kicked.
This will also affect the shell of buzzy beetle! Setting the speed to 00 or FF will make the shells not spinning, giving unlimited score.
Original Values:
D2 2E CC 34
$019F9B 46 bytes Subroutine (JSR) First half of the routine that handles sprites being carried, though it's actually only the part that handles the P-balloon.
Any other sprite will branch to $019FE0
$019FA7 change to EA EA EA EA EA to the P-Balloon last forever.
$019FB0 is the time at which the deflatting animation starts. (default 30)
$019FC2 change 90 to 80 to make Mario keep the balloon effect even after taking hits or power-ups. (causes weird behaviour when dying)
$019FA7 5 bytes ASM Change to [EA EA EA EA EA] to give the P-Balloon an infinite timer
$01A0A7 1 byte Sprite physics Number of frames to disable player contact with any carryable sprite after kicking it.
$01A0AC 1 byte Timer Time to show Mario's "kicking" pose when a Bob-omb is kicked
$01A119 1 byte Coordinate carried sprite Y-pos while picking up
$01A1E1 4 bytes ASM Changing [1A 1A 29 0F] to [EA EA EA EA] will disable the throw block sprites flashing.
$01A1F0 1 byte Sprite tilemap related Tile used by stunned Bob-omb
$01A1FA 1 byte Sprite tilemap related Key tilemap
$01A221 1 byte Sprite tilemap related POW (P-Switch) Tilemap
$01A26A 1 byte Sprite physics [$F0] Baby Yoshi's idle hopping speed. Change to $00 to make him not hop when on the ground.
$01A291 1 byte Sound effect Sound baby Yoshi makes when eating
$01A295 2 bytes Sprite Misc. Change to [$80,$1E] to make Baby Yoshi instantly grow when eating something, regardless if it's a powerup or not.
Change to [$80,$5D] to make Baby Yoshi never grow instantly when eating something, even if it's a powerup. It will count as one sprite eaten instead.
If changing this, you also need to apply the hex edit at $03C03C for it to work properly.
$01A2BC 1 byte Sprite number Sprite that Baby Yoshi turns into
$01A2C6 1 byte Sound effect Yoshi's egg explodes sound
$01A2FB 1 byte Misc. Number of enemies Baby Yoshi must eat to grow
$01A300 2 bytes Sprite Misc. Change to $80,$02 to disable getting a coin when Baby Yoshi eats something.
$01A3DF 44 bytes Sprite subroutine (JSR) Routine called by the shared sprite GFX routines at $019D5F and $0190B2 to hide tiles that would be drawn offscreen vertically. It works for both 1 and 2 tile high sprites by using the first two bits in $186C to determine which tile(s) should be hidden.
$01A61E 7 bytes Sound effect Sound effects to use for consecutive bounces on enemies. Begins with [13] (1st bounce) and ends with [19] (7th bounce).
$01A65B 1 byte Sound effect Koopa hit by shell sound
$01A716 1 byte ASM Set to 60 to stop Blue Koopas from kicking shells
$01A729 1 byte Sound effect Kicking shell sound
$01A737 1 byte Sprite Misc. [0F] Change to [0D] to fix a bug where shell-less Koopas can hop inside a Bob-omb if its stun timer is 0 (by being carried through a pipe).
$01A78D 1 byte ASM Set to 80 to stop Blue Koopas from stopping shells
$01A7D1 1 byte Sprite number Enemy spawned from stomping horizontal green winged koopas
$01A7D2 1 byte Sprite number Enemy spawned from stomping bouncing green winged koopas
$01A7D3 1 byte Sprite number Enemy spawned from stomping vertical red winged koopas
$01A7D4 1 byte Sprite number Enemy spawned from stomping horizontal red winged koopas
$01A7D5 1 byte Sprite number Enemy spawned from stomping yellow winged koopas
$01A7D9 1 byte Sprite number Enemy spawned from stomping winged goombas
$01A7DA 1 byte Sprite number Sprite spawned from Para-Goomba
$01A7DB 1 byte Sprite number Sprite spawned from Para-Bomb
$01A7DC 93 bytes Sprite subroutine (JSL) Subroutine that handles interaction between Mario and the sprite slot currently in X.
If the "Don't use default interaction with player" tweaker bit in $167A,x is not set, the routine checks for contact between Mario and the sprite and handles the default interaction by jumping to the routine at $01A83B. Otherwise, it just checks for contact and returns with carry set if there's contact, and clear if there's not contact (note that when the sprite uses default interaction, the return carry isn't meaningful).
Note that the routine will return "No contact" and skip interaction every other frame if the "Process interaction with player every frame" tweaker bit in $167A,x is not set, or if the sprite is horizontally offscreen during a frame in which it should be interacted with.
$01A7F0 3 bytes Sprite Misc. Change from [1D A0 15] to [EA EA EA] to fix a glitch where sprites lose their interaction with the player while touching the edge of the screen. An example of this happens when a Banzai Bill's leftmost pixel goes past the left edge of the screen.
$01A83B 779 bytes Sprite subroutine (JSR) Default sprite interaction routine. The sprite interaction routine calls it if $167A,x is positive/ bit 7 is not set.
- $01A852 controls number where the star chain should stop. To be used with $01A856
- $01A856 controls, how many points/ one-ups are added if the max limit of a star chain is reached. To be used with $01A852

$01A8D0 handles the code when you jump on a spiky enemy.
Change $01A8D3 to $AD (LDA $xxxx) to disable spin jumping on spiky enemies. On contrary, change $01A8D3 to $80,$01 (BRA $01) to disable jumping with Yoshi on spiky enemies. To disable both, change $01A8D0 to $80,$04 (BRA $04).

$01A91C handles the code when you jump on a non-spiky enemy.
Change $01A91F to $AD (LDA $xxxx) to make spin jumps count as normal jumps. On contrary, change $01A91F to $80,$01 (BRA $01) to make jumps with Yoshi on enemies count as regular jumps. To make both count as regular jumps, change $01A91C to $80,$04 (BRA $04).

Change $01A930 to $00 to enable the boost gain with spin jump kill.
$01A940 is the sound effect to play when you kill an enemy with a spin jump/ jump with Yoshi.

$01AA42 is the routine for carryable sprites.
Change $01AA61 to $AD (LDA $xxxx) to enable carrying more than one sprite at time even though you already have one.
$01A887 1 byte Sprite physics Number of frames to disable player contact for most sprites after being touched by Mario. Used to prevent issues like Mario getting hurt by a sprite he just bounced off of.
$01A8D3 1 byte Misc. Change from 0D to AD to prevent Mario from being able to jump on spikey enemies with the spin jump
$01A940 1 byte Sound effect Sound effect used when spinjumping an enemy or when Yoshi stomps on it.
$01A976 1 byte Sprite number Sprite that Super Koopa (sprite 73) becomes when stomped
$01A987 1 byte Sprite number Enemy spawned from stomping Dino-Rhino
$01A9D9 1 byte Timer Timer for displaying smashed shelless Koopas
$01AA0E 1 byte Misc. Change to 03 to prevent Bob-omb, Goomba, Mechakoopa's stun timers from being reset when kicked
$01AA15 1 byte ASM Change from 02 to FF to prevent Koopas from spawning shelless Koopas when jumped on. (Use with $0196C6)
$01AA29 1 byte Timer Stun timer for Goombas, Buzzy Beetles, Mechakoopas, Bob-ombs
$01AA2E 1 byte Misc. State of Koopa when stomped
$01AA33 15 bytes Subroutine (JSL) Boost player subroutine. Boosts the player up a bit or a lot depending on whether A/B are being pressed.
$01AA38 1 byte Sprite physics How high Mario bounces when he jumps on an enemy (normal jump & spin jump)
$01AA3E 1 byte Sprite physics How high Mario bounces when he jumps on an enemy with button A pressed (normal jump & spin jump)
$01AA5C 1 byte ASM Change from BEQ [F0] to BRA [80] and Mario will not be able to carry items by holding X or Y.
$01AAA0 1 byte Misc. State of Koopa shell when kicked
$01AAA5 1 byte Timer Number of frames to disable player contact with any carryable sprite after touching it without holding dash (not to be confused with $01A0A7). Default is $10.
$01AB05 2 bytes Music Change to [80 00] to not have star music override P-Switch music. Instead which ever is pressed/collected recently will have priority.
$01AB08 1 byte Music Music played when a POW is pressed
$01AB0D 1 byte Timer Time it takes for POW to disappear after jumping on it. Change to 00 to keep the POW after jumping on it.
$01AB1B 1 byte Timer How long blue and silver P-Switches last (default is $B0), in units of every 4th frame. Therefore PSwitchTimerLength = Seconds * 15
$01AB20 1 byte Timer POW shaking screen timer.
$01AB28 4 bytes Misc. Change to EA EA EA EA to prevent on screen sprites from turning into silver coins when the silver POW is active (USE WITH $02A9A1)
$01AB31 21 bytes Sprite physics Code that pushes the player out of solid carryable sprites, such as keys and springboards. Increments/decrements $94 (player x position).
$01AB55 1 byte Sound effect Change to [80] to give enemies (inc. goomba) the SMAS stomp sound.
$01AB63 1 byte Misc. Value that determines what to give the player for bouncing on 8 or more enemies consecutively. Change to [07] to give the player 8000 points instead of a 1up for the consecutive jumps.
(See ROM Map address $02ACE5 for other values)
$01AB6F 42 bytes Sprite subroutine (JSL) Routine that displays the white star effect at a sprite's position and plays the "kicked" sfx (used, for example, when kicking a Shell or killing an enemy with a Shell).

JSL to $01AB72 to show the star but not play the sound effect.
$01AB99 51 bytes Sprite subroutine (JSL) Routine that displays the contact graphics at Mario's position, usually called by sprites when Mario jumps on them.
$01ACF9 55 bytes Subroutine (JSL) Random number generation subroutine. Access using JSL $01ACF9.

output:
16bit result at $148D.
$01AE88 8 bytes Sprite Misc. Sprites for the flying ? blocks to spawn, as indexes to the table starting at $0288A3. First four are used if Mario has a powerup, second four if he doesn't.
$01AEC7 1 byte ASM Change from $26 to $31 to prevent Thwomps from dropping while vertically off screen.
$01AEE1 1 byte Misc. What face to use for Thwomp if Mario comes close (00 - Calm, 01 - Grumpy, 02 - Raging)
$01AEEF 1 byte Misc. What face to use for Thwomp Crashing down (00 - Calm, 01 - Grumpy, 02 - Raging)
$01AF13 1 byte Timer Thwomp shaking screen timer.
$01AF18 1 byte Sound effect Thwomp Sound Effect.
$01AF1D 1 byte Timer Thwomp Stalling Timer.
$01AF39 1 byte Sprite physics Thwomp returning Y speed (between 80-90, C0, E0-FF) other values can give odd effects, so do not use any other bytes.
$01AF4A 5 bytes Sprite tilemap related Thwomp Tilemap
$01AF4F 5 bytes Sprite tilemap related YXPPCCCT - Thwomp Properties

Byte 01 - Top left
Byte 02 - Bottom left
Byte 03 - Top right
Byte 04 - Bottom Right
Byte 05 - Angry Thwomp Face
$01AF8D 1 byte Sprite tilemap related Angry Thwomp Face
$01AFEA 1 byte Sprite physics Thwimp jumping height (between 80-FF)
$01AFF3 1 byte Sprite physics Thwimp jumping Right speed.
$01AFF7 1 byte Sprite physics Thwimp jumping Left Speed.
$01AFFD 1 byte Sound effect Thwimp Sound Effect.
$01B002 1 byte Timer Thwimp stalling timer
$01B0A1 1 byte Misc. Value to add for flopping Cheep-Cheep animations
$01B0C4 1 byte Sprite physics How far cheep-cheeps will move (the greater the value, the longer the distance.)
$01B10F 1 byte Misc. Change to 00 to switch the GFX pages used by the swimming and flopping Cheep-Cheeps
$01B119 3 bytes Sprite tilemap related Replace 9D F6 15 with EA EA EA to make the fish (Cheep Cheep) tilemap use a single GFX page
$01B12A 36 bytes Sprite subroutine (JSR) This subroutine is what is used to kill stunned koopas and out of water fish. The following offsets may be of use:
$01B12B - How long to show the player kicked a sprite pose.
$01B130 - The sound effect to play (default #$03)
$01B132 - The sound effect channel (default $1DF9)
$01B13D - Y speed of the dying sprite (default #$E0)
$01B145 - Forces the player to face the killed sprite, change to NOP #2 (EA EA) to disable
$01B14E 44 bytes Sprite subroutine (JSR) Sprite based sparkle routine. Used by Magikoopa's magic and the goal sphere. The goal sphere calls $01:B152.
$01B212 4 bytes Sprite physics Table of X speeds for the floating spike ball (sprite A4). In order: Slow right, slow left, fast right, fast left.
$01B22E 5 bytes Sprite Misc. The code that checks the sprite buoyancy to determine whether sprites 5C and 5E should float on water or be suspended in the air. You can change this to 80 03 xx xx xx (xx can by any byte) to make them always stay in air or to 80 06 xx xx xx to make them always float.
$01B2C3 14 bytes Sprite tilemap related For sprites 55-58 and 5B-5E, partly determines which tilemap to use. 00 -> wooden or checkerboard platform, 01 -> flying rock or grassy platform. The table offset is the sprite number minus 55, and the fifth and sixth bytes and the last four bytes are not used.
$01B32B 1 byte Sprite tilemap related Change to 80 to let sprite 63 use the wooden platform tilemap only.
However, the size will be still different, depending on the x-pos.
$01B32E 1 byte Sprite tilemap related Left Tile of Checkerboard Platform (sprites 55, 57, 5C and 63)
$01B333 1 byte Sprite tilemap related Center Tile of Checkerboard Platform (sprites 55, 57, 5C and 63)
$01B33E 1 byte Sprite tilemap related Right Tile of Checkerboard Platform (sprites 55, 57, 5C and 63)
$01B345 1 byte Sprite tilemap related Tilemap: Left edge of line guided wooden platform (Sprite 62)
$01B34A 1 byte Sprite tilemap related Tilemap: Center of line guided wooden platform (Sprite 62)
$01B355 1 byte Sprite tilemap related Tilemap: Right edge of line guided wooden platform (Sprite 62)
$01B372 1 byte Sprite tilemap related Tilemap: Right edge of line guided wooden platform (Sprite 62)
$01B383 9 bytes Sprite tilemap related Grassy Orange Platform Tilemap (sprites 5D and 5E)
$01B38C 9 bytes Sprite tilemap related Flying Rock Platform Tilemap (Sprites 56 and 58)
$01B42F 1 byte Sprite tilemap related Edge of Flying Rock Platform (mirrored)
$01B434 1 byte Sprite tilemap related Bottom edge of Rock Platform (mirrored)
$01B43B 1 byte Sprite tilemap related Edge of Grassy Orange Platform (mirrored)
$01B440 1 byte Sprite tilemap related Bottom edge of Grassy Orange Platform (mirrored)
$01B44F 231 bytes Sprite subroutine (JSL) Invisible solid block subroutine. JSL to it in a sprite to make it solid (or act as a platform depending on bit 0 of $190F).

Inputs:
- $1528,x: number of pixels Mario has moved horizontally in the current frame, used to move Mario with the sprite when he's standing on top of it. Note: not cleared post-routine.

Outputs:
- Carry: set if Mario is on top of the sprite, clear if not.
- $C2,x: if the sprite is set to be solid from all sides, it's set to #$01 if it was #$00 before. It can be used as a flag for the sprite being hit from below by Mario.
- $1558,x: if the sprite is set to be solid from all sides, it's set to #$10 if $C2,x was #$00 before. It can be used as a timer for a bouncing animation when the sprite is hit from below.
- $1564,x: if the sprite is set to be solid from all sides, it's set to #$0F when hit from below (only for sprites >= $83). This is used to disable interaction with sprites for a short amount of time.
- $1471: set to #$01 if Mario is standing on top of the sprite.

Misc. data:
- $01B477: [$10] Y speed given to Mario when sitting on top of a solid block/platform.
- $01B4C0: Change to [$A0 $00] to make Super/Fire/Cape Mario have a 16x16 interaction field (like Small Mario) or change to [$A0 $01] to have a 16x32 interaction field (like Big Mario) (in conjunction with addresses $00EB79 and $03B67C).
- $01B4D9: [$10] Y speed given to Mario when hitting a solid sprite from below.
- $01B4F3: [$01] SFX that comes up when Mario hits a solid sprite from below.
- $01B4F5: [$1DF9] Bank used for the SFX when Mario hits a solid sprite from below.
$01B555 1 byte Sprite physics Speed of the horizontal platform that goes on forever (sprite 5E).
$01B65A 4 bytes Sprite tilemap related X displacement for each tile of the floating spike ball (sprite A4). In order: Top left, top right, bottom left, bottom right.
$01B65E 4 bytes Sprite tilemap related Y displacement for each tile of the floating spike ball (sprite A4). In order: Top left, top right, bottom left, bottom right.
$01B662 4 bytes Sprite tilemap related Tile properties for each tile of the floating spike ball (sprite A4). In order: Top left, top right, bottom left, bottom right.
$01B666 57 bytes Sprite subroutine (JSR) The GFX routine for the floating spike ball (sprite A4). $01B686 controls the first tile number used, and the second is always one 16x16 tile to the right of that.
$01B69F 2 bytes Misc. Length of Turn Block Bridge (sprites 59 and 5A)
$01B6A1 2 bytes Sprite physics X speed of Turn Block Bridge (sprites 59 and 5A)
$01B6A3 2 bytes Misc. Time of Turn Block Bridge (sprites 59 and 5A)
$01B77E 1 byte Sprite tilemap related Tile used by Turn Block Bridge (sprites 59 and 5A)
$01B790 14 bytes Sprite tilemap related Change to [09 xx 99 07 03 99 0B 03 99 0F 03 99 13 03] to change the palette used by the turn block bridge. ("xx" is the new palette value; 00 is the original.) This also prevents the last tile from being X-flipped.
$01B7B3 8 bytes Sprite subroutine (JSL) Finish OAM write caller subroutine (JSRs to the main one and ends in RTL).

Value in A: Amount of OAM slots to write minus 1 (i.e. to write 4 tiles, A must be #$03)
Value in Y: Size of the OAM tiles. #$00 = 8x8, #$02 = 16x16, any negative value (e.g. #$FF) = is manually set with $0460.

Note: This routine is only used if you finished to write with a regular sprite. Do not use it outside of regular sprites!
$01B7BB 136 bytes Sprite subroutine (JSR) Finish OAM write routine. JSL to $01B7B3 to access it from all banks other then bank $01.
$01B93C 2 bytes Sprite physics Green horizontal net Koopa's speed (right, left). Red horizontal net Koopas move twice this speed.
$01B94D 1 byte Sprite physics Green vertical net Koopa's initial speed. Red vertical net Koopas move twice this speed.
$01BA20 1 byte Sprite physics Lowest Map16 tile that a vertical net Koopa can climb on. Change from 07 to 06 to allow vertical net Koopas to climb on vine tiles.
$01BA24 1 byte Sprite physics Highest Map16 tile that a vertical net Koopa can climb on, plus one.
$01BA2B 1 byte Sprite physics Lowest Map16 tile that a horizontal net Koopa can climb on. Change from 07 to 06 to allow horizontal net Koopas to climb on vine tiles.
$01BA2F 1 byte Sprite physics Highest Map16 tile that a horizontal net Koopa can climb on, plus one.
$01BAB7 21 bytes Sprite tilemap related Gate Sprite Tilemap
$01BBD3 1 byte Sprite tilemap related Gate Sprite palette
$01BC34 4 bytes Sprite tilemap related The OAM Properties of the Magikoopa's magic.
$01BC67 8 bytes Misc. Change to EA EA EA EA EA EA EA EA and every Map16 block will change into sprites when touched by Magikoopa's Magic. (Not just turn blocks)
$01BC7D 1 byte Sprite number What Magikoopa's magic transforms turn block into (1up)
$01BC83 1 byte Sprite number What Magikoopa's magic transforms turn block into (Coin)
$01BC89 1 byte Sprite number What Magikoopa's magic transforms turn block into (Thwimp)
$01BC8F 1 byte Sprite number What Magikoopa's magic transforms turn block into (Yellow Koopa)
$01BCE0 16 bytes Sprite Misc. Magikoopa's Magic Sine Rotation Table.
$01BD83 1 byte Sprite tilemap related Magikoopa's Magic Tilemap (Circle)
$01BD88 1 byte Sprite tilemap related Magikoopa's Magic Tilemap (Square)
$01BD8D 1 byte Sprite tilemap related Magikoopa's Magic Tilemap (Triangle)
$01BF05 1 byte Sprite tilemap related Tile used by Magikoopa's Wand
$01BF29 1 byte Sound effect SFX played by Magikoopa
$01BF33 1 byte Sprite number The sprite that Magikoopa throws
$01BF6A 121 bytes Sprite subroutine (JSR) The aiming routine used by Magikoopas to aim their magic at (the upper tile of) the player. Input is the total speed (X + Y); output is Y speed in $00 and X speed in $01.
$01C0BD 1 byte Misc. [95] Change to A5 to stop the goal point bar from moving.
$01C0F0 1 byte Music Goal tape end level music
$01C10A 1 byte Sound effect Goal tape breaking sound effect.
$01C11B 1 byte Timer How long the bonus star number stays on screen
$01C158 1 byte Sprite tilemap related Goal Bar Tilemap
$01C164 1 byte Sprite tilemap related Palette/priority/flip of Goal tape tiles
$01C17A 4 bytes Misc. Change 22 CA F1 07 to EA EA EA EA to disable the digits made up of star tiles at the goal tape (which resemble the amount of bonus stars gathered)
$01C19E 1 byte Sprite tilemap related Tile for Growing Vine's Piranha head(1)
$01C1A2 1 byte Sprite tilemap related Tile for Growing Vine's Piranha head(2)
$01C1AE 1 byte Misc. Y speed of Growing Vine's growth
$01C1E6 1 byte Misc. Tiles created from growing vine sprite
$01C299 1 byte Sprite Misc. [05] Number of coins awarded when the player collects a Flying Red Coin (Sprite #$7E).
$01C313 4 bytes Sprite number Sprites used by the changing item (Mushroom, Flower, Feather, Star)
$01C33D 1 byte Sprite number Sprite that the Changing Item is made from
$01C345 4 bytes Sprite tilemap related Eaten berry palettes (unused, red, pink, green)
$01C34C 1 byte Misc. Change to 00 and the Fire Flower won't flip back and forth
$01C35F 1 byte Sprite tilemap related Eaten berry tile
$01C381 1 byte Sprite physics [$10] Y speed at which the powerups dropped from the item box fall. Does not include the feather, who's speed is handled at $01C730.
$01C42C 3 bytes ASM Set to EA EA EA to disable moving coin and star movement
$01C47B 1 byte Sprite physics Star bounce height (between 80-FF)
$01C510 20 bytes Misc. Table of items to put in the item box when a powerup is touched. Indexed by Mario's status ($19), plus 4 times the type of powerup touched. Powerups are ordered as follows:
$01C510 to $01C513 - Mushroom
$01C514 to $01C517 - Flower
$01C518 to $01C51B - Star
$01C51C to $01C51F - Cape
$01C520 to $01C523 - 1-up

For a list of possible values, see $0DC2.
Note: A value of 0x00 (empty) means that the item in the item box doesn't change.
$01C524 20 bytes Misc. Action to take when Mario touches a powerup. Indexed by Mario's status ($19), plus 4 times the type of powerup touched. Powerups are ordered as follows:
$01C524 to $01C527 - Mushroom
$01C528 to $01C52B - Flower
$01C52C to $01C52F - Star
$01C530 to $01C533 - Cape
$01C534 to $01C537 - 1up

Possible values are:
00: Give a mushroom
01: Do nothing
02: Give a star
03: Give a cape
04: Give a flower
05: Give a 1up
$01C538 28 bytes ASM Handles what happens when the player touches a powerup. This routine will manage the item box as well. $01:C549 [0B] is the sound effect to play when touching a powerup.

Set $01:C545 to EA EA EA to disable the item box.
$01C554 12 bytes Pointer powerup routines (indexed by values from $01C524 - $01C537)
$01C561 14 bytes Subroutine (JSR) Routine for when Mario touches a Mushroom. It sets the animation value and timer, then jumps to $01C56F.

$01C566: [$2F] replace with [$00] to completely skip the Mushroom powerup animation.
$01C566 1 byte Timer Length of Mario's growing animation. Setting it higher than 2F may cause it to use different Mario tiles.
$01C568 1 byte Mario tilemap Changing this to 99 will make Mario face the camera if he grows from a mushroom.
$01C570 1 byte Misc. How many points you get by getting a powerup.
00 = 200
01 = 400
02 = 800
03 = 1000
04 = 2000
05 = 4000
06 = 8000
07 and above = 1-up
FB = nothing
$01C57B 1 byte Sound effect Mario picking up a Mushroom or Flower Sound Effect.
$01C580 18 bytes Subroutine (JSL) Star Subroutine. JSL to it to give Mario star power. $01C581 controls how long stars last, $01C586 controls the music that is played during star power.
$01C599 1 byte Misc. What powerup feathers give you
$01C59D 1 byte Sound effect Sound Effect will make if you grabbed the feather. Change to 0C to make the sound effect like in SMB3.
$01C5EC 18 bytes Subroutine (JSR) Routine for when Mario touches a Fire Flower. It sets the animation value and timer, then jumps to $01C56F.

$01C5EC: [$A9 $20] Replace with [$80 $09] to completely skip the Fire Flower powerup animation.
$01C5F8 1 byte Misc. What powerup flowers give you
$01C609 5 bytes Sprite tilemap related Tilemap: Power-ups (Mushroom, Flower, Star, Feather, 1Up)
$01C612 1 byte Sprite tilemap related Tile used by the P-Balloon
$01C613 1 byte Sprite tilemap related Tile used by Flying Red Coin
$01C614 1 byte Sprite tilemap related Tile used by Flying Yellow 1Up Mushroom
$01C615 1 byte Sprite tilemap related Tile used by Flying Key?
$01C616 4 bytes Palette The palettes the star sprite flashes through. 00 is palette 8, 02 is palette 9, 04 palette A, etc. YXPPCCCT format.
$01C641 96 bytes Sprite subroutine (JSL) The GFX routine of the moving coin (sprite 21) and various other coin sprites, such as the directional coins.

- $01C641: 4 bytes, JSRs to the main routine and ends in RTL.
- $01C645: Start of the main GFX routine.
- $01C653: Tile used by the first frame. This is the 16x16 one.
- $01C667: Changing this to [80 07] will cause all 4 frames to use 2 tiles, and changing it to [D0 00] or [EA EA] will cause all 4 frames to use only 1 tile.
- $01C66A: Changing this to 00 will cause all 4 frames to be 8x8.
- $01C66D: Tiles used by the second, third, and fourth frames. These are all 8x8.
- $01C699: Changing this to 02 will cause all 4 frames to be 16x16.
$01C6A1 69 bytes Sprite subroutine (JSR) Graphics routine for the powerups (mushroom, fire flower, cape feather, and star).

- $01C6A3: Changing this to [80] will disable the star flashing.
- $01C6C2: Changing this to [30] will fix the powerups being covered by the background in levels with transparent layer 3.
- $01C6C3: Changing this to [80] will disable the x-flipping of the feather and fire flower.
$01C7EA 1 byte Sprite tilemap related Tilemap: Swinging Platform's Chain 1 (Sprite 5F)
$01C7EF 1 byte Palette Palette of chain link connected to platform
$01C871 1 byte Sprite tilemap related Tilemap: Swinging Platform's Chain 2 (Sprite 5F)
$01C8C7 1 byte Sprite tilemap related Tilemap: Swinging Platform's Chain 3 (Sprite 5F). Also used by Chains 4 and 5.
$01C8CC 1 byte Palette Palette of other chain links
$01C8FB 1 byte Palette Palette of wooden platform
$01C9BB 4 bytes Sprite tilemap related Tilemap: Brown Swinging Platform (Sprite 5F)
$01CACB 85 bytes ASM Sprite rotation preparation routine. First JSR to this, then to $01CB20 and finally to $01CB53.
$01CB20 51 bytes ASM Routine for preparing the game's global rotation routine. First you can JSR to either $01CACB
for sprite rotation or to $01CCC7 for Mode 7 rotation (this step seems to be optional). Next you JSR to this to prepare the rotation and finally you JSR to $01CB53.
$01CB53 330 bytes ASM The game's global rotation routine. First you can JSR to either $01CACB
for sprite rotation or to $01CCC7 for Mode 7 rotation (this step seems to be optional). Next you JSR to $01CB20 to prepare the rotation and finally you JSR to this.
$01CCC7 35 bytes ASM Mode 7 rotation preparation routine. First JSR to this, then to $01CB20 and finally to $01CB53.
$01CD1E 12 bytes Empty Unused ROM.
$01CD4F 1 byte Coordinate Y lo starting position of Morton/Ludwig/Roy at the boss battle.
$01CD7E 1 byte Coordinate X low position of Ludwig at the start of the boss battle.
$01CD82 1 byte Coordinate X high position of Ludwig at the start of the boss battle.
$01CE3E 2 bytes ASM Change [64 7B] to [EA EA] in order to prevent Mario from slowing down when Ludwig appears.
$01CEAE 2 bytes Sprite physics Ludwig's shell speed
$01CEB4 2 bytes Sprite physics Ludwig's horizontal jump distance
$01CECE 1 byte Timer Counts how long to delay before Ludwig jumps out of his shell.
$01CED8 1 byte Sprite physics Vertical height of Ludwig's jump (lower is shorter).
$01CF57 1 byte Misc. Ludwig jump right type modifier
$01CF58 1 byte Misc. Ludwig jump left type modifier
$01CFCD 1 byte Misc. Ludwig, Morton, and Roy's HP
$01CFD1 1 byte Sound effect Morton/Ludwig/Roy spiralling out sound effect.
$01D04F 1 byte Music Music played after Morton/Ludwig/Roy is defeated
$01D05A 1 byte Sound effect What sound is played by Ludwig's fireball.
$01D06F 1 byte Sprite number Sprite spawned by Ludwig von Koopa
$01D080 1 byte Misc. Height of fireball spawned by Ludwig.
$01D0B8 1 byte Misc. How long fireballs stay in Ludwig's mouth for.
$01D0BE 1 byte Sprite physics X Speed of Ludwig's Fireball (Right)
$01D0BF 1 byte Sprite physics Left speed of ludwig's fireballs (reversed)
$01D122 1 byte Sprite physics Morton and Roy's speed for first hit, left.
$01D124 1 byte Sprite physics Morton and Roy's speed for first hit, right.
$01D126 1 byte Sprite physics Morton and Roy's speed for second hit, left.
$01D128 1 byte Sprite physics Morton and Roy's speed for second hit, right.
$01D12A 1 byte Sprite physics Morton and Roy's speed for third hit, left.
$01D12C 1 byte Sprite physics Morton and Roy's speed for third hit, right.
$01D12F 1 byte Sprite physics Morton and Roy's vertical speed for first hit, up.
$01D131 1 byte Sprite physics Morton and Roy's vertical speed for first hit, down.
$01D133 1 byte Sprite physics Morton and Roy's vertical speed for second hit, up.
$01D135 1 byte Sprite physics Morton and Roy's vertical speed for second hit, down.
$01D137 1 byte Sprite physics Morton and Roy's vertical speed for third hit, up.
$01D139 1 byte Sprite physics Morton and Roy's vertical speed for third hit, down.
$01D239 2 bytes Sprite physics How fast Morton and Roy rotate when they're crawling on a wall or ceiling. By default FC and 04. The closer to 00, the slower it gets. Do not exceed above a difference of 80 (that is, don't make the first value 01-7F, and don't make the second value 81-FF). Using 00 isn't recommended either.
$01D26E 1 byte Sprite physics Falling speed of Morton and Roy
$01D28C 1 byte Timer How much the ground shakes after Morton/Roy hit the floor.
$01D295 1 byte Timer How long Mario is stunned for after Morton/Roy hits ground.
$01D29A 1 byte Sound effect Morton/Roy landing sound effect.
$01D29F 1 byte Timer How long Morton/Roy stays put after landing on floor.
$01D2D0 1 byte Misc. Timer determining how many frames to wait before being able to interact with Morton/Ludwig/Roy, after having interacted with it. (By default: 08)
$01D2FA 1 byte Misc. Y speed of Mario when he bounces off Morton/Roy (normal state) and Ludwig (always).
$01D2FE 1 byte Sound effect Which sound to generate when stomping Ludwig when he's inside his shell, and Morton/Roy/Ludwig when they're vulnerable (a second sound effect is generated too here, see $01D3AC).
By default #$02.
$01D31F 1 byte Sound effect SFX Played when Mario hits Morton/Roy while on the ceiling, while falling, and after they have just landed.
$01D330 1 byte Mario physics Mario's Y-Speed after jumping on Morton/Roy when they have just landed. Closer to 80 - highest.
$01D335 1 byte Sound effect Sound effect played when Mario hits Morton/Roy when going up the wall.
$01D343 1 byte Misc. X speed of Mario when he bounces off Morton/Roy when they're crawling on the left side of the screen.
$01D349 1 byte Misc. X speed of Mario when he bounces off Morton/Roy when they're crawling on the right half of the screen.
$01D34D 1 byte Misc. Y speed of Mario when he bounces off Morton/Roy in their unusual state (as in, crawling on walls, falling from ceiling).
$01D37A 1 byte Misc. Horizontal scaling of Morton/Roy/Ludwig (Mode 7) just after they're hit. The higher the value, the thinner they are. Extreme values, such as 00 (biggest) or FF (smallest), are not recommended as they may or may not partially affect the gameplay. Keep the value near the original, if you change it.
By default: #$18.
$01D383 1 byte Misc. Vertical scaling of Morton/Roy/Ludwig (Mode 7) just after they had been hit. The bigger the value, the shorter the Koopa Kids become.
Do not change the value to #$00 - #$1F or #$80 - #$FF as it will mess up. If changing value, keep it near the original since it might affect the Koopa Kid's height afterwards, if the value was too extreme.
By default: #$28.
$01D3A2 1 byte Timer How long Morton/Roy/Ludwig recovers after Mario has hit him.
$01D3AC 1 byte Sound effect Which sound to generate when stomping Morton/Roy/Ludwig when they're vulnerable (a second sound effect is generated too, see $01D2FE).
By default #$28.
$01D3F4 1 byte Sound effect Sound effect played when Morton, Ludwig and Roy takes damage from a fireball. Stored into $1DF9.
$01D3F8 6 bytes Misc. Counts fireball hits to Morton/Roy/Ludwig. Change to [80 06] to make Morton/Roy/Ludwig immune to fireballs.

Alternately, change to [FE 10 15 BD 10 15] to decouple their fireball HP from their stomp HP, so that they don't die after 2+ fireballs and a single jump.
$01D3FF 1 byte Misc. How many fireballs it takes before Morton/Ludwig/Roy are killed.
Counts up to the stomping HP counter as well. By default: 0C.
$01D446 4 bytes Sprite tilemap related Sprite tilemap: Ludwig Fireball
$01D6D2 6 bytes Sprite Misc. The code that determines whether sprite 63 should be brown or checkered. Change to "A9 xx EA EA EA EA" to make the platform always brown or always checkered (if brown, xx = 00, if checkered, xx = 01).

- $01D6D5: change to 00 to make sprite 63 use the small wooden platform no matter which x-position. (to use with $01D6D7)
- $01D6D7: change to 00 to make sprite 63 use the small wooden platform no matter which x-position. (to use with $01D6D5)
$01D6ED 3 bytes ASM Change to EA EA EA to make all line-guided sprites move at the same speed instead of the chainsaws, Grinder, and Fuzzy going twice as fast.
$01D6F0 23 bytes Sprite Misc. Change to B5 E4 29 10 4A 4A 4A 4A 9D 7C 15 80 14 EA EA EA EA EA EA EA EA EA EA to fix certain line-guided sprites: instead of moving left on odd starting X positions and not showing up at all on even ones (actually, they are just shifted offscreen), they will instead move right on even starting X positions.
x$01D6FA - X position (low byte) of sprites 65, 66, 67 and 68. Change it to 0F to fix its x position when it goes to the right. (USE WITH $01D701)
$01D701 - X position (high byte) of sprites 65, 66, 67 and 68. Change it to 00 to fix its x position when it goes to the right. (USE WITH $01D6FA)
$01D77D 1 byte ASM Change from F0 to D0 to switch the speeds of the line-guided sprites. (Normally, the chainsaws, Grinder, and Fuzzy move fast, while the platforms and rope move slow.) Use with $01D7A1.
$01D7A1 1 byte ASM Change from F0 to D0 to switch the speeds of the line-guided sprites. (Normally, the chainsaws, Grinder, and Fuzzy move fast, while the platforms and rope move slow.) Use with $01D77D.
$01D9F8 1 byte Mario physics Change from 10 to 0A to fix a glitch that if the player is climbing a rope mechanism and gets pushed off by solid objects, allows the player to climb in midair.
$01DB96 4 bytes Sprite tilemap related X displacement for the Grinder tiles (the one that doesn't follow line guides).
$01DB9A 4 bytes Sprite tilemap related [00 00 10 10] Y offset for the Grinder tiles (the one that doesn't follow line guides).
$01DB9E 4 bytes Sprite tilemap related [03 43 83 C3] OAM properties for the Grinder tiles (the one that doesn't follow line guides).
$01DBBF 1 byte Sprite tilemap related Tile used by Grinder (the one that doesn't follow line guides). Note that the sixth bit (#$02) should be cleared or it won't animate; the sixth bit of the frame counter is ORA'd to it.
$01DBF5 1 byte Sprite tilemap related Line-guided Fuzzball tilemap (Sprite 68)
$01DC28 1 byte Sprite tilemap related Line-guided Grinder Tilemap
$01DC47 4 bytes Sprite tilemap related Line-guided Rope's Motor Tilemap
$01DC4C 8 bytes Sprite tilemap related Line-guided Rope's rope tilemap
$01DCAC 1 byte Sprite tilemap related Line-Guided Rope Palette
$01DDBD 1 byte Sprite number Sprite that the Bonus game is made from
$01DEE3 36 bytes Sprite tilemap related Sprite tilemap: Bonus Roulette
Pages: « 1 2 3 4 5 6 7 » 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 - 2021 - SMW Central
Legal Information - Privacy Policy - Link To Us


Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • Super Mario Bros. X Community
  • ROMhacking.net
  • Mario Fan Games Galaxy
  • sm64romhacks