Banner
Views: 706,993,143
Time:
13 users online: BeeKaaaay, elfantastico, Gabriel12102673, Christmas Gifty, o KringleCakes, The Dancing Boo in Paper Mario, nahuelescoba, o Delibird, randomdude999, SomeJollyGuy712x, Erik, WYE, yygdrasil - Guests: 132 - Bots: 161Users: 36,929 (1,428 active)
Latest: finalcrab
Tip: Read Lunar Magic's help file and SMW Central's FAQ, as they cover most of the basics of SMW hacking.Not logged in.
SMW Hijack Map
Displaying 418 addresses. (approximately 0.76% complete) Show waiting addresses (29) - Submit address
Address Length Type Description
$008023 4 bytes Jump (JML/JSL) Modified by ZSNES incompatibility notice. Jumps to the main code.
$00804D 1 byte Opcode Not modified, however is used by Lunar Magic as an RTL for calling routines that end in RTS in bank 0 with a JSL via stack magic. So don't modify it.
$008070 4 bytes Jump (JML/JSL) Modified by 16-bit frame counter. Jump to code that increases both $13 and 16-bit frame counters.
$0081E2 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$0081EC 4 bytes Jump (JML/JSL) Hijacked by multiple patches.
Overworld Counters hijacks this to upload the various counters during NMI.
Overworld Border Plus hijacks this to upload the border tiles during NMI.
$008209 4 bytes Jump (JML/JSL) Modified by Lunar Magic.

Part of Lunar Magic's VRAM modification patch.
$0083ED 2 bytes Code (BCC $04)
Modified by Minimalist Course Clear so it always branches, thus layers won't get disabled after you beat a boss.
$008751 4 bytes Jump (JML/JSL) Modified by Lunar Magic.

Lunar Magic's stripe image upload routine. It only gets executed during gamemodes 05, 07, 13 and 14.
$008A4E 5 bytes Code Modified by Lunar Magic.
$008CCD 4 bytes Data Modified by Course Clear Coins, by MarioFanGamer.

Changes the bonus star "★x" tiles on the status bar into blank tiles. Conditionally enabled.
$008E21 4 bytes Jump (JML/JSL) Modified by Time Up Fix, by Alcaro.

JML, prevents the timer frame counter from ticking down if set to a special "death from time up" value.
$008E4F 2 bytes Code Modified by Time Up Fix, by Alcaro.

BNE $1E, skips past the "check if timer ran out" routine if the timer hundreds digit is nonzero.
$008E5B 5 bytes Jump (JML/JSL) Modified by Speed up Music Fix. Jumps to the main code.
$008E60 15 bytes Jump (JML/JSL) Modified by Time Up Fix, by Alcaro.

Sets the timer frame counter to a special "death from time up" value and calls the death routine if 1) the timer is now zero and 2) the timer was not zero initially. Note that this hijack uses a JSL to custom code that ends with a JML to the death routine; the corresponding RTL utilized is thus that of the death routine, at $00F628.
$008F2F 6 bytes Jump (JML/JSL) Modified by 100 Coin Prize, by wiiqwertyuiop.

JSL : BRA $06, bypasses the default life-gain at 100 coins to implement custom rewards.
$008F3B 4 bytes Jump (JML/JSL) Modified by 999 lives, handles the lives' code during the level (status bar included).
$008F49 6 bytes Jump (JML/JSL) Hijack for the left aligned life counter.
$008F73 6 bytes Jump (JML/JSL) Hijack for the left aligned coin counter.
$008F86 3 bytes Jump (JMP/JSR) Modified by Course Clear Coins, by MarioFanGamer.

JMP, bypasses the routine that draws the large bonus star numbers on the status bar. Conditionally enabled.
$00907A 1 byte Data Modified by $02xx OAM Remapper. This is the table with the OAM index for the item box's sprite.
$009095 4 bytes Jump (JML/JSL) Modified by Item Box GFX Fix, by Kenny3900.

JML, bypasses the default "draw item box GFX" routine to utilize expanded properties table.
$009322 4 bytes Jump (JML/JSL) UberASM tool and patch's Game Mode hijack.
$0093F7 5 bytes Code Modified by Lunar Magic.
$009471 5 bytes Code Modified by Lunar Magic.
$0095B6 3 bytes Code Modified by Lunar Magic.
$0095E9 13 bytes Code Modified by Lunar Magic.
$009708 4 bytes Jump (JML/JSL) Modified by Horizontal Scroll Fix. Jumps to the main code.
$009B1C 3 bytes Code Modified by Lunar Magic.
$009C6F 17 bytes Code Modified by Lunar Magic.

Handles the custom title screen movement.
$009CD3 3 bytes Code Modified by Lunar Magic.
$009F19 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$00A01F 6 bytes Code Modified by Lunar Magic.

Jumps to a routine that handles Layer 3 movement.
$00A0A0 3 bytes Code Modified by Lunar Magic.
$00A140 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$00A149 4 bytes Code Modified by Lunar Magic.
$00A153 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$00A1DA 10 bytes Code Modified by Lunar Magic.
$00A21B 4 bytes Jump (JML/JSL) Modified by Running SFX patch. Jumps to the main code.
$00A267 1 byte Opcode Modified by Lunar Magic.
$00A284 4 bytes Jump (JML/JSL) Modified by Start+Select SFX, jumps to main code (plays SFX, changes game mode and returns).
$00A2A6 3 bytes Code Modified by Lunar Magic.
$00A300 4 bytes Jump (JML/JSL) Dynamic Z main hijack.

This is where all of the features which need to DMA to VRAM or need to write to a certain SNES register are. It handles Dynamic Sprites, Palette changer, ExGFX changer and part of Mario ExGFX.

Expects to return to a RTS at $00A304.
$00A300 4 bytes Jump (JML/JSL) Mario's 8x8 Tiles DMA-er hijack.

Uploads Mario's palette, Mario, Yoshi and Podoboo graphics. Basically a rewrite of the original $00A300 plus the upload of the 8x8 tiles to VRAM.
$00A300 4 bytes Jump (JML/JSL) 32x32 Character Tilemap Kit hijack.

Uploads Mario's palette, Mario, Yoshi and Podoboo graphics. Basically a rewrite of the original $00A300, except that this uploads a 32x32 Mario GFX instead of 16x32.
$00A31A 4 bytes Jump (JML/JSL) Modified by Custom Mario Palettes. Jumps to a routine that makes the bank used in a DMA transfer to depend on a FreeRAM.
$00A390 5 bytes Code Modified by Lunar Magic.
$00A418 4 bytes Jump (JML/JSL) Modified by Lunar Magic. Obsolete in LM 1.70+
$00A439 1 byte Opcode Modified by Lunar Magic.
$00A4E3 5 bytes Code Modified by Lunar Magic.
$00A4EB 2 bytes Code Modified by Lunar Magic.
$00A5A2 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$00A5BF 4 bytes Jump (JML/JSL) Modified by Lunar Magic.

Loads the custom palette of a level depending on the value of $FE. That RAM address is immediately cleared after that, possibly to avoid a custom palette from being uploaded twice.
$00A5E1 6 bytes Code Modified by Lunar Magic.
$00A5FE 3 bytes Code Modified by Lunar Magic.
$00A6B8 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$00A6CC 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$00A873 4 bytes Code Modified by Lunar Magic.
$00AA06 2 bytes Code Modified by Lunar Magic.
$00AA47 2 bytes Code Modified by Lunar Magic.
$00AA50 5 bytes Code Modified by Lunar Magic.
$00AA6B 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$00AA74 2 bytes Code Modified by Lunar Magic.
$00AA8D 1 byte Code Modified by Lunar Magic.
$00AA91 1 byte Code Modified by Lunar Magic.
$00AACD 21 bytes Code Modified by Lunar Magic.
$00AB02 64 bytes Code Modified by Lunar Magic.
$00AD2B 2 bytes Code Modified by Lunar Magic.
$00AD32 5 bytes Code Modified by Lunar Magic.
$00AF2D 63 bytes Code Modified by Minimalist Course Clear.

From 00AF2D to 00AF34, if !enable_scorecard is clear, then it will skip SMW's card tilemap drawing code. Else SMW's code is written. The rest of code is SMW's code ending early so it gives freespace for fixing a bug related to Reznors and hijack the "after peace pose" routine.
$00AF4C 1 byte Code Modified by Lunar Magic.
$00AF4F 1 byte Code Modified by Lunar Magic.
$00AF6C 1 byte Code Modified by Lunar Magic.
$00AF71 6 bytes Code Modified by Lunar Magic.
$00B048 4 bytes Jump (JML/JSL) Modified by Custom Mario Palettes. Saves the Free RAM used into a scratch RAM.
$00B88B 2 bytes Code Modified by Lunar Magic.
$00B890 1 byte Code Modified by Lunar Magic.
$00B893 22 bytes Code Modified by Lunar Magic.
$00B8D8 2 bytes Code Modified by Lunar Magic.
$00B8DE 5 bytes Code Modified by Lunar Magic.
$00B8E3 5 bytes Code Modified by Lunar Magic.
$00C058 5 bytes Code Modified by Lunar Magic.
$00C097 1 byte Code Modified by Lunar Magic.
$00C0E7 1 byte Code Modified by Lunar Magic.
$00C17A 5 bytes Code Modified by Lunar Magic.
$00C25C 5 bytes Code Modified by Lunar Magic.
$00C4F8 5 bytes Jump (JML/JSL) Modified by $13FB Game Crash Fix. Jumps to the main code.
$00C944 6 bytes Code Modified by Minimalist Course Clear.

Handles showing (or not) the card tilemap drawing and freezing sprites, all after beating a boss.
$00C977 1 byte Opcode Modified by Lunar Magic.

Lunar Magic 2.53+ changes this to 0x38 in non-SA-1 ROMs to fix the timing on the victory animation during the goal walk so it matches up with the original goal music.
$00C9B7 5 bytes Jump (JMP/JSR) Modified by Minimalist Course Clear. This jump handles the circle effect after the peace sign pose.
$00C9C2 3 bytes Opcode Modified by Minimalist Course Clear.

If !enable_circle is set, it calls the "Level Ending Circle" routine. Else it just decrements the timer after going to the overworld.
$00C9DF 2 bytes Opcode Modified by Minimalist Course Clear to make the screen after beating a level fade out, THEN load overworld.
$00C9F8 6 bytes Code Modified by Minimalist Course Clear. Skips handling the mosaic/brightness settings when beating a level.
$00CA0C 1 byte Code Modified by Lunar Magic.
$00CA13 1 byte Code Modified by Lunar Magic.
$00CFCD 5 bytes Jump (JML/JSL) Modified by Disable Looking Up Via RAM Flag, by GreenHammerBro.

JSL : NOP, jumps to code to check a custom RAM flag to variably disable the player's ability to look up.
$00D062 4 bytes Jump (JML/JSL) Hijacked by the SMB2 Holding patch: This one disables shooting fireballs and spinning the cape when carrying a sprite.
$00D08C 4 bytes Jump (JML/JSL) Modified by Yoshi Fireball Ability Patch. It jumps to the main function of the patch.
$00D0E6 5 bytes Jump (JML/JSL) Modified by Time Up Fix, by Alcaro.

JSL : NOP, hijacks the end of the non-game-over death sequence to bypass the "TIME UP" message unless the timer frame counter is set to a special "death from time up" value.
$00D663 5 bytes Jump (JML/JSL) Modified by Expensive Jump. Jumps to the main code.
$00D904 4 bytes Jump (JML/JSL) Modified by the Limited Yoshi Flying patch, by SkywinDragoon.

JML, hijacks a portion of the player gravity routine to disable Yoshi flight after a custom counter has reached a certain limit.
$00E31B 4 bytes Jump (JML/JSL) Modified by Custom Mario Palettes, handles the patch's main functions.
$00E3CD 5 bytes Jump (JML/JSL) Modified by Invincible Mario Palette Changer. Jumps to the main code.
$00F2DB 2 bytes Code Modified by Lunar Magic.
$00F33F 7 bytes Jump (JML/JSL) Modified by Yoshi Coin Score Fix. Swaps JSL and INC's places and turns INC $1422 to LDA $1420, so it's used for check in JSL routine.
$00F377 15 bytes Code Modified by Yoshi Coin Score Fix. Replaces original Yoshi Coin's score giving routine, so it now checks number of yoshi coins being collected before increasing score value and necessary addresses.
$00F4DE 3 bytes Code Modified by Lunar Magic.
$00F60A 5 bytes Jump (JML/JSL) Modified by Alternate Death Music for Luigi patch. Jumps to the main code in order to decide which death music will be played, according to the active player.
$00F6E4 4 bytes Jump (JML/JSL) Used by Lunar Magic. This is the VRAM optimization patch.
$00F7E8 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$00F7FC 175 bytes Jump (JML/JSL) Modified by Vertical Scroll Reprogrammed. Jumps to main code, and the rest is filled with NOPs.
$00FEA8 4 bytes Jump (JML/JSL) Hijacked by the fireball ammo patch to add an ammo counter for fireballs.
$00FEA8 5 bytes Jump (JML/JSL) Modified by No Fireballs in Water patch. Jumps to the main code.
$00FEC4 5 bytes Jump (JML/JSL) Modified by Upwards arc fireball patch. Jumps to the main code.
$01817D 2 bytes 16-bit Pointer Modified by PIXI's poison mushroom patch.
Pointers to sprite init routines. Note that the actual hijack location depends on the sprite slot chosen*2. For example, if the sprite is inserted in slot $85, then the hijack location is ($01817D + ($85*2) = $018287). The poiner is relocated to the power-up routine.
$018221 2 bytes 16-bit Pointer Modified by Lunar Magic.

Lunar Magic 2.53+ changes sprite 52's (moving ledge hole) init pointer to $85B7 (part of the piranha plant's init routine) to fix an issue in the original SMW where this sprite would spawn in the wrong position if placed at the top of a subscreen.
$0182B5 2 bytes 16-bit Pointer Modified by Hammer Bro Fix. Redirects Grey Platform's init to Hammer Bro's.
$0185CC 2 bytes 16-bit Pointer Modified by PIXI's poison mushroom patch.
Pointers to sprite main routines. Note that the actual hijack location depends on the sprite slot chosen*2. For example, if the sprite is inserted in slot $85, then the hijack location is ($0185CC + ($85*2) = $0186D6). The poiner is relocated to the power-up routine.
$018648 2 bytes 16-bit Pointer Modified by Item Box Sprite Fix, by Davros/Romi.

Overwrites the pointer to the P-Switch Main routine to run custom blink-fall code.
$018672 2 bytes 16-bit Pointer Modified by Item Box Sprite Fix, by Davros/Romi.

Overwrites the pointer to the Throw Block sprite Main routine to run custom blink-fall code.
$0186CC 2 bytes 16-bit Pointer Modified by Item Box Sprite Fix, by Davros/Romi.

Overwrites the pointer to the Key sprite Main routine to run custom blink-fall code.
$0187A7 4 bytes Code Modified by Hammer Bro Fix. Init for both Hammer Bro and Flying Grey Platform.
$0187A7 4 bytes Jump (JML/JSL) Hijacked by sprite tool. This then jumps to freespace to initalize custom sprite tables.
$019534 3 bytes Code Modified by Lunar Magic.
$019826 2 bytes Code Modified by Lunar Magic.
$019F77 2 bytes Opcode Hijacked by the SMB2 Holding patch: This one puts carried sprites always above Mario.
$01A00D 4 bytes Jump (JML/JSL) Hijacked by the SMB2 Holding patch: This one controls how sprites a released.
$01A0F6 4 bytes Jump (JML/JSL) Hijacked by the SMB2 Holding patch: This one controls the position of the carried sprite.
$01A685 4 bytes Jump (JML/JSL) Hijacked by the SMB2 Holding patch: This one hijacks the interaction between two sprites. Any goomba and a sprite acting like one (e.g. the SMB2 sprites) behave like a thrown sprite in SMB2.
$01AA58 4 bytes Jump (JML/JSL) Hijacked by the SMB2 Holding patch: This one is for picking up a sprite.
$01AA5E 6 bytes Jump (JML/JSL) Modified by No Pressed P-Switch Carry patch. Extends checks for if p-switch can be carried to include check if it was pressed.
$01AB07 5 bytes Jump (JML/JSL) Modified by No P-Switch Music Reset. Jumps to the main code.
$01AFE9 4 bytes Jump (JML/JSL) Modified by Thwimp + SFX Patch. Jump to code that handles sound effect when thwimp jumps (and Y-speed that is replaced with this hijack).
$01B9CD 2 bytes Code Modified by Lunar Magic.
$01C22B 4 bytes Jump (JML/JSL) Modified by the Runaway Wing Patch. Handles the wings' movement if the coin/mushroom is collected.
$01C2AA 5 bytes Jump (JML/JSL) Modified by Flying Yellow 1-up Value Change, by Zeldara109

JML : NOP, overwrites JSR to 1-up routine to set up custom reward.
$01C30F 4 bytes Jump (JML/JSL) Modified by the Runaway Wing Patch. Hijacks' the "golden 1-up mushroom collected" routine.
$01C358 8 bytes Jump (JML/JSL) Modified by the Edible Blocks patch, by Thomas.

JSR GetDrawInfo : JSL : RTS, hijacks the routine that draws an eaten berry-sprite to allow variable customized sprite tiles and properties.
$01C39C 4 bytes Jump (JML/JSL) Modified by Item Block Priority Mask. Jumps to the main code.
$01C545 5 bytes Jump (JML/JSL) Modified by Item Box Mushroom Priority Fix. Jumps to the main code.
$01C5EC 4 bytes Jump (JML/JSL) Modified by Yoshi Fireball Ability Patch. This jumps to a piece of code that resets the cooldown timer for Yoshi Fireball shooting when the player gets a Fire Flower.
$01C636 4 bytes Jump (JML/JSL) Modified by the Runaway Wing Patch. Hijacks the "powerup graphics" routine.
$01D9E1 4 bytes Jump (JML/JSL) Modified by Rope Fix. Jumps to the code that applies the line-guide fix.
$01DA17 5 bytes Jump (JML/JSL) Modified by Rope Fix. Jumps to the code that applies the ground fix.
$01E6B5 4 bytes Jump (JML/JSL) Hijacked by the SMB2 Holding patch: This one enables the function of $154C,x to the spring board so that it gets intangible after dropping or throwing it.
$01E6CE 4 bytes Jump (JML/JSL) Hijacked by the SMB2 Holding patch: This one is for picking up a springboard.
$01E75B 5 bytes Jump (JMP/JSR) Modified by Item Box Sprite Fix, by Davros/Romi.

JML : NOP, hijacks shared P-Switch/Display Text sprite main routine to execute custom blink-fall code for various sprites.
$01E762 6 bytes Code Modified by Lunar Magic.
Part of the Sprite 19 fix. If that isn't installed, this is instead replaced with a JSL to $03BCA0, where the correct starting submap is set.
$01F0D3 42 bytes Code Modified by the Edible Blocks patch, by Thomas.

Overwrites the default "eaten berry" routines with custom code. Contains a JSL to code that runs one of up to 255 custom eaten block routines. Overwrites and recreates the routine that awards a coin for eating a normal non-berry sprite.
$01F3D6 1 byte Opcode Modified by the Edible Blocks patch, by Thomas.

RTS, bypass running the Yoshi tongue drawing and processing routines in situations in which neither should exert any effect. Optionally enabled.
$01F3F4 1 byte Opcode Modified by the Edible Blocks patch, by Thomas.

RTS, bypass running the Yoshi tongue drawing and processing routines in situations in which neither should exert any effect. Optionally enabled.
$01F3FA 1 byte Opcode Modified by the Edible Blocks patch, by Thomas.

RTS, bypass running the Yoshi tongue drawing and processing routines in situations in which neither should exert any effect. Optionally enabled.
$01F469 1 byte Data Modified by $02xx OAM Remapper. Remaps Yoshi tongue's OAM slots: it uses 5 slots in a row, starting from the one defined in the patch.
$01FB28 2 bytes Opcode Modified by Minimalist Course Clear so it loads a custom waiting value that determines when to fade back to the overworld after beating a boss.
$02808D 4 bytes Jump (JML/JSL) Modified by Bob-omb Cape Fix. Jumps to the main code.
$028B78 12 bytes Table Modified by $02xx OAM Remapper. This is the table with the OAM indexes for the minor extended sprites.
$0291ED 4 bytes Table Modified by $02xx OAM Remapper. This is the table with the OAM indexes for the block bounce sprites.
$0294C6 3 bytes Opcode Modified by Yoshi Fireball Ability Patch [BRA $01 : NOP]. This piece of code frees $14A9 so it can be used as a cooldown timer.
$02961B 3 bytes Code Modified by Lunar Magic.
$0296B8 4 bytes Table Modified by $02xx OAM Remapper. This is the table with the OAM indexes for the smoke sprite 01 (puff of smoke).
$0297B3 1 byte Data Modified by $02xx OAM Remapper. Determines the starting slot (it uses 4 in a row) for the contact sprite (smoke sprite 2) during non-mode 7 boss levels.
$029839 1 byte Data Modified by $02xx OAM Remapper. Determines the starting slot (it uses 4 in a row) for the contact sprite (smoke sprite 2) during mode 7 boss levels.
$0299E9 4 bytes Table Modified by $02xx OAM Remapper. Remaps coin sprites from blocks' OAM slots.
$029B16 4 bytes Jump (JML/JSL) Used by the Reznor Fireball Fix patch to force non-existing Extended Sprites to clear the flag used by the fireballs, to maximize compatibility with existing sprites.
$029FAB 2 bytes Table Modified by $02xx OAM Remapper. This is the table with the OAM indexes for the player's fireballs.
$02A0EE 5 bytes Jump (JML/JSL) Modified by Bob-omb explodes on fireball patch. Changes fireball contact checks, so it checks for (para-)bomb before anything else.
$02A129 13 bytes Code Modified by Classic Fireball patch. Sets the sprite hit by a fireball to die by star, then jumps to the main code and sets the score.
$02A153 8 bytes Table Modified by $02xx OAM Remapper. This is the table with the OAM indexes for extended sprites.
$02A31D 4 bytes Jump (JML/JSL) Used by the Reznor Fireball Fix patch to move the increment of $1765,x to the Hammer's animation routine.
$02A519 4 bytes Jump (JML/JSL) Used by the Reznor Fireball Fix patch to update the clipping for the Reznor and Piranha fireball extended sprites when they are marked as 16x16.
$02A6EC 3 bytes Code Modified by Lunar Magic.
$02A986 2 bytes Code Modified by Lunar Magic (currently has special logic to detect and handle change by Vitor's SA-1 patch).
$02AD9E 6 bytes Table Modified by $02xx OAM Remapper. This is the table with the OAM indexes for score sprites.
$02BA9E 4 bytes Jump (JML/JSL) Modified by the Edible Blocks patch, by Thomas.

JML, hijacks baby Yoshi/Yoshi tongue block detection routine to check for custom tiles.
$02BB01 5 bytes Jump (JML/JSL) Modified by the Edible Blocks patch, by Thomas.

JSL : PLX, hijacks the routine that replaces an eaten berry tile with a bush tile to allow replacement with empty tiles.
$02D1B9 4 bytes Jump (JML/JSL) Modified by the Edible Blocks patch, by Thomas.

JML, hijacks Yoshi head berry detection routine (eat berry by touching, as opposed to using the tongue) to check for custom tiles.
$02D207 4 bytes Jump (JML/JSL) Modified by the Edible Blocks patch, by Thomas.

JSL, hijacks the routine that replaces an eaten berry tile with a bush tile to allow replacement with empty tiles.
$02D214 4 bytes Jump (JML/JSL) Modified by Balloon Direction Fix. Jumps to the main code.
$02DB5F 4 bytes Jump (JML/JSL) Modified by Hammer Bro Fix. Used to attach hammer bros to platforms correctly.
$02E50A 4 bytes Jump (JML/JSL) Modified by Mushroom Scale Fix. Jumps to the main code.
$02E6D3 4 bytes Jump (JML/JSL) Modified by Fishin' Lakitu bug fix. Jumps to the main code.
$02EA9B 5 bytes Jump (JML/JSL) Modified by the Edible Blocks patch, by Thomas.

JML : NOP, hijacks the multi-sprite processing portion of the baby Yoshi sprite eating routine to check for and prevent the double-eat glitch. Optionally enabled.
$02F280 6 bytes Jump (JML/JSL) Wiggler Score Glitch Fix hijack
$02FA0A 4 bytes Table Modified by $02xx OAM Remapper. This is the table with the OAM indexes for the background candle flames. These are indexes into $0300, not $0200.
$02FF50 20 bytes Table Modified by $02xx OAM Remapper. This is the table with the OAM indexes for cluster sprite Boos, Sumo Brothers' flame, and the unused Swoopers (Death Bat Ceiling).
$02FF64 8 bytes Table Modified by $02xx OAM Remapper. This is the table with the OAM indexes for the 1-up from bonus game.
$02FFE2 30 bytes Data PIXI Header containing header string, version and pointer tables for sprite data.
$03800E 4 bytes Data Modified by Goodbye Football RNG, by Mandew.

Restructures the football sprite bounce speed table to be read as "low value/mid value/high value" in sequence.
$03805C 4 bytes Jump (JML/JSL) Modified by Goodbye Football RNG, by Mandew.

JSL, modifies the index to the football sprite bounce speed table to cycle across three values in sequence. Overwrites the retrieval of a random number.
$038097 2 bytes Opcode Modified by Minimalist Course Clear so it loads a custom waiting value that determines when to fade back to the overworld after beating a boss.
$038AAE 4 bytes Jump (JML/JSL) Modified by Bowser Statue Jumping SFX, by Yan.

JML, modifies the routine that sets the golden Bowser statue's jumping speed to include a sound effect.
$038D6F 4 bytes Jump (JML/JSL) Modified by Item Box Sprite Fix, by Davros/Romi.

JML, hijacks Info Box sprite Main routine to execute custom blink-fall + positioning code. Optionally disabled.
$038E9A 9 bytes Code Modified by Moving Castle Block Offscreen Handling Fix. Calls SubOffScreen and then jumps to the main code.
$0398DE 13 bytes Code Modified by Minimalist Course Clear.

When modified, this part of the "Reznor defeated" code handles freezing sprites if set in the patch's config, playing the SFX and fixing a bug if sprites aren't set to freeze (jumps to freespace made by hijack $00AF2D).
$039B03 4 bytes Jump (JML/JSL) Used by the Reznor Fireball Fix patch to make the fireballs fired by Reznor use the new flag.
$03B90C 2 bytes Data Modified by Magikoopa Palette Correction Patch, corrects Magikoopa's fading in/out palette.
$03B91C 2 bytes Data Modified by Magikoopa Palette Correction Patch, corrects Magikoopa's fading in/out palette.
$03B92C 2 bytes Data Modified by Magikoopa Palette Correction Patch, corrects Magikoopa's fading in/out palette.
$03B93C 2 bytes Data Modified by Magikoopa Palette Correction Patch, corrects Magikoopa's fading in/out palette.
$03B94C 2 bytes Data Modified by Magikoopa Palette Correction Patch, corrects Magikoopa's fading in/out palette.
$03B95C 2 bytes Data Modified by Magikoopa Palette Correction Patch, corrects Magikoopa's fading in/out palette.
$03B96C 2 bytes Data Modified by Magikoopa Palette Correction Patch, corrects Magikoopa's fading in/out palette.
$03B97C 2 bytes Data Modified by Magikoopa Palette Correction Patch, corrects Magikoopa's fading in/out palette.
$03BB20 52 bytes Code Modified by Lunar Magic.
Writes the level name data into the stripe table ($7F837D) to be uploaded during NMI. The table that contains this data can be found using read3($03BB57). Each level there receives 19 bytes for the level name.
$03BC7F 16 bytes Table Used by Lunar Magic as a table of stripe headers (at least, the first two bytes of them) for each line of the message box.
$03BE80 384 bytes Table Used by Lunar Magic for its level names system. Specifically, this table contains 16-bit indices to the message data table at read3($03BC0B) for each message. This table is indexed as ((translevel number * 2) + message number) * 2.

If the overworld expansion hijack from LM v2.53 is applied, this table is moved to read3($03BBD9) and modified to contain direct 24-bit pointers for every message, while the index table at read3($03BC0B) is scrapped.
In its place, the first 256 bytes are used as the initial level flags (moved from $05DDA0), with the remaining bytes left unused.
$03C1F9 4 bytes Jump (JML/JSL) Modified by Item Box Sprite Fix, by Davros/Romi.

JML, hijacks Light Switch Box sprite Main routine to execute custom blink-fall + positioning code. Optionally disabled.
$03C34C 4 bytes Jump (JML/JSL) Modified by Ninji Ceiling Fix. Jumps to the main code.
$03C7A1 2 bytes Code Modified by Minimalist Course Clear so it loads a custom waiting value that determines when to fade back to the overworld after beating a boss.
$03CE94 2 bytes Opcode Modified by Minimalist Course Clear so it loads a custom waiting value that determines when to fade back to the overworld after beating a boss.
$03E05C 300 bytes 24-bit Pointer PIXI pointers to shared routines. Tool caps it at 100 routines but it really only takes up routines*3 bytes, so anything in this range is use at own risk.
$03FE00 512 bytes Table Lunar Magic uses this as a table of the level animation settings for each level. Format: PTLG----
P = disable original game's palette animations
T = disable original game's tile animations
L = disable LM's level animations
G = disable LM's global animations
---- = unused
$048086 5 bytes Code Modified by Lunar Magic.
$0480BD 1 byte Code Modified by Lunar Magic.
$0480D0 1 byte Opcode Modified by Lunar Magic.
$0480E0 5 bytes Code Modified by Lunar Magic.
$048102 1 byte Code Modified by Lunar Magic.
$04810D 1 byte Code Modified by Lunar Magic.
$04813B 1 byte Code Modified by Lunar Magic.
$04828D 1 byte Opcode Modified by Lunar Magic.
$04836E 1 byte Opcode Modified by Lunar Magic.
$048380 1 byte Opcode Modified by Lunar Magic.
$048414 1 byte Opcode Not modified, however is used by Lunar Magic as an RTL for calling routines that end in RTS in bank 4 with stack magic. So don't modify it.
$048509 5 bytes Code Modified by Lunar Magic.
$048566 4 bytes Jump (JML/JSL) Modified by Lunar Magic. This handles star roads and pipes.
$048E81 10 bytes Code Modified by Lunar Magic. Jumps to a routine that handles level names, located at $03BB20.
$048F8A 5 bytes Code Modified by Lunar Magic.
$049002 1 byte Code Modified by Lunar Magic.
$04914E 2 bytes Code Modified by Lunar Magic.
$049170 5 bytes Code Modified by Enter Level/Pipe/Star Road Sounds. Modifies the sound when entering a star tile on OW.
$049195 4 bytes Jump (JML/JSL) Modified by Enter Level/Pipe/Star Road Sounds. Modifies the sound when entering a pipe tile on OW.
$049199 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$0491E5 4 bytes Jump (JML/JSL) Modified by Enter Level/Pipe/Star Road Sounds. Modifies the sound when entering a level tile on OW.
$049549 10 bytes Code Modified by Lunar Magic.
$049A35 5 bytes Code Modified by Lunar Magic. This handles the red exit tiles.
$049DFE 3 bytes Code Modified by Lunar Magic.
$04D7F9 64 bytes Code Modified by Lunar Magic.
$04D859 1 byte Code Modified by Lunar Magic.
$04DA74 3 bytes Code Modified by Lunar Magic.
$04DA98 1 byte Opcode Modified by Lunar Magic.
$04DBB9 6 bytes Code Modified by Lunar Magic.
$04DC3B 2 bytes Code Modified by Lunar Magic.
$04DC72 2 bytes Code Modified by Lunar Magic.
$04DC79 1 byte Code Modified by Lunar Magic.
$04DC8D 2 bytes Code Modified by Lunar Magic.
$04DCA5 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$04DCAA 1 byte Code Modified by Lunar Magic.
$04DCBC 2 bytes Code Modified by Lunar Magic.
$04DCC1 1 byte Code Modified by Lunar Magic.
$04DCFA 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$04DD45 2 bytes Code Modified by Lunar Magic.
$04DD4A 1 byte Code Modified by Lunar Magic.
$04E471 3 bytes Code Modified by Lunar Magic.
$04E49F 3 bytes Code Modified by Lunar Magic.
$04E4A4 3 bytes Code Modified by Lunar Magic.
$04E4B0 1 byte Code Modified by Lunar Magic.
$04E4BB 2 bytes Code Modified by Lunar Magic.
$04E4C0 2 bytes Code Modified by Lunar Magic.
$04E622 1 byte Opcode Modified by Lunar Magic.
$04E660 1 byte Code Modified by Lunar Magic.
$04E67C 3 bytes Code Modified by Lunar Magic.
$04E69C 3 bytes Code Modified by Lunar Magic.
$04E6DE 3 bytes Code Modified by Lunar Magic.
$04E6FA 2 bytes Code Modified by Lunar Magic.
$04E709 3 bytes Code Modified by Lunar Magic.
$04E710 3 bytes Code Modified by Lunar Magic.
$04E73E 1 byte Code Modified by Lunar Magic.
$04E745 2 bytes Code Modified by Lunar Magic.
$04E75E 3 bytes Code Modified by Lunar Magic.
$04E9F2 1 byte Code Modified by Lunar Magic.
$04E9F4 3 bytes Code Modified by Lunar Magic.
$04E9F7 5 bytes Code Modified by Lunar Magic.
$04EA27 3 bytes Code Modified by Lunar Magic.
$04EA32 3 bytes Code Modified by Lunar Magic.
$04EA38 3 bytes Code Modified by Lunar Magic.
$04EAAE 2 bytes Code Modified by Lunar Magic.
$04EACC 10 bytes Code Modified by Lunar Magic.
$04EAD8 2 bytes Code Modified by Lunar Magic.
$04EAF5 3 bytes Code Modified by Lunar Magic.
$04EC8C 3 bytes Code Modified by Lunar Magic.
$04ECBA 3 bytes Code Modified by Lunar Magic.
$04ECC5 3 bytes Code Modified by Lunar Magic.
$04ED97 3 bytes Code Modified by Lunar Magic.
$04EDB8 3 bytes Code Modified by Lunar Magic.
$04EDBE 3 bytes Code Modified by Lunar Magic.
$04EE3F 3 bytes Code Modified by Lunar Magic.
$04EE5A 3 bytes Code Modified by Lunar Magic.
$04EE5E 2 bytes Code Modified by Lunar Magic.
$04EEC9 3 bytes Code Modified by Lunar Magic.
$04F2B7 3 bytes Code Modified by Lunar Magic.
$04F2BE 3 bytes Code Modified by Lunar Magic.
$04F2C5 3 bytes Code Modified by Lunar Magic.
$04F2CC 3 bytes Code Modified by Lunar Magic.
$04F2D2 3 bytes Code Modified by Lunar Magic.
$04F2D6 3 bytes Code Modified by Lunar Magic.
$04F2DF 3 bytes Code Modified by Lunar Magic.
$04F2E6 3 bytes Code Modified by Lunar Magic.
$04F2EC 3 bytes Code Modified by Lunar Magic.
$04F32C 3 bytes Code Modified by Lunar Magic.
$04F33B 3 bytes Code Modified by Lunar Magic.
$04F33F 3 bytes Code Modified by Lunar Magic.
$04F344 3 bytes Code Modified by Lunar Magic.
$04F39E 3 bytes Code Modified by Lunar Magic.
$04F3A7 3 bytes Code Modified by Lunar Magic.
$04F3AB 3 bytes Code Modified by Lunar Magic.
$04F3AF 3 bytes Code Modified by Lunar Magic.
$04F3C0 3 bytes Code Modified by Lunar Magic.
$04F3C4 3 bytes Code Modified by Lunar Magic.
$04F3CA 3 bytes Code Modified by Lunar Magic.
$04F3CE 3 bytes Code Modified by Lunar Magic.
$04F4B2 85 bytes Data Modified by 999 lives, it's the stripe data for the edited "Lives Exchange" image.
$04F594 2 bytes Opcode [to LDY #$54] Modified by 999 lives. It's the length-1 of the "Exchange Lives" stripe image. The original one was 81 bytes long.
$04F5B7 8 bytes Code Modified by 999 lives to draw Mario's halo during the "Lives Exchange" system without glitching up.
$04F5C7 8 bytes Code Modified by 999 lives to draw Luigi's halo during the "Lives Exhange" system without glitching up.
$04F5E2 3 bytes Opcode Modified by 999 lives. Loads the relocated stripe image data for the arrow that shows up during the "Exchange Lives" system.
$04F5E5 4 bytes Opcode Modified by 999 lives, fixes where the direction during the "Exchange Lives" system gets stored.
$04F5EC 4 bytes Opcode Modified by 999 lives, fixes where the direction during the "Exchange Lives" system gets stored.
$04F5F3 4 bytes Opcode Modified by 999 lives, fixes where the direction during the "Exchange Lives" system gets stored.
$04F5FA 4 bytes Code Modified by 999 lives, fixes where the direction during the "Exchange Lives" system gets stored.
$04F600 4 bytes Jump (JML/JSL) Modified by 999 lives. This jump draws the extended lives numbers in the "Exchange Lives" system.
$04F604 1 byte Opcode Modified by 999 lives. It writes a RTS here to return to the bank.
$04F605 4 bytes Jump (JMP/JSR) Modified by 999 lives, it's the new table for the arrow that appears during the "Lives Exchange" system.
$04F709 1 byte Code Modified by Lunar Magic; it changes which submaps have the thunder effect enabled, see the ROM Map for more info.
$04F767 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$04FBA2 1 byte Code Modified by Lunar Magic.
$04FD86 2 bytes Code Modified by Lunar Magic.
$04FD89 1 byte Code Modified by Lunar Magic.
$04FD8A 1 byte Opcode Modified by Lunar Magic.
$05803B 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$0580A9 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$0580BF 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$0580C3 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$0580C7 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$0580D3 3 bytes Jump (JMP/JSR) Modified by Lunar Magic.
$0583AD 5 bytes Code Modified by Lunar Magic.
$0583B8 5 bytes Jump (JML/JSL) Modified by Lunar Magic, for a jump to the ExGFX processing routine at $0FF7F0.
$058605 5 bytes Code Modified by Lunar Magic.
$0586F7 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$05879D 5 bytes Code Modified by Lunar Magic.
$058A65 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$058B22 1 byte Code Modified by Lunar Magic.
$058B45 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$058C33 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$058D2A 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$058DA4 5 bytes Code Modified by Lunar Magic.
$058DB1 3 bytes Code Modified by Lunar Magic.
$058DB9 3 bytes Code Modified by Lunar Magic.
$058DCA 2 bytes Code Modified by Lunar Magic.
$058E12 3 bytes Code Modified by Lunar Magic.
$05B15D 3 bytes Code Modified by Lunar Magic. Part of the Sprite 19 fix.
$05B1A3 7 bytes Code Modified by Lunar Magic.
$05C40C 5 bytes Code Modified by Lunar Magic.
$05CC66 2 bytes Hex Edit Modified by Course Clear Coins, by MarioFanGamer.

BRA $1C, disables awarding a 1-up if the tens and ones digit of the timer are both equal to the tens digit of bonus stars received. Optionally enabled.
$05CD51 2 bytes Data Modified by Course Clear Coins, by MarioFanGamer.

Replaces the red "★" on the "COURSE CLEAR!" text with a yellow coin icon.
$05CF12 12 bytes Hex Edit Modified by Course Clear Coins, by MarioFanGamer.

INC $13CC : BRA $07 : NOP #7, modifies the "COURSE CLEAR!" bonus star awarding routine to award coins instead.
$05D79B 6 bytes Code Modified by Lunar Magic.
$05D7CE 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$05D7E2 5 bytes Jump (JML/JSL) Modified by Lunar Magic. Transfers Y into X, then JSLs to a routine that uses long addressing to index secondary entrance table $05F800 or its expanded version.
$05D7EA 5 bytes Jump (JML/JSL) Modified by Lunar Magic. Transfers Y into X, then JSLs to a routine that uses long addressing to index secondary entrance table $05FA00 or its expanded version.
$05D81C 5 bytes Jump (JMP/JSR) Modified by Lunar Magic. Transfers Y into X, then JSLs to a routine that uses long addressing to index secondary entrance table $05FC00 or its expanded version.
$05D836 5 bytes Code Modified by Lunar Magic.
$05D8B1 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$05D8B7 39 bytes Code Modified by UberASM and other patches and tools.

Stores the current level number to $010B. Differs from the levelnum.ips patch in that this one uses no freespace.
$05D8E2 4 bytes Jump (JML/JSL) Modified by Lunar Magic.

Stores the current level number plus one to $FE, address used to load custom palettes.
$05D8F5 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$05D979 4 bytes Code Modified by Lunar Magic.
$05D97D 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$05D9E3 4 bytes Jump (JML/JSL) Modified by Lunar Magic.

Used to handle LM's seperate midway point entrance functionality. The three 512-byte tables associated with it can be found in order at read3(read3($05D9E4)+$0A).
$05D9E8 4 bytes Code Modified by Lunar Magic.
$05DA7F 1 byte Code Modified by Lunar Magic.
$05DA83 1 byte Code Modified by Lunar Magic.
$05DAE6 1 byte Opcode Modified by Lunar Magic.
$05DBC2 6 bytes Code Modified by Lunar Magic.
$05DBF2 4 bytes Jump (JML/JSL) Modified by 999 lives, handles the lives' code during the overworld and when exchanging them.
$05DC81 3 bytes 24-bit Pointer Modified by Lunar Magic. The location of secondary entrance table $05FE00 or its expanded version in ROMs modified with Lunar Magic 2.50+.
$05DDA0 96 bytes Data Used by LM for the initial flags of each level (as stored to $1EA2).

If the overworld expansion hijack from LM v2.53 is applied, the table is instead moved to $03BE80, while these bytes are left unused.
$05DE00 512 bytes Data Added by Lunar Magic as a fifth byte of each level's secondary level header. Format: LWPYX---
L - Slippery flag
W - Water flag
P - Flag to use X/Y position method 2
Y - Bit 5 of the entrance Y position for method 2
X - Bit 4 of the entrance X position for method 2
(X/Y are switched in vertical levels)
$06F540 182 bytes Jump (JML/JSL) Used by Lunar Magic as a routine to get a particular Map16 tile's VRAM data (tile number/YXPPCCCT for each of its four tiles). To use, A/X/Y must be 16-bit, and A must contain the tile number multiplied by 2. It returns the lower two bytes of the pointer in A and the bank byte in both the high byte of Y and in $0C (for usages as a 24-bit pointer at $0A).
Alternative entries to the routine are at $06F5D0 (which returns the bank byte in $06 for a pointer at $04 instead of $0A), and $06F5E4 (which directly stores the full pointer into $65).

Pages 0/1 are handled via the original system (a pointer table to data at $0FBE).
Pages 2-7F are then handled by directly indexing their data tables. Each set of 0x10 pages uses a different table; they can each be found with the following calculations:
02-0F: read1($06F557)<<16|(read2($06F553)+$1000&$FFFF)
10-1F: read1($06F560)<<16|(read2($06F55C)+$8000&$FFFF)
20-2F: read1($06F56B)<<16|read2($06F567)+1
30-3F: read1($06F574)<<16|(read2($06F570)+$8000&$FFFF)+1
40-4F: read1($06F598)<<16|read2($06F594)
50-5F: read1($06F5A1)<<16|(read2($06F59D)+$8000&$FFFF)
60-6F: read1($06F5AC)<<16|read2($06F5A8)+1
70-7F: read1($06F5B5)<<16|(read2($06F5B1)+$8000&$FFFF)+1


In addition, if page 2 is set to use tileset-specific Map16 (which can be determined by checking if $06F547 is non-zero), then its data can be found at (read1($06F58A)<<16|read2($06F586))+$1000. In that table, each tileset receives 0x800 bytes, so you can find a particular tile's data by indexing as 0ttttbbb bbbbb000, where tttt is the FG/BG tileset and bbbbbbbb is the low byte of the tile number.
$06F608 60 bytes Jump (JMP/JSR) Used by Lunar Magic as a routine to get a Map16 tile's true acts-like setting (i.e. a value less than 0x200). It returns the 16-bit result in $03, as well as the low byte in $1693 and high byte in Y.

Additionally, the tables used to hold the Map16 tile acts-like settings can be found at the following locations:
Pages 00-3F: read3($06F624)
Pages 40-7F: read3($06F63A)

Each block in these tables receives two bytes, as its 16-bit acts-like setting. To find the true acts-like setting (i.e. a value less than 0x200), simply perform repeated lookups on these tables until a valid value is returned.
$06F690 16 bytes Hex Edit Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario hits a tile from below.
$06F6A0 16 bytes Hex Edit Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile from above.
$06F6B0 16 bytes Hex Edit Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile horizontally.
$06F6C0 16 bytes Hex Edit Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile on the top corners (which corner doesn't matter als long as they are from the top side).
$06F6D0 16 bytes Hex Edit Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile with the lower half of his body (i.e. excluding his head).
$06F6E0 16 bytes Hex Edit Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile with the upper half of his body (i.e. the head but not the rest of the body).
$06F720 16 bytes Hex Edit Used by Lunar Magic. This area allows you to insert custom Map16 interactions if a sprite touches a tile vertically (which side doesn't matter)
$06F730 16 bytes Hex Edit Used by Lunar Magic. This area allows you to insert custom Map16 interactions if a sprite touches a tile horizontally (which side doesn't matter)
$06F780 16 bytes Hex Edit Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile with his cape.
$06F7C0 16 bytes Hex Edit Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario's fireball touches a tile.
$07F26C 1 byte Data Modified by PIXI's poison mushroom patch.
Sprite's $1656 value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F26C + ($85) = $07F2F1).
$07F335 1 byte Data Modified by PIXI's poison mushroom patch.
Sprite's $1662 value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F3BA + ($85) = $07F43F).
$07F3FE 1 byte Data Modified by PIXI's poison mushroom patch.
Sprite's $166E value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F3FE + ($85) = $07F483).
$07F43C 1 byte Data Modified by Item Box Sprite Fix, by Davros/Romi.

db $36, modifies P-Switch sprite tweaker info 166E to ensure proper palette in custom state.
$07F451 1 byte Data Modified by Item Box Sprite Fix, by Davros/Romi.

db $36, modifies Throw Block sprite tweaker info 166E to ensure proper palette in custom state.
$07F4C7 1 byte Data Modified by PIXI's poison mushroom patch.
Sprite's $167A value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F4C7 + ($85) = $07F54C).
$07F590 1 byte Data Modified by PIXI's poison mushroom patch.
Sprite's $1686 value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F590 + ($85) = $07F615).
$07F659 1 byte Data Modified by PIXI's poison mushroom patch.
Sprite's $190F value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F659 + ($85) = $07F6DE).
$0C9EEB 96 bytes Code Modified by Lunar Magic.
$0CAE0F 2 bytes Code Modified by Lunar Magic.
$0CB66E 300 bytes 24-bit Pointer GPS pointer table for shared routine. Tool caps at 100 routines with the pointers being 3 bytes long each (taking 300 bytes in total if you hit the cap).
$0DA532 1 byte Code Modified by Lunar Magic.
$0DA536 2 bytes Code Modified by Lunar Magic.
$0DA62B 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$0DA916 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$0DB318 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$0DB384 4 bytes Jump (JML/JSL) Modified by Lunar Magic.
$0DBADC 39 bytes Code Modified by Forest Treetop Fix. Makes forest treetops able to be positioned at any Y position inside a level.
$0DE190 7 bytes Code Used by Lunar Magic. Routine that indexes secondary entrance table $05F800 or its expanded version with long addressing. $0DE191 is the 24-bit pointer to the location of secondary entrance table $05F800 or its expanded version in ROMs modified with Lunar Magic 2.50+.
$0DE197 7 bytes Code Used by Lunar Magic. Routine that indexes secondary entrance table $05FA00 or its expanded version with long addressing. $0DE198 is the 24-bit pointer to the location of secondary entrance table $05FA00 or its expanded version in ROMs modified with Lunar Magic 2.50+.
$0DE19E 7 bytes Code Used by Lunar Magic. Routine that indexes secondary entrance table $05FC00 or its expanded version with long addressing. $0DE19F is the 24-bit pointer to the location of secondary entrance table $05FC00 or its expanded version in ROMs modified with Lunar Magic 2.50+.
$0EF100 512 bytes Table Modified by LM.

This table contains the bank bytes of every level's sprite data pointer.
$0EF310 512 bytes Table Used by LM as a table of Layer 2-related data for each level. Format: bbBB-LD-
D = What type of data the layer 2 is: object (0) or tilemap (1)
L = Flag to indicate the usage of the high nibble
BB = When L bit is set: Map16 bank to use for the BG
bbBB = When L bit is clear: used as the high byte for all BG Map16 tiles (deprecated?)
-- = Unused
$0EF55D 3 bytes 24-bit Pointer Used by Lunar Magic as a 24-bit pointer to the custom overworld sprite data table. Will be $FFFFFF if no custom sprites are being used.
$0EF600 1536 bytes 24-bit Pointer Used by LM for a pointer table to each level's custom palette.

If a level's pointer is $000000, that means it has no custom palette and the data should be interpreted from the level header instead.
$0EFD50 24 bytes Table Used by Lunar Magic. This is a table of eight 24-bit pointers to the BG Map16 data in ascending order, where each pointer corresponds to a set of 0x10 pages. If a pointer is $000000, then that set of BG Map16 pages is currently unused.
$0FF0A0 160 bytes Hex Edit Not actually "used" for anything, but Lunar Magic writes the following string here:
Code
Lunar Magic Version X.XX Public 
İYYYY FuSoYa, Defender of Relm h
ttp://fusoya.eludevisibility.org
                                
I am Naaall, and I love fiiiish!

where X.XX is the version number and YYYY is the publication year of the LM version used.
$0FF600 384 bytes 24-bit Pointer Used by Lunar Magic for a table of 24-bit pointers to ExGFX80-FF (pointers for 100-FFF can be found at $read3($0FF937)). A pointer of 000000 indicates the file isn't inserted.
$0FF7F0 67 bytes Jump (JML/JSL) Used by Lunar Magic as a routine to handle processing ExGFX files during level load.
A table of every level's ExGFX files can be found at read3($0FF7FF). Each level receives 32 bytes, with two bytes per ExGFX file; some additional data is also stored in the high byte of certain files. More information can be found here.
$0FF900 110 bytes Jump (JML/JSL) Used by Lunar Magic as a routine to decompress a 4bpp GFX file to a specified location in RAM. To use it, load the 16-bit GFX file number into A and 24-bit destination RAM address in $00.
Note that it won't work on GFX32/33.

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

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


Total queries: 22

Menu

Follow Us On

  • Facebook
  • Twitter
  • YouTube

Affiliates

  • Talkhaus
  • SMBX Community
  • GTx0
  • Super Luigi Bros
  • ROMhacking.net
  • MFGG
  • Gaming Reinvented