Banner
Views: 814,477,306
Time:
20 users online: Anorakun, Brolencho, containercore, Correa, DIO DEL METAL, GaGamer, Green Jerry, iIIustrious, JamesD28, JLippe, Lui, Milon Luxy, MrBread,  NeXuS15, OhMuramatsu, Scrambles_, smw_andz, SquidMan_Raps,  Tahixham, UltiMario - Guests: 66 - Bots: 212 Users: 43,024 (2,139 active)
Latest: Enj0ym3nt
Tip: The music in SMW's default castle/ghost house intros and boss battles can be changed by hex-editing. See $0584DB-$0584E2 in the ROM map.Not logged in.
SMW Memory Map - Waiting Addresses
Displaying 12 out of 12 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.
 
Per Page: 25 50 75 100 150 500 All
RAM Address Length Type Description Details Submitter
$7E0DAA 1 byte I/O Player 1 controller disable flags ($4219), one frame. If a bit is set here, that bit will be disabled in $7E:0016.
Format: byetUDLR.
b = B, y = Y, e = Select, t = Start, UDLR = Up/Down/Left/Right.

This is used so that $16/$0DA6 will only have bits be set for 1 frame.
HammerBrother
$7FC00A 1 byte Flag Lunar Magic's animation settings for the current level. Format: tpgl----
0=Enable, 1=Disable
t = SMW's default Tile Animations Flag
p = SMW's default Palette Animations Flag
g = Lunar Magic Global Tile Animations Flag
l = Lunar Magic Level Animations Flag
- = Unused
mario90
ROM Address Length Type Description Details Submitter
$008000 100 bytes Overworld ughh will it work??? Yosh boi
$008C81 126 bytes Layer 3 Default status bar tiles info table. Format for each 8x8 tile:
%TTTTTTTT %YXPCCCTT

*$008C81-$008C88: top line of status bar (4 top tiles of the item box)
*$008C89-$008CC0: Second line of status bar
*$008CC1-$008CF6: Third line of status bar
*$008CF7-$008CFE: bottom line of status bar (4 bottom tiles of item box)
Table of addresses HammerBrother
$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)
$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.
$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.
HammerBrother
$008FFA 24 bytes Misc. Powers of 10 table for 6-digit* HexDec routine at $009012 used to display the player's score. Note: These are 16-bit words, but are handled as 32-bit subtraction for the low and high words individually.

*SMW displays the score as 7 digits, but the score is actually a 6-digit (decimal) number stored internally, the 7th digit "0" is a static tile not part of this number.
16-bit values HammerBrother
$009012 51 bytes Sprite subroutine (JSR) 6-digit* HexDec subroutine to write a player's score into status bar.

Call with Y = #$00, X as the position to write to on the status bar (standard is #$14), and $00-$03 as the score to write (in hexadecimal). Note that this routine does not remove leading 0s; that is handled at $008EDE and $008F0C.

Works like this: count how many subtractions by 10n (with n=5) without the difference going into the negatives, that number of subtractions is the digit for the 10ns place, then repeat but with 10n-1. This is the "left-to-right" version of base conversion using repeated subtraction to emulate the 32-bit division by 10n.

*SMW displays the score as 7 digits, but the score is actually a 6-digit (decimal) number stored internally, the 7th digit "0" is a static tile not part of this number.
HammerBrother
$009051 40 bytes Subroutine (JSR) Bonus stars (small 8x8 digits) HexDec routine. Unknown why Nintendo didn't decide to use $009045 instead, since the bonus stars are 8-bit while other digits are also 8-bit and uses $009045.

Note: this routine alone produces mere 1s and 10s place, so the numbers will be 8x8 instead of 8x16. The code at $008FAF will convert the digits to tile numbers of 8x16 digit graphics.
HammerBrother
$0190BA 122 bytes Sprite physics Positions of the sprite's collision point (relative to the sprite's XY position; $E4/$14E0 and $D8/$14D4) to interact with objects. 2 Tables for X and Y, each 61 bytes:
  • $0190BA-$0190F6: X positions table
  • $0190F7-$019133: Y positions table

Each byte indexed by: %00ccccpp:
  • pp: Which of the 4 collision points to use:
    • %00 = Right (interacts with left side of block, SpriteH for custom blocks.)
    • %01 = Left (interact with right side of block, SpriteH for custom blocks)
    • %10 = Down (interact with top of block, SpriteV for custom blocks)
    • %11 = Up (interact with bottom of block, SpriteV for custom blocks)
  • cccc: Sprite's clipping number, the low nybble from $1656,x.
HammerBrother
$019138 8 bytes Sprite subroutine (JSL) JSL for sprites interacting with objects. Actually calls routine at $019140.

During processing GPS blocks:
  • $0A-$0D: Position (in pixels) of the collision point currently being processed for sprite interaction with blocks in the level:
    • $0A-$0B (2 bytes): X position
    • $0C-$0D (2 bytes): Y position

    Note, just like $98-9B, coordinates are respective to the top-left of the layer currently being processed. Hence, if Layer 1 and Layer 2 are offset from each other, this value will differ between the two, even when the sprite is at the same position with respect to the level.
  • $0F (1 byte): Index of one of the 4 collision points currently in use. Also used to eject sprite out of block horizontally:
    • #$00 = SpriteV: Right (touches blocks from left)
    • #$01 = SpriteV: Left (touches blocks from right)
    • #$02 = SpriteH: Down (touches blocks from above)
    • #$03 = SpriteH: Up (touches blocks from below)

    Be careful when using custom blocks, $0F remains used before and after custom block processing at $019533. If $0F is modified and not restored, sprite interaction glitches can occur.
HammerBrother
$02887D 36 bytes Subroutine (JSL) Seems to be a subroutine for spawning stuff from blocks. What is spawned depends on the value of $05:

00 - nothing
01 - mushroom
02 - flower
03 - star
04 - cape
05 - 1-Up
06 - coin
07 - coin (sets multiple-coin-block timer)
08 - growing vine
09 - nothing?
0A - P-switch (blue/gray depending on block X position)
0B - key/wings/balloon/shell (depending on block X position)
0C - green Yoshi egg
0D - green Koopa shell (with stun timer set)
0E - changing item
0F - directional coins
10 - key (but a random blue shell-less Koopa also pops out)
11-FF - completely glitchy; best not to use

This subroutine can be used properly in a block, but the data bank must be 02 and the lower nybbles of $98 and $9A must be cleared. All values except 06 and 07 JSR to the main "spawn sprite from block" routine at $0288DC; values 06 and 07 JSR to the coin-spawning routine at $028A66.

Note: When used in a custom block under sprite interaction, make sure you preserve $1695 and then restore it after this routine to prevent a random splash sprite from spawning.
HammerBrother
Hijack Address Length Type Description Details Submitter
$02A8D8 1 byte Opcode Modified by Lunar Magic. FuSoYa
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 - 2020 - SMW Central
Legal Information - Privacy Policy - Link To Us


Total queries: 27

Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

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