Banner
Views: 794,132,608
Time:
17 users online: anonimzwx, August77, chickaDEE Magazine,  FPzero,  Gloomy, gohkenytp111, joshua_is_the_new_rick, lx5, Mariotag1, Maxodex,  Meirdent, Minish Yoshi,  Nameless,  Sayuri,  Sinc-X, StrikeForcer, ThePat545 - Guests: 55 - Bots: 198 Users: 41,447 (1,506 active)
Latest: Kingsav
Tip: Do not set the music bypass to 00 in a level with a P-switch/star; the music will endlessly loop.Not logged in.
SMW Memory Map
Displaying 50 out of 824 addresses. Show Waiting Addresses (3)
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 516 17 » Per Page: 25 50 75 100 150 500 All
RAM Address Length Type Description Details
$7E0000 16 bytes Misc. Scratch RAM, is and can be used for a big number of purposes. The general purpose is temporarily preserving a value for later use in a routine.
Of note is the following address, used in LM ASM hacks:
$7E:0003 (16-bit) - Block number from LM Map16 editor. Also used in the custom Map16 tile change routine.
$7E0010 1 byte Flag If the value in it is not zero, run the actual game; otherwise, loop forever. It's set to a non-zero value during NMI, and it's set to zero after the game mode has been run, so that the game runs exactly once a frame - one NMI trigger per frame.
$7E0011 1 byte Flag Used to distinguish IRQ #1 from IRQ #2's code. (Inside the Morton/Ludwig/Roy room, where IRQ is used twice, although it can be used in other areas that run IRQ as well.) #$00 = IRQ #1; #$01 = IRQ #2.
$7E0012 1 byte Graphics Stripe image loader - value must be divisible by 3. Valid Values
$7E0013 1 byte Counter "True" frame counter. Increments once per frame, except when the game is lagging. Note that $7E:0014 is better suited for most purposes.
$7E0014 1 byte Counter "Effective" frame counter. Stops when, for example, RAM addresses such as $7E:009D are not zero (lock sprite flag, usually indicates the player is dying, grabbing a powerup, or something similar). Inside sprite code, this address is often preferred over $7E:0013, especially in graphics routines, as graphics will not be updated when the player dies if this address is used as an index to the tilemap.
$7E0015 1 byte I/O Controller buttons currently held down. Format: byetUDLR.
b = A or B; y = X or Y; e = select; t = Start; U = up; D = down; L = left, R = right.
$7E0016 1 byte I/O Controller buttons newly pressed this frame. Format: byetUDLR.
b = B only; y = X or Y; e = select; t = Start; U = up; D = down; L = left, R = right.
$7E0017 1 byte I/O Controller buttons currently held down. Format: axlr----.
a = A; x = X; l = L; r = R, - = null/unused.
$7E0018 1 byte I/O Controller buttons newly pressed this frame. Format: axlr----.
a = A; x = X; l = L; r = R, - = null/unused.
$7E0019 1 byte Player Player powerup/status. #$00 = small; #$01 = big; #$02 = cape; #$03 = fire.
$7E001A 2 bytes Hardware mirror Layer 1 X position, current frame. Mirror of SNES register $210D.
$7E001C 2 bytes Hardware mirror Layer 1 Y position, current frame. Mirror of SNES register $210E.
$7E001E 2 bytes Hardware mirror Layer 2 X position, current frame. Mirror of SNES register $210F.
$7E0020 2 bytes Hardware mirror Layer 2 Y position, current frame. Mirror of SNES register $2110.
$7E0022 2 bytes Hardware mirror Layer 3 X position. Mirror of SNES register $2111.
$7E0024 2 bytes Hardware mirror Layer 3 Y position. Mirror of SNES register $2112.
$7E0026 2 bytes Misc. Depending on Layer 3 tides being activated or not, it's either:

Not activated:
Layer 2 X position minus Layer 1 X position.
Activated:
Layer 3 X position minus Layer 1 X position.

Used for various things, among which interaction with multiple layers is included.
$7E0028 2 bytes Misc. Depending on Layer 3 tides being activated or not, it's either:

Not activated:
Layer 2 Y position minus Layer 1 Y position.
Activated:
Layer 3 Y position minus Layer 1 Y position.

Used for various things, among which interaction with multiple layers is included.
$7E002A 2 bytes Hardware mirror Mode 7 Center X position. Mirror of SNES register $211F, + #$0080.
$7E002C 2 bytes Hardware mirror Mode 7 Center Y position. Mirror of SNES register $2120, + #$0080.
$7E002E 2 bytes Hardware mirror Mode 7 matrix parameter A. Mirror of SNES register $211B.
$7E0030 2 bytes Hardware mirror Mode 7 matrix parameter B. Mirror of SNES register $211C.
$7E0032 2 bytes Hardware mirror Mode 7 matrix parameter C. Mirror of SNES register $211D.
$7E0034 2 bytes Hardware mirror Mode 7 matrix parameter D. Mirror of SNES register $211E.
$7E0036 2 bytes Misc. Mode 7 rotation. Its values are calculated and stored into the respective Mode 7 parameter mirrors at $7E:002E through $7E:0035.
Values #$0000 through #$01FF are all different values, after that it's the same pattern - that is, if you add this 16-bit address with #$0200, there is a 360 degree rotation.
Furthermore, this address is used in the brown chained platform code as an index to the sine and cosine tables at $07:F7DB.
$7E0038 2 bytes Misc. Mode 7 scaling; that is, making Layer 1 shrink or grow. Its values are calculated and stored into the respective Mode 7 parameter mirrors at $7E:002E through $7E:0035.
The first byte - $7E:0038 - is used for horizontal scaling, whereas the second byte - $7E:0039 - is used for vertical scaling.
Default value is #$20. The closer to #$00, the more the layer grows, the further from #$00, the more the layer shrinks. Value #$10 makes the layer twice as large as value #$20, value #$40 makes the layer twice as small as value #$20, etc.
$7E003A 2 bytes Hardware mirror Mode 7 Layer 1 X position. Mirror of SNES register $210D.
$7E003C 2 bytes Hardware mirror Mode 7 Layer 1 Y position. Mirror of SNES register $210E.
$7E003E 1 byte Hardware mirror Background mode select applied with IRQ below status bar (so the area above IRQ is not affected by this). Format: 4321pmmm.
4321 = Layer 1/2/3/4 uses 8x8 tiles when clear, 16x16 tiles when set; p = Layer 3 absolute priority (only in background mode 1); mmm = background mode # (0-7).
Mirror of SNES register $2105.
$7E003F 1 byte Hardware mirror OAM Address, low byte. Also known as the mirror of SNES register $2102. High byte is at $00846B. Is sometimes used to alter priority of various sprite tiles, such as with the sprite backgrounds in the boss rooms.
$7E0040 1 byte Hardware mirror CGADSUB settings. Format: shbo4321.
s = 0 for adding color layer, 1 for subtracting color layer; h = half-color enable; b = backdrop enable; o = object (aka sprite) enable; 4321 = enable Layer 4, 3, 2, 1 (Layer 3 is only affected below the status bar). Mirror of SNES register $2131.
$7E0041 1 byte Hardware mirror Layer 1/2 window mask settings. Format: aaaabbbb.
aaaa = Layer 2 window settings; bbbb = Layer 1 window settings. Mirror of SNES register $2123.
$7E0042 1 byte Hardware mirror Layer 3/4 window mask settings. Format: aaaabbbb.
aaaa = Layer 4 window settings; bbbb = Layer 3 window settings. Mirror of SNES register $2124.
$7E0043 1 byte Hardware mirror Object and color window settings. Format: aaaabbbb.
aaaa = color window settings; bbbb = object window settings. Mirror of SNES register $2125.
$7E0044 1 byte Hardware mirror Initial settings for color addition. Format: aabb00cd.
aa = main color window on/off; bb = sub color window on/off; c = fixed color add/subtract; d = direct color mode for 8bpp backgrounds. Mirror of SNES register $2130.
$7E0045 2 bytes Camera Column/row of Map16 tiles to use for VRAM upload when layer 1 is scrolling left/up. Its value is equal to $7E:001A (or $7E:001C if vertical) divided by #$10, minus #$08.
$7E0047 2 bytes Camera Column/row of Map16 tiles to use for VRAM upload when layer 1 is scrolling right/down. Its value is equal to $7E:001A (or $7E:001C if vertical) divided by #$10, plus #$17.
$7E0049 2 bytes Camera Column/row of Map16 tiles to use for VRAM upload when interactive layer 2 is scrolling left/up. Its value is equal to $7E:001E (or $7E:0020 if vertical) divided by #$10 (16), minus #$08.
$7E004B 2 bytes Camera Column/row of Map16 tiles to use for VRAM upload when interactive layer 2 is scrolling right/down. Its value is equal to $7E:001E (or $7E:0020 if vertical) divided by #$10, plus #$17.
$7E004D 2 bytes Camera Last X/Y value of layer 1 where VRAM upload of Map16 tiles was performed when scrolling left/up.
The low 4 bits are forced to zero (AND #$FFF0) in order to get scroll values on a 16 pixel boundary.
It is used to determine if a VRAM update is necessary during scrolling.
$7E004F 2 bytes Camera Last X/Y value of layer 1 where VRAM upload of Map16 tiles was performed when scrolling right/down.
The low 4 bits are forced to zero (AND #$FFF0) in order to get scroll values on a 16 pixel boundary.
It is used to determine if a VRAM update is necessary during scrolling.
$7E0051 2 bytes Camera Last X/Y value of interactive layer 2 where VRAM upload of Map16 tiles was performed when scrolling left/up.
The low 4 bits are forced to zero (AND #$FFF0) in order to get scroll values on a 16 pixel boundary.
It is used to determine if a VRAM update is necessary during scrolling.
$7E0053 2 bytes Camera Last X/Y value of interactive layer 2 where VRAM upload of Map16 tiles was performed when scrolling right/down.
The low 4 bits are forced to zero (AND #$FFF0) in order to get scroll values on a 16 pixel boundary.
It is used to determine if a VRAM update is necessary during scrolling.
$7E0055 1 byte Camera Direction of scrolling for Layer 1.
#$00 = left (or up); #$02 = right (or down).
Used to index the various camera tables at $7E0045 to $7E0048 and $7E004D to $7E0050.

When handling routine $00F70D, it is set to $00 if the player's on-screen X position is less than the value of $142A and $02 otherwise. This is used to determine which side to enable spawning sprites depending which side the player is on compared to $142A.

It is also temporarily set to #$01 during level load for loading onscreen sprites.
$7E0056 1 byte Camera Direction of scrolling for Layer 2.
#$00 = left (or up); #$02 = right (or down).
Used to index the various camera tables at $7E:0049 through $7E:004C and $7E:0051 through $7E:0054.
$7E0057 1 byte Blocks Used in the level loading code. It's the position within the subscreen.
Format: yyyyxxxx, where yyyy is the Y position (units of 16 pixels) and xxxx is the X position.
$7E0058 1 byte Empty Empty. Cleared on reset, titlescreen load and overworld load.
$7E0059 1 byte Blocks Used in the level loading routine as an indicator for the size of the object, or extended object type depending on what object is being loaded. Could be used as scratch RAM (except in ObjecTool and similar codes).
$7E005A 1 byte Blocks Used in the level loading routine as the object number. Could be used as scratch RAM (except in ObjecTool and similar codes).
Pages: « 1 2 3 4 516 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

  • SMBX Community
  • ROMhacking.net
  • MFGG