AddressDescriptionTypeSize
$7E007DPlayer Y speed (8-bit, signed), in 1/16s of a pixel per frame. Positive speeds (01-7F) are downwards while negative speeds (80-FF) are upwards. SMW generally restricts Mario's downwards speed to a maximum of #$40, although because the game applies gravity after capping the speed, the actual maximum downwards speed is either #$43 (holding A/B) or #$46 (not holding A/B).Player1
$7E00AASprite Y speed table.Sprites12
$7E0DD1Player Y speed on the overworld. Added with $7E:13D7, which is zero most of the time.Player2
$7E0EA5Overworld sprite Y speed.Sprites16
$7E0ED5Accumulating fraction bits for overworld sprite Y speed.Sprites16
$7E13DCAccumulating fraction bits for the player's Y position, though the game only ever uses the the upper four bits (i.e. %yyyy0000), with the player's Y speed ([url=https://smwc.me/m/smw/ram/7E007D]$7D[/url]) being added to it after shifting 4 bits to the left. This value can be thought of as "subpixels", i.e. fractions of a pixel. The game shifts Mario's Y position an extra pixel any time the value overflows after adding his Y speed in the routine at [url=https://smwc.me/m/smw/rom/00DC2D]$00DC4F[/url].Player1
$7E1448Layer 1 Y speed used in the scrolling codes. #$0001-#$7FFF = move upwards; #$8000-#$FFFF = move downwards. #$0000 means there is no movement. $1449 specifically is also used as a timer in Wendy's castle destruction scene for pausing between shifting broom directions or moving Mario to the side.Sprites2
$7E144CLayer 2 Y speed used in the scrolling codes, particularly in the Layer 2 scroll command (sprite EA). #$0001-#$7FFF = move upwards; #$8000-#$FFFF = move downwards. #$0000 means there is no movement. $7E:144D also controls the time until you can press a button to end the castle destruction sequence (after all text has been generated on-screen).Sprites2
$7E145ALayer 3 Y speed, used by the original game for the rising/falling Layer 3 tides. The tides only actually ever use the low byte, although the high byte does get cleared when initializing Layer 3. Lunar Magic expands on the usage of this address when the advanced Layer 3 bypass is enabled, using the full 16-bit value as the Layer 3 autoscroll Y speed. $145B is also used during the credits for various purposes. During the Yoshi House portion, it's used as a counter for the number of Yoshi eggs hatched. It's also used as for a timer to transition from the Yoshi House cutscene to the enemy roll, and subsequently as a timer for each screen of the enemy credits.Misc.2
$7E160EMiscellaneous sprite table. In SMW, it is used to keep track of things such as the green bouncing Koopa's Y speed and the sprite number of certain spawned, kicked, etc. sprites. More information can be found [url=https://smwc.me/t/91198]here[/url].Sprites12
$7E16B1Bounce sprite Y speed.Sprites4
$7E16BDAccumulating fraction bits for bounce sprite Y speed.Sprites4
$7E173DExtended sprite Y speed. Last two bytes reserved for fireballs.Sprites10
$7E17D8Spinning coin from block Y speed. $20-$9F will terminate the sprite and cause a score sprite to appear.Sprites4
$7E17DCAccumulating fraction bits for fixed point spinning coin from block Y speed.Sprites4
$7E1820Minor extended sprite Y speed.Sprites12
$7E1838Accumulating fraction bits for fixed point minor extended sprite Y speed.Sprites12
$7E190FSprite properties, sixth Tweaker/MWR byte. Format: wcdj5sDp w=Don't get stuck in walls (carryable sprites) c=Don't turn into a coin with silver POW d=Death frame 2 tiles high j=Can be jumped on with upward Y speed 5=Takes 5 fireballs to kill. If not set, the sprite is killed with a single fireball. The counter for hits is controlled by [url=https://smwc.me/m/smw/ram/7E1528]$1528[/url]. s=Can't be killed by sliding D=Don't erase when goal passed p=Make platform passable from belowSprites12
$7E1B7DAccumulating fraction bits for the Layer 1 Y speed on the overworld, used when the camera returns to the player after having been in free scrolling mode. This address handles incrementing the Layer 1 Y position when it overflows.Overworld1
$7E1E52Miscellaneous cluster sprite table, mainly used as its Y speed (particularly for the position update routine at [url=https://smwc.me/m/smw/rom/02FF98]$02FF98[/url]).Sprites20
$7EB900During level load, if using a background Layer 2 tilemap in a level, this is table is temporarily used to hold the low byte of each tile. Format: Background is split into two 16x27 rectangles, followed by 160 $25 bytes that are never actually read. The high bytes of each tile are at [url=https://smwc.me/m/smw/ram/7EBD00]$7EBD00[/url]. This table also used as an extension of the GFX decompression buffer at [url=https://smwc.me/m/smw/ram/7EAD00]$7EAD00[/url]. As with that address, during a level, it may be used to hold additional data for the level's AN2 GFX file. In the original game, some of the RAM in this table is also used on the overworld for a number of 40-byte tables relating to the switch palace's block animation:
  • [b]$7EB900[/b] - Switch block X position, high byte
  • [b]$7EB928[/b] - Switch block Y position, high byte
  • [b]$7EB950[/b] - Switch block Z position, high byte
  • [b]$7EB978[/b] - Switch block X position, low byte
  • [b]$7EB9A0[/b] - Switch block Y position, low byte
  • [b]$7EB9C8[/b] - Switch block Z position, low byte
  • [b]$7EB9F0[/b] - Switch block X speed
  • [b]$7EBA18[/b] - Switch block Y speed
  • [b]$7EBA40[/b] - Switch block Z speed
  • [b]$7EBA68[/b] - Accumulating fraction bits for fixed point switch block X speed
  • [b]$7EBA90[/b] - Accumulating fraction bits for fixed point switch block Y speed
  • [b]$7EBAB8[/b] - Accumulating fraction bits for fixed point switch block Z speed
With Lunar Magic, these tables instead get moved over to [url=https://smwc.me/m/smw/ram/7FC500]$7FC500[/url] ([url=https://smwc.me/m/smw/ram/418800]$418800[/url] on SA-1).
Blocks1024
$7FC300Used by Lunar Magic v1.70 as a Map16 high byte buffer. Lunar Magic also moves the tables used for the overworld's switch palace block animation from [url=https://smwc.me/m/smw/ram/7EB900]$7EB900[/url] to here:
  • [b]$7EC500[/b] - Switch block X position, high byte
  • [b]$7EC528[/b] - Switch block Y position, high byte
  • [b]$7EC550[/b] - Switch block Z position, high byte
  • [b]$7EC578[/b] - Switch block X position, low byte
  • [b]$7EC5A0[/b] - Switch block Y position, low byte
  • [b]$7EC5C8[/b] - Switch block Z position, low byte
  • [b]$7EC5F0[/b] - Switch block X speed
  • [b]$7EC618[/b] - Switch block Y speed
  • [b]$7EC640[/b] - Switch block Z speed
  • [b]$7EC668[/b] - Accumulating fraction bits for fixed point switch block X speed
  • [b]$7EC690[/b] - Accumulating fraction bits for fixed point switch block Y speed
  • [b]$7EC6B8[/b] - Accumulating fraction bits for fixed point switch block Z speed
Misc.1024