Banner
Views: 815,711,484
Time:
24 users online: Anorakun, Correa, Darkslayer, Erik_The_Swift, FedoraFriday, Foxy McCloud, GbreezeSunset, Green Jerry, h.carrell, HammerGuy, Headrush69, MarioFan22, MDBattleFrog, MegaSonic1999, Metal-Yoshi94, MilkyMooer, NewPointless, Nirv, NoodleSauce, Pancake001, Pink Gold Peach, rafaelfutbal, RPG Hacker, Sthian Felipe - Guests: 87 - Bots: 182 Users: 43,160 (2,243 active)
Latest: CaBBage
Tip: Do you want to make fancy HDMA but don't know ASM? Worry no more, because with Effect Tool, fancy HDMA effects can easily be created.Not logged in.
SMW Memory Map
Displaying 100 out of 820 addresses. Show Waiting Addresses (12)
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 3 4 5 6 7 8 9 » Per Page: 25 50 75 100 150 500 All
RAM Address Length Type Description Details
$7E16A1 4 bytes Sprites Bounce sprite Y position, low byte.
$7E16A5 4 bytes Sprites Bounce sprite X position, low byte.
$7E16A9 4 bytes Sprites Bounce sprite Y position, high byte.
$7E16AD 4 bytes Sprites Bounce sprite X position, high byte.
$7E16B1 4 bytes Sprites Bounce sprite Y speed.
$7E16B5 4 bytes Sprites Bounce sprite X speed.
$7E16B9 4 bytes Sprites Accumulating fraction bits for bounce sprite X speed.
$7E16BD 4 bytes Sprites Accumulating fraction bits for bounce sprite Y speed.
$7E16C1 4 bytes Sprites Bounce sprite turns into Map16 tile. This uses the same values as $7E:009C.
$7E16C5 4 bytes Sprites Bounce sprite timer - amount of frames until bounce sprite disappears. Turn blocks are set to spinning mode when this timer runs out.
$7E16C9 4 bytes Sprites Block bounce sprite table.
Format: L-----DD
L is which layer it is on. Clear means it's on layer 1, set means it's on layer 2 (or layer 3 if applicable).
DD is the direction it is moving in. 00 = up; 01 = right; 10 = left; 11 = down.
The -'s are unknown. They're likely unused, but that's not certain yet.
$7E16CD 4 bytes Sprites Quake/interaction sprite type. 0 = empty, 1 = hitting/breaking a block, 2 = Yoshi's stomp.
$7E16D1 4 bytes Sprites Quake/interaction sprite X position, low byte.
$7E16D5 4 bytes Sprites Quake/interaction sprite X position, high byte.
$7E16D9 4 bytes Sprites Quake/interaction sprite Y position, low byte.
$7E16DD 4 bytes Sprites Quake/interaction sprite Y position, high byte.
$7E16E1 6 bytes Sprites Score/1-Up sprite number. Valid Values
$7E16E7 6 bytes Sprites Score/1-up sprite Y position, low byte.
$7E16ED 6 bytes Sprites Score/1-up sprite X position, low byte.
$7E16F3 6 bytes Sprites Score/1-up sprite X position, high byte.
$7E16F9 6 bytes Sprites Score/1-up sprite Y position, high byte.
$7E16FF 6 bytes Sprites Score/1-up sprite Y movement - how long the score sprite should move upwards. It is not possible to go down, and the maximum amount of frames is #$30. Additionally, the sprite is twice as slow with #$10-#$1F as with #$20-#$2F, and four times as slow with #$00-#$0F. The sprite terminates itself when this hits zero.
$7E1705 6 bytes Sprites Layer the score/1-up sprite is on. Used to control its position.
$7E170B 10 bytes Sprites Extended sprite number. Last two bytes reserved for fireballs. Valid Values
$7E1715 10 bytes Sprites Extended sprite Y position, low byte. Last two bytes reserved for fireballs.
$7E171F 10 bytes Sprites Extended sprite X position, low byte. Last two bytes reserved for fireballs.
$7E1729 10 bytes Sprites Extended sprite Y position, high byte. Last two bytes reserved for fireballs.
$7E1733 10 bytes Sprites Extended sprite X position, high byte. Last two bytes reserved for fireballs.
$7E173D 10 bytes Sprites Extended sprite Y speed. Last two bytes reserved for fireballs.
$7E1747 10 bytes Sprites Extended sprite X speed. Last two bytes reserved for fireballs.
$7E1751 10 bytes Sprites Accumulating fraction bits for extended sprite Y speed. The last two bytes are for the player's fireballs.
$7E175B 10 bytes Sprites Accumulating fraction bits for extended sprite X speed. The last two bytes are for the player's fireballs. The fireballs also use this table for a hit flag table.
$7E1765 10 bytes Sprites Extended sprite table. Most extended sprites increment this table and use it for their GFX table. (Use a different image every x frames.)
$7E176F 10 bytes Sprites Extended sprite table with multiple purposes. Fireballs use it as a frame counter table when they hit an object. Various other extended sprites, such as the trail of smoke, use it as a graphics pointer. Table decrements once per frame.
$7E1779 10 bytes Sprites Extended sprite goes behind layers flag. Last two bytes reserved for fireballs.
$7E1783 8 bytes Sprites Shooter number. #$00 = None, #$01 = Bullet Bill shooter, #$02 = Torpedo Launcher.
$7E178B 8 bytes Sprites Shooter Y position, low byte.
$7E1793 8 bytes Sprites Shooter Y position, high byte.
$7E179B 8 bytes Sprites Shooter X position, low byte.
$7E17A3 8 bytes Sprites Shooter X position, high byte.
$7E17AB 8 bytes Sprites Amount of time it takes for a shooter to shoot the next sprite. Decrements every 2 frames via $13.
$7E17B3 8 bytes Sprites Shooter's index to level table (see $7E:1938). Curiously, shooters are always reloaded, because there is no routine to erase them.
$7E17BB 1 byte Empty Contains the low byte of the level number when loading the levels, but never read by anything. It's cleared when the loading is done. Can be used as freeram.
$7E17BC 1 byte Misc. How much the Y position of Layer 1 changed in the current frame. Only used by the originally unused winged cage sprite.
$7E17BD 1 byte Misc. How much the X position of Layer 1 changed in the current frame. Used in various instances, for example to check how fast the spinning coins should move horizontally when a goal tape is touched when there are sprites on screen.
$7E17BE 1 byte Misc. How much the Y position of Layer 2 changed in the current frame. Used when the player should be still compared to a moving layer 2. For example, it's used by the Layer 2 horizontal scroll sprite, F4.
$7E17BF 1 byte Misc. How much the X position of Layer 2 changed in the current frame.
$7E17C0 4 bytes Sprites Smoke sprite number:

#$00 = Free slot.
#$01 = Puff of smoke.
#$02 = Contact graphic.
#$03 = Smoke when the player turns around abruptly.
#$04 = Unused/None.
#$05 = Glitter sprite.
$7E17C4 4 bytes Sprites Smoke sprite Y position, low byte.
$7E17C8 4 bytes Sprites Smoke sprite X position, low byte.
$7E17CC 4 bytes Sprites Smoke sprite timer - amount of frames until smoke sprite disappears.
$7E17D0 4 bytes Sprites Spinning coin from block. If zero, the slot is free, otherwise it's occupied by such a spinning coin.
$7E17D4 4 bytes Sprites Spinning coin from block Y position, low byte.
$7E17D8 4 bytes Sprites Spinning coin from block Y speed. $20-$9F will terminate the sprite and cause a score sprite to appear.
$7E17DC 4 bytes Sprites Accumulating fraction bits for fixed point spinning coin from block Y speed.
$7E17E0 4 bytes Sprites Spinning coin from block X position, low byte.
$7E17E4 4 bytes Sprites Spinning coin from block table. Indicates whether the spinning coin is generated from a block on Layer 1, or Layer 2/3. Depending on the layer, it updates its position based on the layer's movements.
$7E17E8 4 bytes Sprites Spinning coin from block Y position, high byte.
$7E17EC 4 bytes Sprites Spinning coin from block X position, high byte.
$7E17F0 12 bytes Sprites Minor extended sprite number. Valid Values
$7E17FC 12 bytes Sprites Minor extended sprite Y position, low byte.
$7E1808 12 bytes Sprites Minor extended sprite X position, low byte.
$7E1814 12 bytes Sprites Minor extended sprite Y position, high byte.
$7E1820 12 bytes Sprites Minor extended sprite Y speed.
$7E182C 12 bytes Sprites Minor extended sprite X speed.
$7E1838 12 bytes Sprites Accumulating fraction bits for fixed point minor extended sprite Y speed.
$7E1844 12 bytes Sprites Accumulating fraction bits for fixed point minor extended sprite X speed.
$7E1850 12 bytes Sprites Minor extended sprite timer. Indicates how long the minor extended sprite is still staying active, on-screen.
$7E185C 1 byte Player Flag to disable player interaction with objects. Ghost house ledge holes store their sprite index (plus one) to this to make Mario fall through the ground, but any non-zero value will work.
$7E185D 1 byte Sprites Related to the spawning of extended sprites. Used to index $7E:17F0 (minor extended sprite type table) if there are no empty slots when an extended sprite needs to be spawned. This is so that the oldest extended sprite can be removed when a new one needs to be made.
$7E185E 1 byte Misc. Sometimes used to keep track of a tile to generate at $00:BEB0 (before storing to $7E:009C); may be in conjunction with $7E:18B6. Also used to determine the player Y position when he's on the line guided rope, used to determine positions and such of Yoshi's tiles, etc.
$7E185F 1 byte Sprites This is the low byte of the Map16 tile (actual tile number, not "acts like" setting) that a sprite is touching vertically. The high byte is at $18D7.

This, $1860, $1862, and $18D7 are set after $019138, the subroutine that allows the sprite to interact with objects, is called. (This includes $01802A, the routine that updates sprite position with gravity, which calls $019138.)
$7E1860 1 byte Sprites This is the low byte of the Map16 tile (actual tile number, not "acts like" setting) that a sprite is touching horizontally. The high byte is at $1862.

This, $185F, $1862, and $18D7 are set after $019138, the subroutine that allows the sprite to interact with objects, is called. (This includes $01802A, the routine that updates sprite position with gravity, which calls $019138.)
$7E1861 1 byte Sprites Which sprite to overwrite if all slots are full. Used for blocks containing sprites and the item box.
Note that only the last two slots can be overwritten using this method.
$7E1862 1 byte Sprites This is the high byte of the Map16 tile (actual tile number, not "acts like" setting) that a sprite is touching horizontally. The low byte is at $1860.

This, $185F, $1860, and $18D7 are set after $019138, the subroutine that allows the sprite to interact with objects, is called. (This includes $01802A, the routine that updates sprite position with gravity, which calls $019138.)
$7E1863 1 byte Sprites Smoke sprite index. Holds the first available smoke image index and resets to #$03 if all of them have been filled and another smoke image is spawned.
$7E1864 1 byte Empty Empty. Cleared on reset, titlescreen load, overworld load and level load.
$7E1865 1 byte Sprites Spinning coin from block index. Holds the first available index and resets to #$03 if all of them have been filled and another coin is spawned.
$7E1866 2 bytes Misc. Two seperate, 8-bit addresses used by the brown chained platform rotation routine. Used to tell if an angle is negative or not. Refer to $7E:0036 also.
$7E1868 1 byte Blocks Used as a mirror of $7E:1693 in stunned sprites. This address here is used to check if a sprite is hitting a smashable block (for example, a question mark block) from below.
$7E1869 2 bytes Empty Empty. Cleared on reset, titlescreen load, overworld load and level load.
$7E186B 1 byte Blocks Multiple coin block timer - amount of time until the multiple coin block turns into a used block. Keeps decrementing until it's #$01, after that it stays that value until the block is hit again, at which it's turned into a used block. Then, this address gets set to zero.
$7E186C 12 bytes Sprites Sprite off screen flag table, vertical. For sprites in bank 1, if the sprite is set to be two tiles high (with $190F), then bits 0 and 1 correspond to the top and bottom tiles respectively.

The routine that sets this address in bank 2 and 3 has an error, however; this address instead does the 2-bit functionality if bit 5 of $1662 (which is one of the bits in the sprite clipping value). As a result, some sprites will register as vertically offscreen when they're actually just at the top of the screen.
$7E1878 1 byte Sprites Indicates where the player is on the X axis in relation to the currently-active revolving net door sprite. If this is #$00, the player is perfectly centered on the sprite horizontally. It will be positive if the player is toward the left side of the sprite (the farther left, the bigger the positive number) and negative if the player is toward the right side of the sprite (the farther right, the bigger the negative number).

Is used to calculate the player X speed as the net is turning around sideways.
$7E1879 1 byte Empty Empty. Cleared on reset, titlescreen load, overworld load and level load.
$7E187A 1 byte Yoshi Riding Yoshi Flag. #$00 = No, #$01 = Yes, #$02 = Yes, and turning around.
$7E187B 12 bytes Sprites Miscellaneous sprite table. Has the following purposes:

Sprite stomp immunity flag table - enables stomp immunity for sprites if the flag is set.
Additionally, the changing item sprite uses it to determine which sprite it is (#$00 = mushroom, #$40 = fire flower, #$80 = feather, #$C0 = star), the goal tape determines by this address whether it activates the normal or secret exit, the radius of rotating chain sprites is held by this address, certain Yoshi abilities are handled, etc. More information can be found here.

$7E:1884 is also used to determine what background should be used during the Morton/Roy/Ludwig battle scene. #$00 = Ludwig; #$01 = Morton/Roy.
There is also a bug with the background flames during the Ludwig battle, as they seem to change color upon this address not being #$01. This is responsible for a palette glitch in the original SMW, where the fire turns a greyish blue very briefly. Change $02:8380 to #$80 to fix the bug.
$7E1887 1 byte Timer Time to shake Layer 1.
$7E1888 2 bytes Misc. Layer 1 image relative Y position, used by $7E:1887 (shaking ground). Does not affect Layer 1 interaction. #$0000 = default value, Layer 1's image unchanged. The higher the value (positive, #$0001 and beyond), the more Layer 1 goes up. The lower the value (negative, wraps around to #$FFFF and below) the more Layer 1 goes down.
$7E188A 1 byte Empty Empty. Cleared on reset, titlescreen load, overworld load and level load, hurt, death, and taking hit while cape flying ($00:F625 for the last three) and in the Peach Rescued scene ($03:AE39).
$7E188B 1 byte Player Player image-relative Y position, used by $7E:1887 (shaking ground). Does not affect player interaction. Unlike $7E:1888, this is an 8-bit address.
$7E188C 1 byte Flag Flag that determines if the game should keep updating the tile and YXPPCCCT data for the sprite background tiles in the Morton/Roy/Ludwig room.

#$00 = Keep updating; #$01 = Stop updating.
$7E188D 1 byte Misc. Used during the calculation of the X position of the background in the Morton/Roy/Ludwig room. It starts by copying the value from $7E:001A (8-bit) and getting the lowest bit from $7E:001B by using the carry bit. So first, this address is $7E:001A (9-bit) > 1.
This address is then, after it's inverted with EOR #$FF : INC A, used for $7E:0006 (scratch RAM, used for X displacement of all tiles).
$7E188E 1 byte Empty Empty. Cleared on reset, titlescreen load, overworld load, cutscene load and level load.
$7E188F 1 byte Sprites Used to indicate whether the bonus game is over. It will disable the interaction and movement.
$7E1890 1 byte Counter How many 1-Ups to spawn. (Used for bonus game.)
$7E1891 1 byte Timer P-balloon timer. Ticks down one step per four frames.
Note that setting this doesn't make the player fly away. The flight controller is $7E:13F3.
$7E1892 20 bytes Sprites Cluster sprite number. The pointer for those is at $02:F825. A list of possible values, as well as more information on cluster sprites in general, can be found here. Valid Values
$7E18A6 1 byte Empty Empty, unused RAM. Referenced at $01CF9E (Morton's code) but never actually used. Cleared on reset, titlescreen load, overworld load and level load.
$7E18A7 1 byte Blocks This address is a mirror of $7E:1693, which holds the Map16 number of the current block that is being checked. Primarily used in the Chargin' Chuck turn/throw block detection code.
Pages: « 1 2 3 4 5 6 7 8 9 » 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: 22

Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

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