Banner
C3 Voting has ended! Stay tuned for the results (and Mr. Switchy's fate...)
Views: 958,465,354
Time:
21 users online:  1UPdudes, Ahrion,  Anorakun, autisticsceptile1993, Bensalot, brickblock369, Chrisstt123,  Doctor No, Fangamestalgia, Green Jerry, IronFoxGaming, JupiHornet, Knight of Time,  Major Flare,  MarioFanGamer, MarioriaM, ninj, Raychu2021,  Segment1Zone2, tap52384, Torchkas - Guests: 86 - Bots: 75 Users: 53,072 (2,233 active)
Latest: Chrisstt123
Not logged in.
SMW Memory Map - Waiting Addresses
Displaying 50 out of 52 waiting addresses. Show Moderated Addresses
Filter
Link
Address
Hexadecimal number for a partial address. 6-digit number for a full address. Use - to denote a range. Use , to list more than one address.
Length
Type
Enable JavaScript to use multiple regions.
Region
Hold control to select multiple. Check "All" to select all at once.

Type
Description
Separate each individual keyword with spaces. Surround a phrase with quotes to look for the exact phrase, or with / to use a PCRE regular expression. Prepend with - to exclude a keyword or phrase, with + to require a whole word or phrase, or with -+ to exclude a whole word or phrase. ? matches any character, * matches any amount of characters.
 
Pages: « 1 2 » Per Page: 25 50 75 100 150 500 All
RAM Address Length Type Description Details Submitter
$7E0091 1 byte Player Position of the player's head and feet within a block. For the head interaction, this is calculated by taking the player's vertical position, adding it with the interaction point offset of MarioAbove and limit it to the lowest four bits whereas for feet interaction, this is handled by simply storing $7E0090, the player's position within the block, to this address.
This is used to calculate how much the interaction points are inside a block (values of $00 - $07 denotes the top half while $08 - $0F denotes the bottom half) and to determine whether the player should blocked from above, be pushed to the left or stand on a block.
MarioFanGamer
$7E142A 6 bytes Camera “Static camera region”. This RAM address contains the horizontal position, relative to the screen border (left edge is $0000) of the area the screen should not move if the player is in that area.

This is part of how horizontal scrolling works.

The value contains:
  • $142A (2 bytes): The origin position of the region.
  • $142C (2 bytes): The left edge of the static camera region (-#$000C from $142A, written at $00F6E0).
  • $142E (2 bytes): The right edge of the static camera region (+#$000C from $142A (the code does $142C + #$0018), written at $00F6EA)
HammerBrother
$7E146C 4 bytes Empty Empty. Cleared on reset, titlescreen load, overworld load and cutscene load.

$7E146C-$7E146D is used by Lunar Magic (v3.10+): on level load it holds the Layer 3 Y position/offset (as defined in the advanced bypass settings), and it's updated during the level when the layer 3 scrolls vertically to keep track of how much it scrolled. It's used to make layer 3 scroll with the camera in levels that scroll vertically, when the layer 3 vertical scroll is not "None".
Kevin
$7E17BB 1 byte Misc. Contains the low byte of the level number when loading the levels. It's cleared when the loading is done. Can be used as freeram.

Note to moderators, this DOES get read by several codes (see $00FF1A).
HammerBrother
$7E1936 2 bytes Misc. Used by Lunar Magic v3.00+ (hijack at $00F70D) to hold the vertical scrolling range minus one tile (when “Allow viewing full bottom row of tiles” is unchecked). Effectively equivalent to $13D7 - #$10. HammerBrother
$7F0000 16384 bytes Overworld Layer 2 event tilemap of the overworld. $7F:0D00-$7F:3FFF is empty (untouched) RAM on a vanilla ROM, but LM uses it to hold the expanded layer 2 event tilemap on a hacked ROM. Note that this only holds the YXPCCCTT properties whereas the tile numbers are stored in ROM at $0C8000 on an untouched ROM.

LM also uses $7F:0000 and upwards to store title screen movement (three bytes every time a key is pressed or released, or if the same keys are held for #$FF frames), and $7F:0B44-$7F:1343 are also used as buffer for dynamic sprite graphics because of them being uploaded during V-Blank.
MarioFanGamer
$7F0B44 2048 bytes Misc. It is used for Dynamic Z V3.75 or more, for severals differents variables.

More Documentation here:

https://sneslab.net/wiki/Dynamic_Z

Start at $418000 in SA-1 rom.
anonimzwx
$7FB408 3396 bytes Misc. Potentially used by Dynamic Z V3.75, lot of them usually are untouched but depends on the features that you use, they can be used by Dynamic Z V3.75 or later

Documentation Here:

https://sneslab.net/wiki/Dynamic_Z

Start at $418B80 on SA-1 rom.
anonimzwx
$7FC0C0 56 bytes Graphics Lunar Magic's ExAnimation output table.

The data is stored by the routine at read3($00A2A5+1). The format is follows:

$7FC0C0: output table 1
$7FC0C7: output table 2
$7FC0CE: output table 3
$7FC0D5: output table 4
$7FC0DC: output table 5
$7FC0E3: output table 6
$7FC0EA: output table 7
$7FC0F1: output table 8

Each table is formatted like this:

Bytes 00-01: Header. If the highest bit is 0, this is a GFX package and the remaining 15 bits are used as transfer size. If the highest bit is 1, this is a color package. The lo byte is then doubled and used as transfer size (meaning that lo byte = number of colors).

Bytes 02-03: Destination. For GFX packages, this is a VRAM address. If the highest bit is set on a GFX package, this is a square-type upload. In that case, the upload is repeated without updating the source address (meaning the next 2 tiles will be read), with VRAM address incremented to the next row. For color packages, the lo byte holds the CGRAM address and the hi byte is unused.

Bytes 04-06: Source address (lo, hi, bank). For GFX packages, this points to RAM for most ExAnimations, but can point to ROM if ExGFX60-63 are used (these files are uncompressed and can be read directly). More complicated for color packages. For type "Palette + Working", this points to the corresponding color in the table at $0903, which is written at the time that the ExAnimation is output. For type "Palette" with only 1 color (header = 0x8001), bytes 04 and 05 hold the raw SNES RGB color and byte 06 is unused. For any other case, bytes 04-06 hold the 24-bit address to the color data.

These addresses can be written to to upload GFX/colors during gameplay, but only if ExAnimation is enabled. Note, however, that ExAnimation might overwrite these if they are written from level ASM. There are only 8 entries, so only 8 uploads can be performed on any given frame.
Von Fahrenheit
ROM Address Length Type Description Details Submitter
$008E1A 480 bytes Layer 3 The routine that updates the values of all the addresses used for the status bar ($0EF9-$0F2F).
$008E28 - Change this address to AD to disable the timer.
$008E2E - Timer speed (USE WITH $008D8B)
$008E45 - Tile that each timer digit resets to after reaching 0. Can be any value from $00-$80. (e.g. Change to $0F: 100 -> 0FF -> 0FE ... 0F0 -> 0EF ... etc.)
$008E5C - Time is Running Out SFX. Change from FF to 00 to stop the music from speeding up when time reaches 99.
$008E6B - [22 06 F6 00] Change to [EA EA EA EA] to not kill Mario when the timer reaches zero. The timer will count down normally and stop at zero, but Mario will not die
$008EDB - Change this and/or $008F09 from 20 12 90 to EA EA EA to disable writing the score to the status bar when playing as Mario and/or Luigi, respectively. Useful if you want to place another counter in place of the score using Smallhacker's Status Bar Editor. Note: This alone will NOT stop writing blank tiles if the first N tiles/bytes at $0F29-$0F2E contains the value #$00 (the "0" graphic). To prevent that, consider using this patch.
$008EE3 - Change to BRA [80] to write zeroes instead of blank tiles to Mario's score counter. Use with $008F11.
$008F11 - Change to BRA [80] to write zeroes instead of blank tiles to Luigi's score counter. Use with $008EE3.
$008F2C - How many coins you need to get an 1up (USE WITH $008F37)
$008F2F - [EE E4 18] Change to [EA EA EA] to not gain a life after collecting enough for one.
$008F37 - Number of coins to subtract from the counter when you gain enough for a 1up (Default: $64 (100). Change to [01] to create a coin wallet effect - use with $008F2F.
$008F41 - (Use with $008F45) Maximum life limit, minus one. Warning: Changing this to anything higher than 0x7E (127 lives) will remove the life limit entirely! Also, if you have more than
99 lives, the life counter will appear slightly glitched.
$008F45 - (Use with $008F41) Maximum life limit, minus one. Note that if you have more than 99 lives, the life counter will appear slightly glitched.
$008F62 - Number of bonus stars required to enter bonus game
$008F67 - [8D 25 14] Change to EA EA EA to disable entering bonus game when player has 100 bonus stars.
$008F6F - Amount of bonus stars that will be subtracted when 100 bonus stars are collected. Change to [01] to make 99 the maximum amount of bonus stars you can get - to create a bonus star wallet effect, use with $008F67.
$008F7E - Writes coins to status bar. Changing to [EA EA EA EA EA EA] will disable the coins from being written to the status bar.
$008F95 - [09] The X position of the small bonus star counter in the status bar.
$008FC5 - [20 79 90] Change to EA EA EA to disable the item GFX in the status bar
$008FCE - Length of "LUIGI" text (Status bar)
$008FE7 - [FC](blank tile) Tile used on the status bar when there's no Yoshi coin in that spot.
$008FED - [2E](coin tile) Tile used on the status bar when there is a Yoshi coin in that spot. Change to [FC](blank tile) to visually disable collected Yoshi Coins.
Aerithos
$00F120 217 bytes Mario physics Shared Map16 page 1 interaction routine. This handles Munchers, spikes and bounce blocks (including but not limited to Note Blocks and ?-blocks). This routine is called for most of Mario's interaction points as well as carryable sprites and the cape.

The order in which the routine goes as follows:
  • Check for Yoshi
  • Handle hurt blocks
  • Hande bounce blocks

The routine can be jumped at various points:
  • $00F120 includes the Yoshi check and is used if the player is above a block.
  • $00F127 handles hurt blocks regardless whether the player rides Yoshi or not and is used for the other sides of a block.
  • $00F160 handles only bounce sprites and is used for the invisible blocks and sprite interaction.

All these routines take the following inputs:
  • A: Map16 tile which is interacted
  • Y: Block direction (follows a similar fomat as $7E0077).
MarioFanGamer
$00F2C0 183 bytes Mario physics Shared Map16 page 0 interaction routine. These handle liquids, climbable blocks i.e. vine and net and collectibles blocks i.e. coins, Dragon Coins, 3-Up moon and midway point. This routine is called by all of Mario's interaction points aside from WallFeet.
It takes the type of interaction point as an input with a similar format as $7E0074.

The order in which the routine goes as follows:
  • Mark interaction point as MarioBody
  • Handle liquids
  • Handle Midway Point
  • Handle climbable blocks
  • Handle the remaining collectibles

The routine can be jumped at various points:
  • $00F2C0 marks the interaction as MarioBody as is therefore only called from that interaction point.
  • $00F2C2 checks whether the interaction point is in water or not and is called by MarioBelow and MarioAbove.
  • $00F2C9 handles the midway point.
  • $00F2E2 handles the climbable blocks and is called by most of the interaction points.
  • $00F309 handles the collectable blocks and is called by MarioTopCorner and MarioWallRun.

All these routines take the following inputs:
  • Y: Map16 tile which is interacted
  • A: Interaction direction (follows a similar fomat as $7E0074, not used for collectibles).
Additional Data MarioFanGamer
$00FA19 44 bytes Sprite subroutine (JSL) Load slope information. This is a subroutine which gets the slope information for the current tile which means slope type and height of the ground for the current X position. It's used to load the slope info for sprites.

Input:
Map16 tile ID low byte
$0A: X position of the interaction point
$0C: Y position of the interaction point

Output:
Y: Index to the ground height table, calculated with from $08 * 4 + $0A & #$0F.
$00: Y position of the current interaction within the block, calculated from $0C & #$0F.
$05-$07: 24-bit pointer to the ground height table $00E632.
$08: Slope type.
MarioFanGamer
$01C538 28 bytes Sprite Misc. Handles what happens when the player touches a powerup. This routine will manage the item box as well. $01C549 [0B] is the sound effect to play when touching a powerup.

Set $01C543 to $80 to prevent the items from being put in the item box (though it still can be filled by other means).
MarioFanGamer
$038282 1 byte Sprite tilemap related X position of big boo's front arm in normal frame WhiteYoshiEgg
$038283 16 bytes Sprite tilemap related X Position of the 16 tiles of big boo's body in the normal frame WhiteYoshiEgg
$038293 1 byte Sprite tilemap related X position of big boo's back arm in normal frame WhiteYoshiEgg
$038296 1 byte Sprite tilemap related X position of big boo's front arm in turning frame 1 WhiteYoshiEgg
$038297 16 bytes Sprite tilemap related X Position of the 16 tiles of big boo's body in turning frame 1 WhiteYoshiEgg
$0382A7 1 byte Sprite tilemap related X position of big boo's back arm in turning frame 1 WhiteYoshiEgg
$0382AA 1 byte Sprite tilemap related X position of big boo's front arm in turning frame 2 WhiteYoshiEgg
$0382AB 16 bytes Sprite tilemap related X Position of the 16 tiles of big boo's body in turning frame 2 WhiteYoshiEgg
$0382BB 1 byte Sprite tilemap related X position of big boo's back arm in turning frame 2 WhiteYoshiEgg
$0382D2 1 byte Sprite tilemap related Y position of Big boo's front arm in normal, turning 1 and turning 2 frames WhiteYoshiEgg
$0382D3 16 bytes Sprite tilemap related Y position of the 16 tiles of Big boo's body in normal, turning 1 and turning 2 frames WhiteYoshiEgg
$0382E3 1 byte Sprite tilemap related Y position of Big boo's back arm in normal, turning 1 and turning 2 frames WhiteYoshiEgg
$03BA02 1534 bytes Empty Filled with $FF.

Modified by Lunar Magic:
- $03BB90: Start of Lunar Magic's modified Message Box routine.
- $03BC0B: Pointer to message locations. Note that this changes every time you use LM to edit the messages.
- $03BC7F: Table of the first 2 bytes of the stripe header for message boxes.
- $03BE80: Table of offsets to find the correct message. Indexed by ($13BF * 2 + ($1426 - 1)) * 2
- $03BCDC: (LM 3.00+) Routine (ends in RTL) that computes the current screen exit number Mario is in and puts it in X (required to use for the new horizontal level modes). Note: if the level uses one of the new horizontal modes, the routine will overwrite Y.
FuSoYa
$0DAA08 5 bytes Objects A short routine which stores 01 to the high byte of the current index in the map16 table. Used liberally throughout SMW's object generation code. meatloaf
$0DAA0D 5 bytes Objects A short routine which stores 00 to the high byte of the current index in the map16 table. Used liberally throughout SMW's object generation code. meatloaf
$0DE12C 9 bytes Objects The low bytes of the map16 tiles that make up tileset-specific object 36 (four-sided ground square). The creation routine for this object at $0DE135 puts them on page 01. Tiles meatloaf
$0DF02B 59 bytes Objects Object generation routine for tileset specific object 30 (The ground/ledge object used in Yoshi's House) in tileset 04 (Switch Palace 1)
$0DF044, 1 byte: The ledge tile (on page 1)
$0DF054, 1 byte: The dirt tile (on page 0)
meatloaf
Hijack Address Length Type Description Details Submitter
$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 MarioFanGamer
$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.
MarioFanGamer
$008E6F 38 bytes Code Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

Replaces the vanilla time display with its own time display.
MarioFanGamer
$008ED7 2 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

LDX #$00, handles the index for the score tiles.
MarioFanGamer
$008EDE 2 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

BRA $0F or LDX #$00, either handles the index for the score tiles or skip the code to remove leading zeroes in the score.
MarioFanGamer
$008EE0 3 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

LDA !score,x, loads the score from the given tile instead of $0F29.
MarioFanGamer
$008EE5 2 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

LDA #!NULL, loads the empty tile for the status bar.
MarioFanGamer
$008EE7 3 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

STA !score,x or NOP #3, either stores the score to the given tile instead of $0F29 or disables the score.
MarioFanGamer
$008F05 2 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

LDX #$00, handles the index for the score tiles.
MarioFanGamer
$008F0C 2 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

BRA $0F or LDX #$00, either handles the index for the score tiles or skip the code to remove leading zeroes in the score.
MarioFanGamer
$008F0E 3 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

LDA !score,x, loads the score from the given tile instead of $0F29.
MarioFanGamer
$008F13 2 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

LDA #!NULL, loads the empty tile for the status bar.
MarioFanGamer
$008F15 3 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

STA !score,x or NOP #3, either stores the score to the given tile instead of $0F29 or disables the score.
MarioFanGamer
$008F51 10 bytes Code Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

Replaces the vanilla lives display with its own lives display.
MarioFanGamer
$008F7A 10 bytes Code Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

Replaces the vanilla coin display with its own coin display.
MarioFanGamer
$008F86 111 bytes Code Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

Replaces the end of the status bar routine with its own to handle the item box, dashmeter and bonus stars.
MarioFanGamer
$009014 3 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

STA !score,x or NOP #3, either stores the score to the given tile instead of $0F29 or disables the score.
MarioFanGamer
$009034 3 bytes Opcode Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

STA !score,x or NOP #3, either stores the score to the given tile instead of $0F29 or disables the score.
MarioFanGamer
$028052 1 byte Data Hijacked by the MessageBox in Minimalist Status Bar + Goal Customizer patch, by Isikoro and Ladida.

db $78, sets the horizontal item box drop position.
MarioFanGamer
Pages: « 1 2 » Per Page: 25 50 75 100 150 500 All

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

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


Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

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