Language…
8 users online: DPBOX, Gonzales555, Green, Isikoro, l44l, pakkie, RollingRigatonis, spr0ches - Guests: 171 - Bots: 200
Users: 64,667 (2,404 active)
Latest user: DarthHylian

SMW Memory Map - Waiting Addresses

Displaying 35 out of 35 waiting addresses.

View: moderated | waiting (35)

Filter

Link
  • Pages:
  • 1
ROM Address Length Type Description Details Submitter
$00D2CD 60 bytes Mario physics Deceleration table. Each value here are 16-bit values to modify $7A-$7B so that the player slows down to either #$00 or some value based on slopes (autoslide).

Note: Due to a bug, if Mario is traveling faster than his maximum speed and hold down the D-pad in the same direction (for example, going rightwards faster than his maximum rightwards speed and the player holds right), would slow him down.

The index on this table is by taking $13E1: Y_index = (Value_In_RAM_13E1 / 2) + SlopeThreshold. Where SlopeThreshold is 0 if the player speed is equal or faster than the minimum speed, otherwise it is 2.
Calculation of index Values in table HammerBrother
$00DC4F 75 bytes Mario physics Routine that updates the player's X and Y position ($94 and $13DA, $96 and $13DC) by X and Y speed ($7B and $7D).

The rate of movement is in “subpixels” per frame-- 1/16th of a pixel for more precise movement, using fixed point arithmetic. Note that stuff using position besides speed related data, such as hitboxes will only take the pixel position and not the subpixel position.

Normally this routine is called after JSR to $00DC2D. It then JSRs into $00DC4F with:
  • X = $00: Update X position
  • X = $02: Update Y position
How it works Math Example HammerBrother
$00E938 84 bytes Mario physics Code that handles player interacting with layer 1 and 2.

At $00E953-$00E975, handles layer 2 interaction. Before and after JSR CODE_00EADB, it first (temporally) offsets the player's XY position ($94 and $96 add by $26 and $28) so that interaction with layer 2 moves with layer 2, then after the layer 2 prcoessing is done, offsets the player's position back (subtract by $26 and $28 not using pull instructions so that blocks that sets the player's XY position wouldn't be canceled).
HammerBrother
$01851C 3 bytes ASM [20 7C 85] Change to [BC 7C 15] to make the Diggin' Chuck's starting direction depend on its X position instead of it always starting out facing the player. imamelia
$02881E 5 bytes Sound effect Sound effect the on/off switch makes when spawning the bounce sprite. Note that the sound effect is actually played twice, with the other being at $02918C.

Set to EA EA EA EA EA (or org $02881E : nop #5) to fix it from being played twice.
HammerBrother
$02918C 5 bytes Sound effect Sound effect the on/off bounce block sprite makes when triggered, overrides the "hit head" sound. NOTE: the sound effect is actually played twice, with the other being at $02881E (code that spawns the bounce block).

Set to EA EA EA EA EA (or org $02918C : NOP #5) to prevent the SFX from being played twice.
HammerBrother
$02919F 77 bytes Subroutine (JSR) Subroutine which changes a tile at the current bounce sprite's position.

It can be jumped to the following addresses:
  • $02919F: The code which loads the currently assigned block the bounce sprite should turn into ($9C format) but also handles on whether a multiple coins block should turn into a used block. This is called when a bounce sprite terminates and becomes a solid block again.
  • $0291B8: Spawns an invisible solid block. This is called when a bounce sprite has just spawned but also when the bounce sprite collects a coin, leading to the solid air tile glitch.
  • $0291BA: Spawns a tile in the $9C format with A as the parameter at the bounce sprite's position. This is called from spinning turn blocks when they become solid.
Additional Data MarioFanGamer
$029265 241 bytes Subroutine (JSR) Subroutine for most bounce sprites' init code. It makes bounce blocks (e.g. a ?-block) be able to collect a coin right above them.

$029330: The block on page 0 which can be collected. Keep in mind that this is independent of the acts like setting and support thereof has to be implemented manually.
MarioFanGamer
$029356 60 bytes Subroutine (JSR) Code that generates a spinning coin at the position of a bounce sprite. This is used to be able to collect a coin with a bounce block. However, this routine doesn't handle the removal of the coin which is instead handled by $0291B8. MarioFanGamer
$0CA204 1 byte Coordinate The X position where Mario stops in the Yoshi's House at Ending.
If you change this value, Peach and Green Yoshi's stopping positions will also change to match Mario's. (The spacing will remain the same, but the positions will shift.)
Francium
$0CF7DF 2048 bytes Overworld Layer 1 map16 data of the overworld, uncompressed. The data is directly copied from there to $7EC800. MarioFanGamer
Hijack Address Length Type Description Details Submitter
$008CF5 1 byte Hex Edit Modified by GHB Disable Score by HammerBrother and wye.

Removes score's first zero from status bar display.
RussianMan
$008E95 3 bytes Jump (JMP/JSR) Modified by GHB Disable Score by HammerBrother and wye.

Disables score display on the status bar.
RussianMan
$009C9F 4 bytes Jump (JML/JSL) Optionally hijacked by the patch Level Death Flag by MarioFanGamer.
JSL to code that clears the death flag for all levels when a save file is loaded.
Fernap
$01C1A3 4 bytes Jump (JML/JSL) Modified by Item from Layer 2 block Fix by Isikoro.

Move growing vine with layer 2 when it has been spawned from a layer 2 block.
RussianMan
$01C1E9 4 bytes Jump (JML/JSL) Modified by Item from Layer 2 block Fix by Isikoro.

Make growing vine spawn vine tiles on a correct layer, depending on spawn block's layer of origin.
RussianMan
$01C4A8 4 bytes Jump (JML/JSL) Modified by Item from Layer 2 block Fix by Isikoro.

Move power-ups with layer 2 when they're spawned from a layer 2 block.
RussianMan
$01C4B0 1 byte Hex Edit Modified by Item from Layer 2 block Fix by Isikoro.

Changes the branch's destination for power-up interaction routine to a different RTS, since the original one gets overwritten by a different hijack.
RussianMan
$01EB33 4 bytes Jump (JML/JSL) Modified by Ultimate Screen Teleporter by mario90.

JML, modifies Yoshi's graphics routine to allow for a walking animation when entering a side teleport.
Maarfy
$028A11 5 bytes Jump (JML/JSL) Modified by Item from Layer 2 block Fix by Isikoro.

Places Power-ups/Vine on a correct layer, depending on the wether the block it spawned from was on layer 1 or 2.
RussianMan
$02ADC9 4 bytes Jump (JML/JSL) Modified by GHB Disable Score by HammerBrother and wye.

Disables score sprite functionality with exception of lives, coins and custom score sprites.
RussianMan
$05CC42 31 bytes Table Modified by GHB Disable Score by HammerBrother and wye.

Removes level end score tally display.
RussianMan
$05CC77 13 bytes Code Modified by GHB Disable Score by HammerBrother and wye.

Disables the hidden mechanic where an extra life is given if tens digit of bonus star counter matches the ones and tens of the timer.
RussianMan
$05CCAA 78 bytes Code Modified by GHB Disable Score by HammerBrother and wye.

Disables timer display on end level score tally.
RussianMan
$05CCFB 43 bytes Code Modified by GHB Disable Score by HammerBrother and wye.

Disables score calculation based on timer during level end.
RussianMan
$05CDE4 1 byte Hex Edit Modified by GHB Disable Score by HammerBrother and wye.

If !drumroll = 0, disables drum roll SFX during score/bonus star tally for level end.
RussianMan
$05CDFD 60 bytes Jump (JMP/JSR) Modified by GHB Disable Score by HammerBrother and wye.

Dummies out the hex to dec routine used to write time bonus to the score card.
RussianMan
$05CE4C 86 bytes Jump (JMP/JSR) Modified by GHB Disable Score by HammerBrother and wye.

Dummies out the routine responsible for the Timer * 50 bonus score calculation.
RussianMan
$05CEAF 1 byte Hex Edit Modified by GHB Disable Score by HammerBrother and wye.

Removes score's first zero from the display during level end.
RussianMan
$05CECF 54 bytes Code Modified by GHB Disable Score by HammerBrother and wye.

Disables bonus score addition during level end.
RussianMan
$05CF36 3 bytes Hex Edit Modified by GHB Disable Score by HammerBrother and wye.

Disables amount of score to add up to the score total count at level end check for drumroll end SFX.
RussianMan
$05CF49 1 byte Hex Edit Modified by GHB Disable Score by HammerBrother and wye.

If !drumroll = 0, disables drum roll end SFX during score/bonus star tally for level end.
RussianMan
$05CF78 40 bytes Code Modified by GHB Disable Score by HammerBrother and wye.

Disables bonus score during level end display.
RussianMan
$05D8B7 39 bytes Code Modified by Ultimate Screen Teleporter by mario90.

The LevelNum patch, which sets the current sublevel number in $010B.
Maarfy
$0FF200 1024 bytes Table Used by Lunar Magic for the "old" graphics bypass using lists. In that system, an index of $00 is used to mark that no list bypass is used, and indices $01-$FF will point into this table (However, Lunar Magic's UI will instead display $00 as the first list and $FE as the last list). To calculate the direct offset, take ((index-1)*4). Note that both FG/BG list bypass and sprite list bypass share the same range of indices.

For each offset, contains four bytes for the four (Ex)GFX files that are used for this index. This system is only capable of addressing Graphics files numbered $00 through $FF.
Ragey
  • Pages:
  • 1