Language…
12 users online: abhinavkrishna123, DPBOX, Green, Guido_Keller, I'm Poppy, KoJi, l44l, manuel10105, pakkie, ShadowMistressYuko,  Telinc1, The_Uber_Camper - Guests: 165 - Bots: 229
Users: 64,667 (2,405 active)
Latest user: DarthHylian

SMW Memory Map

Displaying 100 out of 2304 addresses.

View: moderated | waiting (35)

Filter

Link
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 23
  • 24
Hijack Address Length Type Description Details
$008023 4 bytes Jump (JML/JSL) Modified by ZSNES incompatibility notice. Jumps to the main code.
$008027 4 bytes Code Hijacked by the Free up RAM $7F:8000 patch by DiscoTheBat and Ersanio.
Inserts a SEP #$30, to set the processor status to 8-bit A and X/Y, and a BRA to skip the code that uploads the OAM clear routine to $7F8000.
The BRA jumps to $008052 if !UberASMTool = 0, and to $00804E if !UberASMTool = 1.
$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.
$00804E 4 bytes Jump (JML/JSL) Hijacked by UberASMTool.
JML, jumps to the routine that initializes the freeram used by the tool and executes the global init code.
$008052 3 bytes Jump (JMP/JSR) Hijacked by AddmusicK.
Inserts a JSR to the custom UploadSPCEngine routine inserted in the $008079 area, replacing the original JSR.
$00805E 3 bytes Hex Edit Modified by AddmusicK.
Inserts 3 NOPs to skip a JSR to a routine that uploads samples to the SPC700.
$00806B 4 bytes Jump (JML/JSL) Hijacked by UberASMTool.
JML, jumps to the routine that executes global main code.
$008070 4 bytes Jump (JML/JSL) Modified by 16-bit frame counter. Jump to code that increases both $13 and 16-bit frame counters.
$008072 3 bytes Jump (JMP/JSR) Modified by the CPU Usage Meter patch. Jumps to the main code of the patch in a free area at $00FF9C.
$008072 3 bytes Jump (JMP/JSR) Hijacked by the Lunar Magic's "VRAM Patch" Optimization patch, by Kevin.

JSR, replaces the main game loop call with a call to a custom routine in bank 0 freespace, which allows the stripe image modifications to take place outside of NMI after the game loop has run.
$008075 4 bytes Jump (JML/JSL) Hijacked by AddmusicK.
JML to the main AMK routine inserted in the $0E8000 area.
$008079 209 bytes Code Modified by AddmusicK.
Replaces the original SPC data upload routine with a custom one.
$008176 6 bytes Jump (JML/JSL) Hijacked by UberASMTool.
JML : NOP #2, jumps to the routine that executes all possible NMI codes inserted in the tool (global, level, gamemode, overworld). For efficiency, certain parts of the code are only inserted if needed.
$008179 49 bytes Hex Edit Modified by AddmusicK.
BRA + : NOP #47 : +, skips over original NMI audio code that's already handled in AMK's routines. This is inserted in case neither $008179 == $5C nor $008176 == $5C.
$00817C 46 bytes Hex Edit Modified by AddmusicK.
BRA + : NOP #44 : +, skips over original NMI audio code that's already handled in AMK's routines. This is inserted in case $008176 is $5C (JML), to make it compatible with a LevelNMI (UberASM) hijack.
$00817D 45 bytes Hex Edit Modified by AddmusicK.
BRA + : NOP #43 : +, skips over original NMI audio code that's already handled in AMK's routines. This is inserted in case $008179 is $5C (JML), to make it compatible with PowerTool.
$00818F 18 bytes Code Hijacked by the No Title SFX patch.
A piece of code that mutes every SFX in the title screen.
$0081AA 8 bytes Jump (JML/JSL) Modified by Ice Man's 'HDMA v3.5' patch. Hijacks NMI and calls the main routine. [JSL : BRA : NOP #2]
$0081AA 4 bytes Jump (JML/JSL) Hijacked by the Retry System (+ Multiple Checkpoints) v2.06b patch by worldpeace and LX5.
JML, it jumps to the code that turns off HDMA during level transitions (including room respawning).
$0081AA 5 bytes Jump (JML/JSL) Hijacked by the HDMA Bugfixes patch, by Ice Man.

JML : NOP, clears the HDMA enable mirror on specific game modes.
$0081AF 3 bytes Code Modified by Fix HDMA Flickering patch by anonimzwx.

BRA $01 : NOP, removes the line [STZ $420C] from NMI.
$0081C6 5 bytes Jump (JML/JSL) Modified by the Easy Mode 7 Patch by ExE Boss, HuFlungDu, and mathie.

JML : NOP, makes SMW use the Mode 7 mirrors in any Mode 7 level instead of just boss levels.
$0081D5 4 bytes Jump (JML/JSL) Modified by "Mode 7 Game Over Screen" patch. Check for game over game mode and update mode 7 image.
$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.
$0081F4 3 bytes Hex Edit Modified by "Remove Status Bar" patch. Remove routine call that draws status bar during normal levels.
$0081F4 2 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

BRA $01, skips the vanilla status bar NMI routine.
$008209 4 bytes Jump (JML/JSL) Modified by Lunar Magic.

Part of Lunar Magic's VRAM modification patch.
$00820D 4 bytes Jump (JML/JSL) Hijacked by the Inline Layer 3 Messages v1.0.1 patch, by MarioFanGamer.

JML, jumps to code that handles VRAM reads/writes during NMI (if !HijackNmi = 1).
$00820D 5 bytes Code Modified by the Inline Layer 3 Messages v1.0.1 patch, by MarioFanGamer.

Code, restores the original NMI code so that the custom code can be inserted via UberASM (if !HijackNmi = 0).
$00823D 6 bytes Jump (JML/JSL) Dynamic Z Main Hijack 1.

Is used for the main features of Dynamic Z since V3.5 (dynamic sprites, graphics change and palette changes).

This hijack points to a call where is called the routine "LoadScrnImage" and happend after MarioGFXDMA Routine (the dma routine of mario, yoshi and podoboos).
$008243 2 bytes Code Modified by Controller Read Optimization by spooonsss.

Changed to BRA $01 to skip the JSR to the controller update routine.
$008275 4 bytes Jump (JML/JSL) Modified by the Move Layer 3 to Subscreen Fix patch, by Kevin and Lui.

JML, modifies the NMI routine to back up the original main screen/subscreen settings to free RAM, disable Layer 3 on the main screen, and enable Layer 3 on the subscreen if the "Move Layer 3 to Subscreen" option is checked in Lunar Magic.
$008275 4 bytes Jump (JML/JSL) Hijacked by Lui37's 'Move Layer 3 to Subscreen Fix' patch. It changes part of NMI. [JML]
$008275 3 bytes Jump (JMP/JSR) Modified by "Remove Status Bar" patch. Jump to code that disables IRQ.
$008282 1 byte Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

db $11, repoints the branch destination to jump to $00828F instead of $0082A1 when not in the credits.
$008283 12 bytes Code Modified by Fix HDMA Flickering patch by anonimzwx.

Flips the order the game writes to the screen display register ($2100) and the HDMA enable register ($420C) in NMI, making the game first write to the HDMA enable register.
Code
$008292 1 byte Code Modified by the Super Status Bar patch by GreenHammerBro and Kaijyuu. This is the scanline at which the status bar IRQ will fire in normal levels.
$008292 24 bytes Code Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

See details, handles the NMI code of the status bar.
Hijacked Code
$008292 4 bytes Jump (JML/JSL) Hijacked by the Timer Sprite Status Bar patch, by CircleFriendo.

JML, sets the game modes where IRQ will be fired normally and where it is disabled.
$008294 4 bytes Jump (JML/JSL) Hijacked by the RAM Toggled Status Bar (& IRQ) Patch, by Kevin.
JML, hijacks the status bar IRQ setup.
$0082B0 6 bytes Jump (JML/JSL) Modified by the b4vwf - BG4 Variable-Width-Font Text Boxes patch, by Katrina.

JML : NOP #2, changes NMI settings to set up message box IRQ.
$0082B0 12 bytes Code Modified by Fix HDMA Flickering patch by anonimzwx.

Flips the order the game writes to the screen display register ($2100) and the HDMA enable register ($420C) in NMI, making the game first write to the HDMA enable register.
Code
$0082B0 6 bytes Jump (JML/JSL) Modified by VWF Level Intros. Modifies brightness ($2100) store at NMI by aligning it to h-blank.
$0082DA 5 bytes Jump (JML/JSL) Dynamic Z Main Hijack 2.

Is used for the main features of Dynamic Z since V3.5 (dynamic sprites, graphics change and palette changes).

This hijack points to a place is detected if the current escene is the bowser stage or reznor stage and happend after MarioGFXDMA Routine (the dma routine of mario, yoshi and podoboos).
$0082E8 3 bytes Hex Edit Modified by "Remove Status Bar" patch. Remove routine call that draws status bar during Mode 7 boss battles.
$0082F4 2 bytes Code Modified by Controller Read Optimization by spooonsss.

Changed to BRA $01 to skip the JSR to the controller update routine.
$00834B 12 bytes Code Modified by Fix HDMA Flickering patch by anonimzwx.

Flips the order the game writes to the screen display register ($2100) and the HDMA enable register ($420C) in NMI, making the game first write to the HDMA enable register.
Code
$00835C 1 byte Code Modified by the Super Status Bar patch by GreenHammerBro and Kaijyuu. This is the scanline at which the status bar IRQ will fire in mode 7 boss levels.
$00835C 4 bytes Jump (JML/JSL) Hijacked by the Timer Sprite Status Bar patch, by CircleFriendo.

JML, sets the game modes where IRQ will be fired normally and where it is disabled inside Mode 7 rooms.
$008385 5 bytes Jump (JML/JSL) Modified by the b4vwf - BG4 Variable-Width-Font Text Boxes patch, by Katrina.

JML : NOP, changes IRQ settings to set up BG4 settings on message box region.
$008385 7 bytes Jump (JML/JSL) Modified by the Easy Mode 7 Patch by ExE Boss, HuFlungDu, and mathie.

JML : NOP : BMI, compatability code for SA-1 Pack v1.32+ due to changes in IRQ code. Not hijacked on LoROM.
$00838F 5 bytes Jump (JML/JSL) Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

JML : NOP, handles the IRQ code of the status bar.
$00838F 2 bytes Hex Edit Modified by the Move Layer 3 to Subscreen Fix patch, by Kevin and Lui.

LDY #$1E, adjusts the H-blank wait timing of the IRQ routine to suit a separate hijack made by the patch.
$00838F 2 bytes Code Modified by Lui37's 'Move Layer 3 to Subscreen Fix' patch. [LDY #$1E]
$008394 4 bytes Jump (JML/JSL) Hijacked by Lui37's 'Move Layer 3 to Subscreen Fix' patch. It modifies IRQ. [JML]
$008394 4 bytes Jump (JML/JSL) Modified by the Move Layer 3 to Subscreen Fix patch, by Kevin and Lui.

Applied on LoROM only. JML, modifies the tail end of the IRQ routine to preserve the original Layer 3 main screen/subscreen settings for the status bar region.
$0083ED 2 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

BRA $04, disables the fixed position of layer 3 during the goal march.
$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.
$0085A2 3 bytes 24-bit Pointer Modified by Title Screen Fade by Erik.

A pointer for title screen layer 3 border removal so that only file selection appears on screen.
$0085D2 4 bytes Hex Edit Hijacked by the Retry System (+ Multiple Checkpoints) v2.06b patch by worldpeace and LX5.
It writes the original data [$A4, $12, $B9, $D0] in case the first byte is $5C (JML). This specifically restores the changes made by the Strip Image Uploader Hack patch by imamelia.
$008642 4 bytes Jump (JML/JSL) Hijacked by the Free up RAM $7F:8000 patch by DiscoTheBat and Ersanio.
Replaces JSL $7F8000 with a JSL to the OAM clear routine in freespace.
$0086A8 25 bytes Code Hijacked by No Button Aliases by mszegedy.
The patch's single hijack that changes the connections between $0da2-$0da8 and $15-$18.
Hijack size is 25 bytes if either alias is re-enabled, otherwise size is 21 bytes.
$0086C1 4 bytes Jump (JML/JSL) Hijacked by DMA Queue and Block Change Optimize by imamelia, mario90 and spooonsss.
JML, A hijack in late NMI (right at the end of the controller update routine) to upload data from the DMA queue.
$0086C6 1 byte Opcode Modified by Controller Read Optimization by spooonsss.

Changes the return from the controller update routine to an RTL instead of RTS.
$0086DA 4 bytes Jump (JML/JSL) Hijacked by the Free up RAM $7F:8000 patch by DiscoTheBat and Ersanio.
Replaces JSL $7F812E with a JSL to the OAM clear routine in freespace.
$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.
$008751 4 bytes Code Modified by the Lunar Magic's "VRAM Patch" Optimization patch, by Kevin.

REP #$20 : LDA $03, removes a hijack inserted by Lunar Magic that runs the stripe image modifications in NMI.
$008A4E 5 bytes Code Modified by Lunar Magic.
$008A71 5 bytes Jump (JML/JSL) Not modified itself, but read by the Move Layer 3 to Subscreen Fix patch, by Kevin and Lui, and only on SA-1 ROMs. Reads the location of the "snes_init" label as applied by the SA-1 pack, and offsets from it to modify the SA-1 pack's code in engine/snes_irq.asm.

JSL : NOP, modifies the IRQ routine as implemented by the SA-1 pack to preserve the original Layer 3 main screen/subscreen settings for the status bar region.
$008C81 964 bytes Hex Edit Modified by Remove Status Bar patch by Lui.

Removes status bar functionality, including initialization, drawing, timer, score, coins, lives, stars (partially) and dragon coins, marking it as freespace. This freespace can be used by other patches (including Remove Status Bar itself).
$008C81 126 bytes Table Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

See details, removes the vanilla status bar tilemap and puts the player name and minimum dash meter values for each arrow into the free area.
Hijack
$008C81 46 bytes Code Modified by "Remove Status Bar" patch. Disable IRQ. Written on top of freespace that was freed by another hijack (Non-SA-1, !enable_coins is disabled).
$008C81 68 bytes Code Modified by "Remove Status Bar" patch. Disable IRQ and place coin handling routine. Written on top of freespace that was freed by another hijack (SA-1 ROM, !enable_coins is enabled).
$008C81 43 bytes Code Modified by "Remove Status Bar" patch. Disable IRQ. Written on top of freespace that was freed by another hijack (SA-1 ROM, !enable_coins is disabled).
$008C81 71 bytes Code Modified by "Remove Status Bar" patch. Disable IRQ and place coin handling routine. Written on top of freespace that was freed by another hijack (Non-SA-1, !enable_coins is enabled).
$008C89 12 bytes Table Modified by the Death Counter Version 1.2 patch by Thomas.

Table values for the "DEATHS" text.
$008C89 108 bytes Table Modified by SMB2-Styled Health Bar, by Demonsul and KilloZappit.

Table that rearranges the status bar to show the health bar appropriately.
$008CA9 20 bytes Hex Edit Modified by the SMB3 P-Meter Patch, by Ersanio.

Sets the status bar to draw the P-meter.
$008CAB 6 bytes Table Modified by Play as Yoshi: Replaces TIME with a clock on the status bar
$008CC9 12 bytes Table Modified by Play as Yoshi: Changes the status bar tilemap to make space for the powerup display.
$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.
$008CCD 2 bytes Hex Edit Hijacked by the Yoshi Coin Counter Patch, by Darolac.

Changes the red star icon on the status bar to a yellow coin.
$008CDF 1 byte Hex Edit Hijacked by the SMB3 P-Meter Patch, by Ersanio.

A simple hex edit that places a clock tile before the timer in the status bar.
$008CDF 2 bytes Hex Edit Hijacked by the Bigger Timer Patch, by nnj.

A hex edit responsible for the small clock tile (tile number and yxpccctt properties).
$008CFF 172 bytes Code Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

Replaces the vanilla status bar upload routine with its own upload routine as well as handling the player name, Dragon Coin counter, dash meter and star coins.
$008CFF 4 bytes Jump (JML/JSL) Hijacked by the RAM Toggled Status Bar (& IRQ) Patch, by Kevin.
JML, hijacks the status bar tilemap transfer from ROM.
$008D8A 5 bytes Jump (JML/JSL) Modified by the Super Status Bar patch by GreenHammerBro and Kaijyuu. Jumps to a status bar initialization routine during level load.
$008DAC 5 bytes Jump (JML/JSL) Hijacked by the Timer Sprite Status Bar patch, by CircleFriendo.

JML : RTS, uploads the numbers and the clock symbol to VRAM whenever the clock ticks down.
$008DAC 4 bytes Jump (JML/JSL) Hijacked by the RAM Toggled Status Bar (& IRQ) Patch, by Kevin.
JML, hijacks the status bar tilemap transfer from RAM.
$008DB0 1 byte Hex Edit Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

db $40, sets the VRAM destination of the status bar to $5040 instead of $5042
$008DB1 50 bytes Code Modified by Status Bar NMI Optimizer by Kevin.
Replaces the vanilla status bar NMI routine to use constant values and set to addresses directly instead of a table and loop.
leaves 18 unused bytes at $008DE3.
$008DB6 2 bytes Code Modified by the Super Status Bar patch by GreenHammerBro and Kaijyuu. This is an unconditional branch which skips over DrawStatusBar ($008DAC) and calls the main patch code at $008DE2.
$008DCD 1 byte Hex Edit Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

db $60, sets the VRAM destination of the status bar to $5060 instead of $5063
$008DE2 5 bytes Jump (JML/JSL) Modified by the Super Status Bar patch by GreenHammerBro and Kaijyuu. Calls the main patch code and returns from DrawStatusBar ($008DAC). Branched to from $008DB6.

In the vanilla game, this address is not aligned to an instruction and is instead in the middle of an LDA at $008DE1.
$008DE9 4 bytes Hex Edit Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

db !status_tile,!status_tile>>8,$00,$20, changes the status bar DMA code to upload from !status_tile instead of $0EF9.
$008DF0 4 bytes Hex Edit Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

db !status_tile_bottom,!status_tile_bottom>>8,$00,$20, changes the status bar DMA code to upload from !status_tile instead of $0EF9. Note that !status_tile_bottom is !status_tile+$20.
$008E1A 5 bytes Jump (JML/JSL) Modified by Spin Jump to Super Jump, by HuFlungDu.

JSL : NOP, hijacks a portion of the status bar routine to run spinjump-altering code every frame.
$008E1A 5 bytes Jump (JML/JSL) Modified by the SMB3 P-Meter Patch, by Ersanio.

A JML that jumps to the main routine of creating the P-meter.
$008E1A 5 bytes Jump (JML/JSL) Hijacked by UberASMTool.
JML : NOP, jumps to the code that executes custom status bar code inserted by the tool.
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 23
  • 24