Language…
6 users online: 3lectro, BanzaiChuck, Hayashi Neru, schema_tuna, TheMURAmatsu, Wowsie - Guests: 165 - Bots: 220
Users: 65,483 (2,182 active)
Latest user: pyredrid

SMW Memory Map - Waiting Addresses

Displaying 68 out of 68 waiting addresses.

View: moderated | waiting (68)

Filter

Link
  • Pages:
  • 1
RAM Address Length Type Description Details Submitter
$7E1FEE 12 bytes Flag "Collected 3-Up moon" flags, for each level.
Each separate byte represents the values for 8 levels, with each bit acting as a flag for a given level.
If a bit is set, no 3-Up will reappear in that level.

Each bit in the table represents the moon-collected flag for each translevel (from $7E:13BF), in order. Be careful that each byte is ordered from most significant bit to least significant bit. So translevel 0 corresponds to bit 7 (most significant) of $1FEE, translevel 1 to bit 6, ..., translevel 8 to bit 7 of $1FEF, and so on.
Fernap
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
$028663 92 bytes Subroutine (JSL) Block shatter subroutine. This creates 4 block pieces and plays the shatter sound effect, but it does not actually destroy the block (use $00BEB0 for that). If A is 00 when calling this, the block pieces will be brown, while if A is a nonzero number, they will flash palettes. It uses $98-$9B to set the XY position. Note that this should be called with the data bank set to 02.

Note that initially, $98-$9B are not block-centered, to fix that, clear out the low nybble of the XY position:
Code
	LDA #$0F
	TRB $98
	TRB $9A
HammerBrother
$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
$00907A 1 byte Data Modified by More Extended Sprites, by Isikoro.

$CC, changes the reserve item OAM index.
MarioFanGamer
$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
$00C4AE 4 bytes Jump (JML/JSL) Hijacked by the Keyhole Exit Chooser patch by simon.caio.

Sets the exit to use based on a free ram address when the keyhole is triggered.
Fernap
$00DB17 4 bytes Jump (JML/JSL) Hijacked by the Layer 2 Climb Fix patch by Isikoro.
Moves Mario along with layer 2 when climbing on a layer 2 net/vine.
Fernap
$00E942 4 bytes Jump (JML/JSL) Hijacked by the Layer 2 Climb Fix patch by Isikoro.
Resets a layer 2 climbing flag at the start of object interaction.
Fernap
$00F304 4 bytes Jump (JML/JSL) Hijacked by the Layer 2 Climb Fix patch by Isikoro.
Sets a climbing layer 2 flag when interacting with net/vine tiles on layer 2.
Fernap
$018057 4 bytes Jump (JML/JSL) Modified by Perfect Slippery Blocks, by HammerBrother.

JML, modifies the "spawn dust from sprites" routine to use a per-sprite slippery flag.
MarioFanGamer
$0189C5 4 bytes Jump (JML/JSL) Modified by Perfect Slippery Blocks, by HammerBrother.

JSL, modifies the sliding Koopa (when kicked out of a shell) to use a per-sprite slippery flag.
MarioFanGamer
$018A3D 4 bytes Jump (JML/JSL) Modified by Perfect Slippery Blocks, by HammerBrother.

JSL, modifies blue shelless Koopa who catch a shell to use a per-sprite slippery flag.
MarioFanGamer
$01EE73 4 bytes Jump (JML/JSL) Hijacked by the Player Direction Fix After Losing Yoshi patch by Ice Man.

Adds a check to make sure Yoshi is being ridden before flipping Mario's direction along with Yoshi's.
Fernap
$028528 103 bytes Code Modified by More Extended Sprites, by Isikoro.

Modifies the spawn lava splash routine to spawn Podobo flames instead.
MarioFanGamer
$0285EF 64 bytes Code Modified by More Extended Sprites, by Isikoro.

Rewrites the spawn Podoboo flames routine.
MarioFanGamer
$028BAA 2 bytes 16-bit Pointer Modified by More Extended Sprites, by Isikoro.

$9E86, replaces the pointer of the unused note sprite to the spin jump star.
MarioFanGamer
$028DDD 153 bytes Code Modified by More Extended Sprites, by Isikoro.

Rewrites the Rip Van Fish Z particles routine to make space for the particle's spawn code ($028E71 for the direction and ID, $028E69 for the finish code).
MarioFanGamer
$028F47 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, jumps to the custom apply minor extended sprite speed routine for the Podoboo flames.
MarioFanGamer
$0291ED 4 bytes Table Modified by More Extended Sprites, by Isikoro.

$D0,$D8,$E0,$E8,$F0,$F8, changes the bounce sprite OAM indices.
MarioFanGamer
$029B2D 2 bytes 16-bit Pointer Modified by More Extended Sprites, by Isikoro.

$A356, repoints the code of the smoke puff.
MarioFanGamer
$029B39 2 bytes 16-bit Pointer Modified by More Extended Sprites, by Isikoro.

$0000, removes the lava splash as an extended sprite.
MarioFanGamer
$029B4B 2 bytes 16-bit Pointer Modified by More Extended Sprites, by Isikoro.

$0000, removes the spin jump star as an extended sprite.
MarioFanGamer
$029B4F 2 bytes 16-bit Pointer Modified by More Extended Sprites, by Isikoro.

$9EF3, repoints the code of water bubbles.
MarioFanGamer
$029B51 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for the Volcano Lotus pollen.
MarioFanGamer
$029C3E 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, calls the GFX routine of the fireballs for Yellow Yoshi's trail of smoke.
MarioFanGamer
$029C41 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for Yellow Yoshi's trail of smoke.
MarioFanGamer
$029C83 45 bytes Code Modified by More Extended Sprites, by Isikoro.

Replaces the spin jump star code into an apply minor extended sprite speed routine.
MarioFanGamer
$029D10 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for Cloud Game coin and Wiggler's flower.
MarioFanGamer
$029D10 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for an unused extended sprite.
MarioFanGamer
$029E5C 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, calls the GFX routine of the fireballs for the Torpedo Ted launcher's arm.
MarioFanGamer
$029E5F 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for the Torpedo Ted launcher's arm.
MarioFanGamer
$029E5F 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for water bubbles.
MarioFanGamer
$029E86 96 bytes Code Modified by More Extended Sprites, by Isikoro.

Replaces the lava splash code for the spin jump star code.
MarioFanGamer
$029EEE 14 bytes Code Modified by More Extended Sprites, by Isikoro.

Rewrites the water bubble code to make space for the code to delete spin jump stars.
MarioFanGamer
$029F36 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, calls the GFX routine of the fireballs for Red Yoshi's fireballs.
MarioFanGamer
$029F36 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, calls the GFX routine of the fireballs for water bubbles.
MarioFanGamer
$029F71 8 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for Red Yoshi's fireballs.
MarioFanGamer
$02A03B 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for Mario's fireball.
MarioFanGamer
$02A153 8 bytes Code Modified by More Extended Sprites, by Isikoro.

Writes to the OAM X position for the spin jump stars and draws the sprite.
MarioFanGamer
$02A17D 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, calls the GFX routine of the fireballs for thrown bones.
MarioFanGamer
$02A17D 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, calls the GFX routine of the fireballs for the Hopping Flame trail.
MarioFanGamer
$02A17D 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, calls the GFX routine of the fireballs for Reznor and Piranha Plant fireballs in Reznor battles.
MarioFanGamer
$02A180 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for the Hopping Flame trail.
MarioFanGamer
$02A180 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for aimed fireballs in Reznor battles.
MarioFanGamer
$02A1A4 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for aimed fireballs in regular levels.
MarioFanGamer
$02A287 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for Pitchin' Chuck's baseballs.
MarioFanGamer
$02A31A 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, gets the OAM index for hammers.
MarioFanGamer
$02A34F 29 bytes Code Modified by More Extended Sprites, by Isikoro.

Rewrites part of the puff of smoke code to make space for the get minor sprite OAM index ($02A34F) routine.
MarioFanGamer
$02AD9E 6 bytes Table Modified by More Extended Sprites, by Isikoro.

$D0,$D8,$E0,$E8,$F0,$F8, changes the score sprite OAM indices.
MarioFanGamer
$02C0CF 10 bytes Code Modified by More Extended Sprites, by Isikoro.

Rewrites the unusued spawn note particle routine to always spawn the same particle but keep the spawner's facing direction in A.
MarioFanGamer
$02C0D9 12 bytes Code Modified by More Extended Sprites, by Isikoro.

Rewrites the spawn Rip Van Fish Z particle routine.
MarioFanGamer
$02C0EA 1 byte Opcode Modified by More Extended Sprites, by Isikoro.

PHY, preserves the minor extended sprite ID to spawn (which originally was in A).
MarioFanGamer
$02C122 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JMP, jumps to the remaining portion of the note / Z particle spawn code.
MarioFanGamer
$02DF6E 1 byte Opcode Modified by More Extended Sprites, by Isikoro.

NOP, fixes the Sumo Lightning flames on subscreen boundaries.
MarioFanGamer
$02F933 3 bytes Jump (JMP/JSR) Modified by More Extended Sprites, by Isikoro.

JSR, jumps to a modified interaction code of the Sumo Lightning fires.
MarioFanGamer
$02F9AC 45 bytes Code Modified by More Extended Sprites, by Isikoro.

Modifies the interaction code of Sumo Lightning fire to be slightly more efficient in space.
MarioFanGamer
$039038 1 byte Hex Edit Optionally modified by the Boo Stream Tail disassembly by spooonsss.

Changes the minor extended sprite spawned by the boo stream sprite to use a user-supplied value instead.
Fernap
$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