Banner
Views: 779,487,214
Time:
4 users online: bandicoot, BreadEater, h.carrell,  Ryaa - Guests: 28 - Bots: 243 Users: 40,858 (1,671 active)
Latest: GreatRomHacker
Tip: Do not put an excessive number of lives in a level; they should have a value to them.Not logged in.
SMW Memory Map
Displaying 50 out of 824 addresses. Show Waiting Addresses (13)
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 10 11 12 13 14 15 16 17 » Per Page: 25 50 75 100 150 500 All
RAM Address Length Type Description Details
$7E1480 1 byte Sprites Width between the top left window ($7E:1472) and the bottom left window ($7E:1476) of the spotlight. This value is always positive, and its sign flag is saved at $7E:1484.
$7E1481 1 byte Sprites Width between the top right window ($7E:1474) and the bottom right window ($7E:1478) of the spotlight. This value is always positive, and its sign flag is saved at $7E:1485.
$7E1482 1 byte Flag Used as a flag in the spotlight code to skip initialization of the top left, top right, bottom left, and bottom right RAM addresses.
#$00 = Run initialization; #$01 = Do not run initialization.
$7E1483 1 byte Sprites Used as a flag for the current direction the spotlight is moving. #$00 = spotlight is moving right; #$01 = spotlight is moving left.
$7E1484 1 byte Sprites A flag used in the spotlight code to determine which side of the top left window border the bottom left window border is on.
#$00 = bottom left is more to the left; #$01 = bottom left is on the same position, or more to the right.
$7E1485 1 byte Sprites A flag used in the spotlight code to determine which side of the top right window border the bottom right window border is on.
#$00 = bottom right is more to the left; #$01 = bottom right is on the same position, or more to the right.
$7E1486 1 byte Sprites Unused, set to #$01 in the dark room spotlight sprite. Change $03:C544 to EA EA EA (NOP #3) to change this into free RAM. If that patch is performed, this address is safe for other uses. Cleared on reset, titlescreen load, overworld load and cutscene load.
$7E1487 4 bytes Empty Empty. Cleared on reset, titlescreen load and overworld load.
$7E148B 2 bytes Misc. Used by random number generation subroutine to determine the next output.
Do not use these if you want a random number. Use $7E:148D instead.
$7E148D 2 bytes Misc. Output of random number generation routine, located at $01:ACF9.
$7E148F 1 byte Player Flag used to detect if the player is holding an object (throw block, key, shell, etc.) Also adjusts the player image, different from $7E:1470. This address does store its value to $7E:1470.
If the player is carrying something, this address should usually (not always, regarding the glitch) prevent the player from holding a second item.
#$00 = Carrying nothing; #$01 = carrying something.
$7E1490 1 byte Timer Star power timer. Decrements every fourth frame, except when lock flag ($9D) AND while the freezable frame counter ($14) has a value divisible by 4, will decrement each frame (assuming it's a glitch). The music will revert when this timer reaches #$1E.
$7E1491 1 byte Sprites Amount of pixels on the X/Y axis a sprite has moved in the current frame. It is set after every call to update sprite position based on speed, and the routine that updates both X/Y position based on speed will leave $7E:1491 with the movement on the X axis in this address. Very often used for rideable sprites as this address can be added to the player position to move the player in tandem with the sprite.
$7E1492 1 byte Timer Player peace image timer.
$7E1493 1 byte Timer End level timer. Setting to #$FF will end the level as a goal sphere / boss fight. Peace sign is shown here when the timer hits #$28. The switches (yellow, green, red and blue) set it to #$08.
$7E1494 1 byte Palettes Direction of the color fading at level end. Only the highest bit is ever read.
#$00 = getting darker; #$80 = getting brighter.
$7E1495 1 byte Timer Timer that controls fading and the level end scorecard. Increments and stops when it hits #$40. While it's ticking, the colors will fade; when it's done, $7E:003A through $7E:003D won't be read and the Layer 3 scrolling will be locked.
$7E1496 1 byte Timer Player animation timer. This controls a lot of things such as the walking/running animation rate, how long the death animation should last, how long to stay invisible for after getting the cape, the alternating player images when the player is walking over slippery surfaces, etc.
$7E1497 1 byte Timer Flashing invulnerability timer - not to be confused with the star timer. This is activated when the player gets hurt. Controls both interaction (player should not interact with sprites again) as well as the blinking graphics.
$7E1498 1 byte Timer Time to show player picking an item/object up pose.
$7E1499 1 byte Timer Time for player to face the screen.
$7E149A 1 byte Timer Time to show player kicking something pose.
$7E149B 1 byte Timer Time for the player to change through palettes, as if he got a fire flower. Only ticks when the "get flower" animation is active, and is just a flag otherwise.
$7E149C 1 byte Timer Time to show player shooting a fireball pose.
$7E149D 1 byte Timer Side flipping climbing net sprite flag and timer. Whenever you punch the flipping net, this gets set to #$1E and decrements every frame till it's zero. That's how many frames the spinning animation lasts. It also determines the X speed the player has while he's on the climbing net sprite - this means that it should be decremented every frame in order to avoid issues.
$7E149E 1 byte Timer Player punches while climbing on a net flag and timer. Every time you punch a net this is set to #$08 and decremented till it's zero again. During the time it's not zero, the frame is displayed that shows the player punching the net. If you store #$08 or greater to it every frame you'll be hold onto the net without being able to move or get off.
When this RAM address is non-zero, the player can also not move.
$7E149F 1 byte Timer This timer controls the time until the player gets into gliding/sinking mode after he has jumped into the air with a cape. Is set to #$50 the moment you get airborne, and decrements every frame afterwards. The ability of raising any further stops at #$00.

Note that this doesn't reset when going into another sublevel, allowing the player to "carry over" flying if the player is spawn in midair (or jump immediately when placed on ground) and maintains holding dash.
$7E14A0 1 byte Timer How long the running frames should be shown after the player launches off with the cape. Is #$10 by default and decrements each frame.
$7E14A1 1 byte Timer Player slides a bit when turning around timer. Most notably used with very steep slopes. If this is non-zero, $7E:13DD's image (#$0D) won't be shown.
$7E14A2 1 byte Timer Used as a timer for the cape animation. This is what makes the cape wave when the player walks and what makes the cape fall when he stops.
$7E14A3 1 byte Timer A timer for Yoshi's tongue stretching out.
#$12 = Yoshi about to stretch out tongue (timer starts here), player pose #$27.
#$10 = $7E:18AE is set to #$06.
#$0C = Player now gets a different pose, #$28.
#$00 = Player now gets a different pose, #$20 (or #$21 if turning around, $7E:187A is used to determine that).
$7E14A4 1 byte Timer Time until the player advances a diving stage, while flying and holding forward, and time until the player pulls back up a stage, while flying and holding backward.
$7E14A5 1 byte Timer Timer for how long you keep floating after releasing B when floating with the cape.
$7E14A6 1 byte Player Cape spin timer.
$7E14A7 1 byte Timer Timer for breaking the bridge in Reznor battles. It is set to #$40 and decrements each frame. When it reaches #$3C, a tile on each side breaks. When it drops to #$00, a sound is played and it's reset to #$40 again.
$7E14A8 3 bytes Misc. Unused. $7E:14A8 decrements every frame automatically until it reaches zero, while $7E:14A9 and $7E:14AA decrement every fourth frame. $7E:14A9 is cleared when the player ground pounds with the cape (this can be prevented by setting $02:94C6 to NOP #3 or [EA EA EA]), and $7E:14AA is set to #$40 when Yoshi grabs the wings (this can be stopped by setting $01:F6CF to NOP #3 or [EA EA EA]).
$7E14AB 1 byte Timer Bonus game ending timer. Does nothing in a normal level, but during a bonus game, setting it will end the bonus game and return to the overworld. At #$44 it starts the "end bonus game" music, and at #$01 it actually fades to the overworld.
$7E14AC 1 byte Empty Empty. However, due to the code at $00:C563 and $00:C513, it decrements every fourth frame until it hits zero.
$7E14AD 1 byte Timer Blue P-Switch timer. Decrements every fourth frame. The P-switch running out sound is played when this hits #$1E.
$7E14AE 1 byte Timer Silver P-Switch timer. Decrements every fourth frame. The P-switch running out sound is played when this hits #$1E.
$7E14AF 1 byte Flag On/Off Switch value. #$00 is ON and all others (non-zero, i.e. #$01-#$FF) are OFF.
$7E14B0 2 bytes Misc. Used for multiple purposes.

The 16-bit address forms the center X position of the brown chained platform that is currently processed. The formula for this address = $7E:14B4 - $7E:14BC.

Additionally, the Lakitu cloud graphics routine uses $7E:14B0 as scratch RAM for the X position of a tile.

$7E:14B0 is furthermore used in the Bowser battle as a timer between his various attacks. Set to #$78 at the beginning, and between attacks afterwards it is set to #$54 each time.
Note that, whether he throws the Mechakoopas or not, does not only depend on this address!

And finally, $7E:14B1 is a timer that is set to #$FF when Bowser begins with the Mechakoopa attack. Note that the Mechakoopas are thrown when this timer is at #$80.
$7E14B2 2 bytes Misc. Used for multiple purposes.

The 16-bit address forms the center Y position of the brown chained platform that is currently processed. Note that, since the radius based on the sprite Y position is always zero, this holds the same value as $7E:14B6. The formula for this address = $7E:14B6 - $7E:14BF.

Additionally, the Lakitu cloud graphics routine uses $7E:14B2 as scratch RAM for the Y position of a tile.

$7E:14B2 is also a flag for scaling when Bowser is flying away. #$00 = shrinking; #$01 = growing; #$02 = disappear.

And finally, $7E:14B3 is an incrementing index to the Y position for the teardrop tile that appears on the Clown Car when Bowser is hurt.
$7E14B4 2 bytes Misc. Used for multiple purposes.

The 16-bit address is the X position of the brown chained platform sprite at cos a = 1. It is in fact a mirror of the sprite X position, which always stays the same. By subtracting the horizontal radius ($7E:14BC) from this address, the center position to revolve around is calculated.

The 16-bit address is also used to determine Iggy/Larry interactive X position, as well as the player's fireball X position during this boss battle.

$7E:14B4 is used in the Bowser battle as an index to what music should be played in phase 2 and 3. It only appears to have these values after written to:
#$07 = Use track #$19.
#$08 = Use track #$1A.
Both tracks are identical. Perhaps this seperation was intended to be used so that a different track played on each phase.

And finally, $7E:14B5 is a timer for Bowser's hurt state. If non-zero, Bowser will show his hurt pose.
$7E14B6 2 bytes Sprites Used for multiple purposes.

The 16-bit address is the Y position of the brown chained platform sprite at sin a = 0. It is in fact a mirror of the sprite Y position, which always stays the same. By subtracting the horizontal radius ($7E:14BF) from this address, the center position to revolve around is calculated. Since $7E:14BF is always zero, the center position and this address always have the same identical value.

The 16-bit address is also used to determine Iggy/Larry interactive Y position, as well as the player's fireball Y position during this boss battle.

$7E:14B6 is also a timer that is set to #$FF when Bowser begins with the Big Steelie attack. Note that the Big Steelie is thrown when this timer is at #$80.

And finally, $7E:14B7 holds the X position of each new fireball that falls from the sky in the Bowser battle, as well as the index to the sound effects that are generated with them (table at $03:A841).
$7E14B8 2 bytes Misc. Used for multiple purposes.

The 16-bit address is the X position of the first (outermost) chain tile of the brown chained platform currently being processed. This address is responsible for the actual movement of the platform and interaction with the player.

$7E:14B8 itself seems to form a buffer for the X position of Iggy/Larry during that boss battle, much similar to $7E:14B4.

Lastly, $7E:14B8 is an attack counter used in the second phase of the Bowser battle to determine if Bowser should throw Mechakoopas or Big Steelies. It increments on every throw, on #$02 Mechakoopas are thrown, and on #$03 it resets to #$00.
$7E14BA 2 bytes Sprites Used for multiple purposes.

The 16-bit address is the Y position of the first (outermost) chain tile of the brown chained platform currently being processed. This address is responsible for the actual movement of the platform and interaction with the player.

$7E:14BA itself seems to form a buffer for the Y position of Iggy/Larry during that boss battle, much similar to $7E:14B6.
$7E14BC 2 bytes Sprites Radius of the rotating brown platform, by default this value is #$50 (found at $01:CACC). This value is subtracted from $7E:14B4 and stored into $7E:14B0.
In SMW however, the value is always #$50. Additionally, the high byte is always #$00.

Note that this radius depends on sprite X position (which stays the same). It calculates the center position of the imaginary circle you rotate around from that position.
The further you increment the radius, the further you will have to move the sprite to the right in order for the center position to be the same.

See also $7E:14BF.
$7E14BE 1 byte Empty Empty. Cleared on reset, titlescreen load, overworld load and cutscene load.
$7E14BF 2 bytes Sprites Another type of radius that would rely on the brown chained platform's Y position, except that it's always #$0000, and thus effectively it does nothing. Subtracted from $7E:14B6 and stored into $7E:14B2. See also $7E:14BC.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 » 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 - 2019 - SMW Central
Legal Information - Privacy Policy - Link To Us


Total queries: 7

Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • Talkhaus
  • SMBX Community
  • GTx0
  • Super Luigi Bros
  • ROMhacking.net
  • MFGG
  • Gaming Reinvented