Banner
Views: 839,173,508
Time:
38 users online: AbuseFreakHacker,  Atari2.0,  bebn legg, Boocraft999, chickaDEE Magazine, Copyright, Darolac,  Deeke, Enan63, FedoraFriday, Fermín Acosta Jr., Golden Yoshi, holaAmigos298, I don't know a good name., Ilucuthen, Infinity, KiloMinimo,  Linkdeadx2, lordkronos100, MarioriaM,  Maxodex, Miku, Minish Yoshi, Narcologer, OrangeBronzeDaisy, Rilla Roo,  RussianMan, Strawb, SuperHack64, SwampMage,  Telinc1,  Teows, The_Uber_Camper, TheInsanity115,  Tob, trettergeorge, TruffledToad, Vriska Motherless_Team - Guests: 112 - Bots: 78 Users: 45,944 (3,274 active)
Latest: der8urak
Summer C3 2020 Content Spotlight
Heraga's "BS SUPER MARIO WORLD"!
Not logged in.
YI Memory Map
Displaying 500 out of 1419 addresses. Show Waiting Addresses (19)
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 » Per Page: 25 50 75 100 150 500 All
RAM Address Length Type Description Details
$7E0000 48 bytes Misc. Scratch RAM, used like "registers" for various operations
$7E0030 2 bytes Timer Frame counter
$7E0032 3 bytes Pointer Pointer to level object data
$7E0035 1 byte Controller Controller 1 Data 1, mirror of $7E093C
$7E0036 1 byte Controller Controller 1 Data 2, mirror of $7E093D
$7E0037 1 byte Controller Controller 1 Data 1 on press/first frame, mirror of $7E093E
$7E0038 1 byte Controller Controller 1 Data 2 on press/first frame, mirror of $7E093F
$7E0039 2 bytes Misc. Layer 1 Camera X
$7E003B 2 bytes Misc. Layer 1 Camera Y
$7E003D 2 bytes Misc. Layer 2 Camera X
$7E003F 2 bytes Misc. Layer 2 Camera Y
$7E0041 2 bytes Misc. Layer 3 Camera X (also for World Map)
$7E0043 2 bytes Misc. Layer 3 Camera Y
$7E0045 2 bytes Misc. Layer 4 Camera X
$7E0047 2 bytes Misc. Layer 4 Camera Y
$7E0049 4 bytes Empty Unused RAM, cleared (with $00) during every loading screen
$7E004D 2 bytes Sound Effect Music track to be played - mirror of hardware register $2140 (APU I/O 0)
$7E004F 2 bytes Sound Effect Previous value of $7E004D (if previous == current value of hardware register $2140, do not write to register)
$7E0051 2 bytes Sound Effect Mirror of hardware register $2141 (APU I/O 1, pseudo-noise loop)
$7E0053 2 bytes Sound Effect Sound ID to be played instantly, bypasses the sound queue, directly written to hardware register $2143
$7E0055 2 bytes Sound Effect Previous value of $7E0053 (if previous == current value in hardware register $2143, do not write to register)
$7E0057 2 bytes Sound Effect Current size of sound queue (capacity 7)
$7E0059 16 bytes Sound Effect Sound effect queue, NOT all sounds currently playing, but instead all sound ID's (1 byte per) to be submitted for play at the current time; each frame the queue index decrements, meaning at most one sound submitted per frame
$7E0069 2 bytes Map World Map: Layer 1 scroll
Mirrored by $7E006D
$7E006B 2 bytes Misc. Yoshi's jump state, mirror of $7000C0
$7E006D 2 bytes Map World Map: Layer 2 scroll
$7E0072 2 bytes Map World Map: Current stage Yoshi sprite Y coordinate
$7E0073 2 bytes Misc. $0000: Camera is moving right
$0002: Camera is moving left
$7E0075 2 bytes Misc. $0000: Camera moving down
$0002: Camera moving up
$7E0076 2 bytes Map World Map: Current stage Yoshi sprite X coordinate
$7E0077 2 bytes Misc. Flag: A new column has been spawned in
$7E0079 2 bytes Map World Map: X Scroll destination
$7E0079 2 bytes Misc. Flag: A new row has been spawned in
$7E007B 2 bytes Layer 1 Tilemap VRAM foreground tilemap address of most recently loaded column
$7E007D 2 bytes Layer 1 Tilemap VRAM foreground tilemap address of most recently loaded row
$7E007F 2 bytes Layer 1 Tilemap 7E007B + 1 (right half of column)
$7E0081 2 bytes Layer 1 Tilemap 7E007D with $0400 bit flipped (even/odd counterpart of tilemap row)
$7E0083 2 bytes Misc. Negative camera X column of newly spawned row shifted to: 0000000000cccc00
$7E0085 2 bytes Layer 1 Tilemap 7E007D + $20 (bottom half of row)
$7E0087 2 bytes Misc. Camera X column + 1 of newly spawned row, shifted to: 0000000000cccc00
$7E0089 2 bytes Misc. Game Over screen state:
$0000: nothing
$0002: fading in
$0004: active
$0006: option chosen
$0008: load title screen
$7E0089 2 bytes Layer 1 Tilemap 7E0081 + $20 (second part of even/odd counterpart of tilemap row)
$7E008B 2 bytes Misc. Most recently spawned row's Y coordinate
$7E0091 8 bytes Misc. Game Over screen: Letter rotation values (Y axis), 1 byte per letter, from right to left ('R', 'E', ... 'A', 'G')
$7E0099 8 bytes Misc. Game Over screen: Letter rotation values (X axis), 1 byte per letter, letters from right to left ('R', 'E', ... 'A', 'G')
$7E00A1 16 bytes Misc. Game Over screen: Letter X coordinates, 1 word per letter, from left to right ('G', 'A', .. 'E', 'R')
$7E00B1 16 bytes Misc. Game Over screen: Letter Y coordinates, 1 word per letter, from left to right ('G', 'A', .. 'E', 'R')
$7E00C1 2 bytes Misc. Game Over screen: Scale value (size) of letters
$7E00C3 2 bytes Misc. Game Over screen: Current option selected ($00 = yes, $02 = no)
$7E00C5 2 bytes Misc. Game Over screen: Rotational velocity of letters (both X and Y axes)
$7E00C8 2 bytes Timer Game Over screen: Frame timer (counts down) of waiting before letter rotation restarts
$7E00CA 2 bytes Timer Game Over screen: Frame timer (counts up until $0200) for how long to wait until options appear
$7E00CC 53 bytes Empty Unused RAM, cleared (with $00) during every loading screen
$7E0100 1 byte Empty This area never gets initialized or emptied.
$7E0101 15 bytes ASM Interrupt jumps: NMI jumps to $7E0108, IRQ to $7E010C
Copy of $008140-$00814E
$7E0111 7 bytes Empty This area never gets initialized or emptied.
$7E0118 2 bytes Misc. Game Mode. You can find the list of valid values here.
$7E011B 1 byte Misc. Full Game Mode completion flag

$00: Game Mode still running (set by NMI/IRQ)
$FF: Game Mode complete (set by end of game loop)
$7E011C 1 byte Misc. NMI & IRQ Mode
$00: Nintendo Logo
$02: Normal Level Mode
$04: Offset-per-tile Level Modes (1-7/6-4)
$06: Island Scenes
$08: Story Cutscene / Credits
$0A: Mode 7 bosses (Hookbill/Raphael)
$0C: World Map
$0E: Bonus & Bandit Games
$7E011D 2 bytes Misc. Mirror of hardware register $210D (BG1 Horizontal Scroll); since this register is write-twice, this is the full 16-bit mirror, it will write $7E011D and then $7E011E
$7E011F 2 bytes Coordinate Mirror of hardware register $210E (BG1 Vertical Scroll); since this register is write-twice, this is the full 16-bit mirror, it will write $7E011F and then $7E0120
$7E0121 1 byte Misc. Flag for level loading with stage intro text ($02 if true)
$7E0125 1 byte Misc. IRQ Counter
Expected values are 0 to 2
$7E0126 1 byte ASM Main IRQ Mode
$00: Default
$02: Story Cutscene
$04: Credits
$06: Bonus/Bandit Games
$7E012D 1 byte Super FX SCBR (register $3038) mirror, used by GSU init
$7E012E 1 byte Super FX SCMR (register $303A) mirror, used by GSU init
$7E012F 1 byte Debug (Used by debug routine at $0080F8) Frame advance flag: #$00 = disable frame advance, #$01 = enable frame advance
$7E0130 1 byte Debug (Used by debug routine at $0080F8) Frame advance timer: When L or R is pressed on Controller 2 and frame advance flag at $012F is set, skips game mode code and decrements once per frame until it reaches 0, then next frame runs game mode code for one frame.
Cleared when frame advance flag is set and neither L nor R is pressed on Controller 2.
$7E0131 2 bytes Timer Island: Frame counter
$7E0134 2 bytes Level Data Level header: Background color
$7E0136 2 bytes Level Data Level header: BG1 Tileset
$7E0138 2 bytes Level Data Level header: BG1 Palette
$7E013A 2 bytes Level Data Level header: BG2 Tileset
$7E013C 2 bytes Level Data Level header: BG2 Palette
$7E013E 2 bytes Level Data Level header: BG3 Tileset
$7E0140 2 bytes Level Data Level header: BG3 Palette
$7E0142 2 bytes Level Data Level header: Sprite Tileset
$7E0144 2 bytes Level Data Level header: Sprite Palette
$7E0146 2 bytes Level Data Level header: Level Mode
$7E0148 2 bytes Level Data Level header: Animation Tileset
$7E014A 2 bytes Level Data Level header: Animation Palette
$7E014C 2 bytes Level Data Level header: Background Scrolling
$7E014E 2 bytes Level Data Level header: Music
$7E0150 2 bytes Level Data Level header: Item Memory
$7E0152 2 bytes Level Data Level header: Unused
$7E015F 161 bytes ASM Reserved area for stack. This area never gets initialized or emptied (even upon reset / power on).
$7E0200 1 byte Misc. Screen brightness:
s000bbbb
s = black if set
b = brightness
$7E0201 1 byte Misc. Fade in/out mode
$01 = fade out
$00 = fade in
$7E0203 2 bytes Misc. Mirror of music level header + 1

Used as index for SPC block uploads
$7E0207 4 bytes Music SPC block indices that are currently loaded in ARAM
$7E0212 1 byte Bonus Challenge Bonus game ID:
$00: FLIP CARDS
$02: SCRATCH AND MATCH
$04: DRAWING LOTS
$06: MATCH CARDS
$08: ROULETTE
$0A: SLOT MACHINE
$7E0216 2 bytes Cutscene Flag: Final world unlocked
$7E0218 2 bytes Misc. Current world number (0000 = world 1, 0002 = world 2, etc.) NOTE: 000C isn't a world, but it's used in the final cinema sequence
$7E021A 2 bytes Level Number Current level number, NOTE: not translevel #, just the first level # loaded in from map
$7E0222 72 bytes Map Available tiles on map screen, one byte per level tile:
$00: unavailable
$01: beaten
$80: current (grayed out)
$7E026A 78 bytes Empty Unused RAM, cleared (with $00) via DMA during reset as well as before and after Nintendo logo
$7E02B8 72 bytes Map Current level high scores to be displayed on world map (one byte per level tile)
$7E030E 1 byte Misc. Current save file loaded:
$00: file 1
$02: file 2
$04: file 3
$7E030F 72 bytes Map Map screen tile graphics, 1-byte indices (local to current world loaded)
$7E0357 27 bytes Pause Screen Items in pause menu, one byte per ID:
$00: free slot
$01: +10 star
$02: +20 star
$03: POW
$04: full egg
$05: magnifying glass
$06: star cloud
$07: green melon
$08: blue melon
$09: red melon
$7E0372 2 bytes Misc. Tutorial message bitflags for 1-1 & 1-2:
bfm00000 00000000, b=first loss of Baby Mario in 1-1, f=first Flower received in 1-1, m=first Middle Ring in 1-2
$7E0379 2 bytes Misc. Current number of lives, 999 maximum
$7E037B 2 bytes Misc. Current number of coins
$7E037D 2 bytes Misc. Number of deaths in the current level (not translevel), 999 maximum
$7E037F 2 bytes Misc. Number of 1up's collected in the current level (not translevel), 999 maximum
$7E0383 2 bytes Sprite Palette Current Yoshi color, set on level select (goal Yoshi reads this as well):
$0000: Green
$0001: Pink
$0002: Yellow
$0003: Light Blue
$0004: Purple
$0005: Brown
$0006: Red
$0007: Dark Blue
$7E0385 2 bytes Bonus Challenge Flag for bonus challenge for end of level.
$0001 for no bonus.
$FFFF for bonus.
$7E038C 2 bytes Misc. Flag: warp to a different screen rather than start of stage
$7E038E 2 bytes Misc. Current screen exit (index into screen exit data)
$7E0394 2 bytes Timer Counter between ticks for star increase when stars are under 10
$7E0396 2 bytes Misc. Star count (*10) remaining to be auto-increased by (used by middle ring & items)
$7E0398 1 byte Pause Screen Item currently being used; same item indices as $7E0357
$7E039A 2 bytes Pause Screen Pause Item in continuous use.
Set by items such as star counter and egg fill to act as a pause until item finished use.

Cleared on item use.
$7E039C 1 byte Timer Frame counter during item use (after unpause)
$7E03A1 2 bytes Misc. first digit of star counter
$7E03A3 2 bytes Misc. second digit of star counter
$7E03A9 2 bytes Timer Frame counter for game modes $0D, $0E (during black cover sliding out), $0F, $10 (inside level, not score screen), and $11. Is paused during pause screen, and is reset upon entering stage and also upon star auto-increase (middle rings & +10 & +20 items).
$7E03AB 1 byte Misc. Flag: Star counter is below 9 (beeping/alarm sounds begin)
$7E03AC 2 bytes Misc. Flag: At least one middle ring has been used in current level (value will be number of middle rings used)
$7E03AE 2 bytes Misc. Flag: Boss has been visited before in current level, used to skip Kamek dialogue
$7E03B0 2 bytes Misc. Flag: Baby Bowser boss has been visited before in current level, used to skip Kamek introduction
$7E03B4 2 bytes Misc. Current number of red coins collected
$7E03B6 2 bytes Misc. Current star count * 10
$7E03B8 2 bytes Misc. Current number of flowers collected
$7E03BE 2 bytes Level Data Current Item Memory page (0-3)
$7E03C0 128 bytes Level Data Item Memory Page 0:
Vertical bitplane, each word represents a horizontal line (0 = not collected, 1 = collected)
$7E0440 128 bytes Level Data Item Memory Page 1:
Vertical bitplane, each word represents a horizontal line (0 = not collected, 1 = collected)
$7E04C0 128 bytes Level Data Item Memory Page 2:
Vertical bitplane, each word represents a horizontal line (0 = not collected, 1 = collected)
$7E0540 128 bytes Level Data Item Memory Page 3:
Vertical bitplane, each word represents a horizontal line (0 = not collected, 1 = collected)
$7E05C0 2 bytes Player Physics Current index into Yoshi delay buffers
$7E05C2 296 bytes Player Physics Yoshi X Coordinate delay buffer (2 bytes each): last 148 frames of where Yoshi's X was, used by egg inventory items to follow Yoshi
$7E06EA 296 bytes Player Physics Yoshi Y Coordinate delay buffer (2 bytes each): last 148 frames of where Yoshi's Y was, used by egg inventory items to follow Yoshi
$7E093C 1 byte Controller Controller 1 Data 1 (global):
AXLR----
A = A; X = X; L = L; R = R
$7E093D 1 byte Controller Controller 1 Data 2 (global):
byetUDLR
b = B; y = Y; e = Select; t = Start; U = up; D = down; L = left, R = right
$7E093E 1 byte Controller Controller 1 Data 1, on press/first frame (global):
AXLR----
A = A; X = X; L = L; R = R
$7E093F 1 byte Controller Controller 1 Data 2, on press/first frame (global):
byetUDLR
b = B; y = Y; e = Select; t = Start; U = up; D = down; L = left, R = right
$7E0940 1 byte Controller Controller 2 Data 1 (global):
AXLR----
A = A; X = X; L = L; R = R
$7E0941 1 byte Controller Controller 2 Data 2 (global):
byetUDLR
b = B; y = Y; e = Select; t = Start; U = up; D = down; L = left, R = right
$7E0942 1 byte Controller Controller 2 Data 1, on press/first frame (global):
AXLR----
A = A; X = X; L = L; R = R
$7E0943 1 byte Controller Controller 2 Data 2, on press/first frame (global):
byetUDLR
b = B; y = Y; e = Select; t = Start; U = up; D = down; L = left, R = right
$7E0944 1 byte Controller Previous frame controller 1 data 1 (what was previously in $7E093C), used for next frame's on press
$7E0945 1 byte Controller Previous frame controller 1 data 2 (what was previously in $7E093D), used for next frame's on press
$7E0946 1 byte Controller Previous frame controller 2 data 1 (what was previously in $7E0940), used for next frame's on press
$7E0947 1 byte Controller Previous frame controller 2 data 2 (what was previously in $7E0941), used for next frame's on press
$7E0948 2 bytes Misc. Word that stores each color channel's fixed color data intensity (mirror of $2132 for each channel):
0bbbbbgg gggrrrrr
b = blue channel intensity
g = green channel intensity
r = red channel intensity
$7E094A 1 byte Misc. Mirror of hardware register $420C
$7E094B 1 byte Misc. Mirror of hardware register $2101
$7E094C 1 byte Misc. Mirror of hardware register $212A
$7E094D 1 byte Misc. Mirror of hardware register $212B
$7E094E 1 byte Misc. Mirror of hardware register M7SEL ($211A)
$7E094F 2 bytes Misc. Mirror of hardware register M7A ($211B)
$7E0951 2 bytes Misc. Mirror of hardware register M7B ($211C)
$7E0953 2 bytes Misc. Mirror of hardware register M7C ($211D)
$7E0955 2 bytes Misc. Mirror of hardware register M7D ($211E)
$7E0957 2 bytes Misc. Mirror of hardware register M7X ($211F)
$7E0959 2 bytes Misc. Mirror of hardware register M7Y ($2120)
$7E095B 1 byte Misc. Mirror of hardware register $2106
$7E095E 1 byte Misc. Mirror of hardware register $2105
$7E095F 1 byte Misc. Mirror of hardware register $2107
$7E0960 1 byte Misc. Mirror of hardware register $2108
$7E0961 1 byte Misc. Mirror of hardware register $2109
$7E0962 1 byte Misc. Mirror of hardware register $210B
$7E0963 1 byte Misc. Mirror of hardware register $210C
$7E0964 1 byte Misc. Mirror of hardware register $2123
$7E0965 1 byte Misc. Mirror of hardware register $2124
$7E0966 1 byte Misc. Mirror of hardware register $2125
$7E0967 1 byte Misc. Mirror of hardware register $212C
$7E0968 1 byte Misc. Mirror of hardware register $212D
$7E0969 1 byte Misc. Mirror of hardware register $212E
$7E096A 1 byte Misc. Mirror of hardware register $212F
$7E096B 1 byte Misc. Mirror of hardware register $2130
$7E096C 1 byte Misc. Mirror of hardware register $2131
$7E0980 1 byte Timer Timer for updating Title Screen animation frames (title wavy effect, island rotating, sprite moving, etc). Each animation frame takes 4 frames to update.
$7E0B0F 1 byte Pause Screen Pause state:
$00: unpaused
$01-12: pause transition states
$13: in pause menu
$14: begin unpausing
$7E0B10 1 byte Pause Screen Flag for pause screen active - instantly turns on when pause pressed, instantly turns off when unpause pressed
$7E0B48 2 bytes Pause Screen Flag that indicates whether or not menu items are disabled.
$7E0B4C 2 bytes Misc. Screen X position of black curtain during player death scene; when it reaches $0400, it resets to $0000 and the Retry screen appears
$7E0B55 2 bytes Timer Mosaic Timer, and one of the many "game frozen" flags: gets set to $10 when touching a fuzzy and counts down once per frame. Controls the mosaic effect (mirrors $7E095B)
$7E0B67 2 bytes Timer Tileset Animation Timer
Different usage per mode
$7E0B7D 2 bytes Timer Idle frame counter; on >= $60 star counter is displayed
$7E0B7F 2 bytes Misc. Frame counter for how long to display the star counter (right after counter changes)
$7E0B81 1 byte Misc. Star counter position: $00 = left side, $01 = right side
$7E0B91 96 bytes Sprite Number 24 2-word entries, one sprite per:
Word 1: Sprite ID for sprite to turn into when sprite state is $0006
Word 2: Unused

Special Case:
Goal Ring uses Word 1 and 2 as a timer
$7E0C04 8 bytes Sprite Number Table of all current special sprites' ID's, 4 word-sized entries. $0000 is used as "none"; anything else is assumed to be an ID.
Special sprite ID is a relative ID computed by: (sprite ID) - $01B9
$7E0C1C 2 bytes Misc. Current autoscroll special sprite ID, 0 means no autoscroll active
$7E0C1E 2 bytes Misc. Flag: Autoscrolling currently active for camera X
$7E0C20 2 bytes Misc. Flag: Autoscrolling currently active for camera Y (1-E and 6-8 flag this off)
$7E0C22 4 bytes Misc. Current autoscroll camera X value
$7E0C26 4 bytes Misc. Current autoscroll camera Y value
$7E0C2A 2 bytes Misc. Current autoscroll X velocity
$7E0C2C 2 bytes Misc. Current autoscroll Y velocity
$7E0C2E 2 bytes Misc. Current autoscroll checkpoint (index into autoscroller_values table)
$7E0C30 2 bytes Misc. Next autoscroll checkpoint X value
$7E0C32 2 bytes Misc. Next autoscroll checkpoint Y value
$7E0C34 2 bytes Misc. Next autoscroll checkpoint speed value
$7E0C36 2 bytes Misc. Autoscroll: next checkpoint X - current camera X (how much is left to go)
$7E0C38 2 bytes Misc. Autoscroll: next checkpoint Y - current camera Y (how much is left to go)
$7E0C3A 2 bytes Misc. Flag: Currently active gusty generation
$7E0C3C 2 bytes Misc. Flag: Currently active Lakitu (at least 1)
$7E0C3E 2 bytes Misc. Flag: Currently active fuzzy generation
$7E0C44 2 bytes Misc. Previous camera X value used by fuzzy generator
$7E0C46 2 bytes Misc. Flag: Currently active Poochy
$7E0C48 2 bytes Misc. Flag: Currently active bat generation
$7E0C4A 2 bytes Misc. Current generated bat count
$7E0C4C 2 bytes Misc. Flag: Currently active unknown special sprite
$7E0C68 2 bytes Misc. Flag: Currently active Fire Lakitu (at least 1)
$7E0C6A 2 bytes Misc. Flag: Currently active Flutter generation
$7E0C6E 2 bytes Misc. Flag: Currently active Nipper Spore generation
$7E0C70 2 bytes Misc. Flag: Currently active balloon with pokey ball generation
$7E0C72 2 bytes Misc. Flag: Currently active balloon with missile generation
$7E0C74 2 bytes Misc. Flag: Currently active balloon generation
$7E0C76 2 bytes Misc. Flag: Currently active yellow platform generation
$7E0C78 2 bytes Misc. Flag: Currently active Slime Drop generation
$7E0C7C 2 bytes Misc. Flag: Currently active unknown special sprite 3
$7E0C7E 2 bytes Misc. Flag: Currently active unknown special sprite 4
$7E0C80 2 bytes Player Physics Tongue X position, relative to Yoshi
$7E0C82 2 bytes Player Physics Tongue Y position, relative to Yoshi
$7E0C98 24 bytes Sprite Number Sprite table, 24 entries, one byte per:
A copy of all sprites' states during camera events.
Used as flags to not despawn sprites during camera events (like stairs)
$7E0CB0 2 bytes Misc. Camera Y offset from shaking (either large or small)
$7E0CB2 2 bytes Misc. Falling wall is on-screen flag. Because the game puts two walls five spaces apart (one for the left and another for the right side), this one prevents the game from having two walls being occupied in the same spot. In addition, they use HDMA to draw their graphics and so two separate walls can't co-exist at the same time due to this reason.
$7E0CCC 2 bytes Timer Damage recoil timer, disables left and right if not zero.
$7E0CEC 2 bytes Timer ! switch timer, starts off at $0280, counts down
$7E0CFD 2 bytes Misc. Timer for offset-by-tile level modes
Controls for example moving platforms in 6-4
$7E0CFF 2 bytes Misc. Amplitude of fuzzy offset-per-tile sinewave
$7E0D01 2 bytes Misc. Positional offset of fuzzy offset-per-tile sinewave
$7E0D03 2 bytes Timer Current time value for fuzzy palette morphing effect
$7E0D05 1 byte Boss Raphael Boss fight rotation value
$00 to $FF (whole loop)
$7E0D09 2 bytes Misc. Background gradient Y scroll, lower part
$7E0D0B 2 bytes Misc. Background gradient Y scroll, upper part
$7E0D0F 1 byte Misc. Message box state:
$00: no message box
$01: init
$03: black box growing (opening)
$05: init message
$07: message fading in (from black)
$09: opened, player reading
$0B: message fading out (to black)
$0D: black box shrinking (closing)
$7E0D19 2 bytes Misc. Message Box: size of transitional black square as it grows
$7E0D21 6 bytes Misc. During stage clear transition/wipe, rectangle mask's screen coordinates:
Word 1: left X (low byte), right X (high byte);
Word 2: top Y
Word 3: bottom Y
$7E0D37 2 bytes Misc. Background wave effect (fuzzy): amplitude of horizontal wave
$7E0D39 2 bytes Misc. Background wave effect (fuzzy): amplitude of vertical wave
$7E0DAE 2 bytes Timer Frame counter for holding up while on ground, used for Baby Mario's animation frame, increments by 2 when holding but then on release decays by halving each frame
$7E0DB0 2 bytes Timer Frame counter for holding down while on ground, used for Baby Mario's animation frame, increments by 2 when holding but then on release decays by halving each frame
$7E0DF9 2 bytes Misc. Amount of wooden planks (sprites 0x5E and 0x5F) running.
$7E0E2F 1 byte Misc. 4 Red Toadies: counter of how many have grabbed Baby Mario
$7E0E31 1 byte Misc. 4 Red Toadies: counter of how many are currently active/spawned
$7E0E33 1 byte Misc. 4 Red Toadies: Currently active (at least one)
$7E0E37 16 bytes Coordinate 4 Red Toadies: Each Toadie's X positions (4 total) relative to the 4 Toadies base sprite, one toadie per entry:
Byte 1: Subpixel
Byte 2: Position
Byte 3: Screen #
Byte 4: Spillage from carry add for screen
$7E0E49 16 bytes Coordinate 4 Red Toadies: Each Toadie's Y positions (4 total) relative to the 4 Toadies base sprite, one toadie per entry:
Byte 1: Subpixel
Byte 2: Position
Byte 3: Screen #
Byte 4: Spillage from carry add for screen
$7E0FBD 2 bytes Timer Mirror of $701974 (frame counter) only when Green spiked platform (sprites $15F) is active.
$7E0FBF 2 bytes Timer Mirror of $701974 (frame counter) only when Red spiked platform (sprite $160) is active.
$7E105C 1 byte Boss Raphael the Raven: Y coordinate (relative to moon surface)
$7E105D 1 byte Boss Raphael the Raven: X coordinate (relative to wrapping around moon)
$7E105E 2 bytes Boss Bigger Boo: scale
Raphael the Raven $7E105E: how far Yoshi is from Raphael (X coordinate around moon)
Raphael the Raven $7E105F: current AI state ($00 - $14)
$7E1060 1 byte Timer Raphael the Raven: timer value - used to control timings of AI events. Decrements each frame, gets reset to either random values or specific values on state changes.
$7E1062 1 byte Boss Raphael the Raven: Facing - $00 for counterclockwise, $02 for clockwise;
Baby Bowser: hit counter, fight ends when the low byte reaches $03 (or any value from $03 to $82).
$7E1066 1 byte Boss Bigger Boo: flag for taking damage (growing)
$7E1068 2 bytes Boss Big Bowser: Z coordinate (depth)
$7E106C 2 bytes Boss Big Bowser: horizontal position.
Raphael the Raven: Y velocity
$7E1070 2 bytes Boss Big Bowser: index for summoning boulders, increments by 2 each boulder, ending in $0008 in the first summon and $000E in the second.
$7E1074 2 bytes Boss Big Bowser: flag indicating he is being hit by an egg right now, instantly clears
$7E1076 2 bytes Boss Hookbill: graphics scaling value (X axis)
Bowser: damage counter, fight ends at $0007
$7E1078 2 bytes Boss Hookbill: graphics scaling value (Y axis)
$7E1082 2 bytes Boss Naval Piranha: health, starts with #$0003, dies on #$0000
$7E10DA 2 bytes Player Physics Debug flag for free Yoshi movement
$7E1109 1 byte Coordinate World Map: Cursor X-position
$7E110A 1 byte Coordinate World Map: Cursor Y-position
$7E110C 1 byte Coordinate World Map: Cursor next X-position to be reached
$7E110D 1 byte Coordinate World Map: Cursor next Y-position to be reached
$7E1112 1 byte Level Number World Map: current level/option slot. Sets the level index ($7E021A) if you select one.
$7E1117 1 byte Map World Map: Current World selected * 2. Sets the world number ($7E0218).
$7E1125 2 bytes Map Current Yoshi formation in world map. Values follow world number ($7E0218) format.
$7E112E 2 bytes Map World Map: Current Yoshi selected (which one Baby Mario is mounted), changes when you move between normal levels, not special, bonus, nor options.
$7E11B6 2 bytes Timer Beginning story cutscene: Number of frames left (counts down) to display current text before fading out
$7E11B8 2 bytes Misc. Beginning story cutscene state:
$01 = load next text (into fade in)
$02 = fade in text
$03 = display text (normal)
$04 = load next text (into scroll)
$05 = scroll down to next text part
$06 = fade out text
$7E11BA 2 bytes Misc. Beginning story cutscene: Current text (index by 2's into $0FCD56)
$7E11BC 2 bytes Misc. Beginning story cutscene: BG4 tilemap VRAM destination (for DMA of text)
$7E11BE 576 bytes Layer 4 Tilemap Beginning story cutscene: All possible BG4 tilemap data (text), split into 64-byte chunks which are loaded into VRAM as new text comes in
$7E13FE 1 byte Misc. Beginning story cutscene: Current Y scroll destination (index by 2's into $0FCE90)
$7E1404 1 byte Misc. Beginning story cutscene: Frame timing for current scene/text shown (index into cutscene timer table $0FCEDB)
$7E1405 2 bytes Timer Frame timer (counts down) for beginning story cutscene and rotating island; upon 0, it will fade into the other one (endlessly switching until you load file select menu)
$7E1409 1488 bytes Empty Unused RAM, cleared (with $00) via DMA during reset as well as before and after Nintendo logo

NOTE: There's a bug in level loading of Burts Boss room (only room?) where it will do an unintentional read of $7E15A5 (word sized) and use it as a tile. But it's never written to.
$7E1E00 832 bytes Empty Unused RAM, cleared (with $00) via DMA during reset as well as before and after Nintendo logo
$7E2340 7360 bytes Empty Unused RAM, cleared (with $00) via DMA during reset as well as before and after Nintendo logo
$7E4000 2 bytes Misc. Tilemap Bytes until next free entry in tilemap DMA queue
$7E4002 2046 bytes Misc. Tilemap Reserved area for VRAM tilemap DMA queue, processed every frame, split into variable-sized entries, let e = one entry:
e[0:1]: xvvv vvvv vvvv vvvv
x = End of queue marker
v = VRAM destination/source address
e[2:3]: vidt tttt tttt tttt
t = transfer size - 1 (can also act as entry size)
v = column transfer (32 byte increase if set, otherwise 1)
i = Does a fixed transfer if set (init data)
d = Direction, does a read of VRAM if set (otherwise write)

if d == 1 (Read Tilemap):
Read from VRAM address and write to destination
e[4:6]: Long Destination address to write to

if d == 0 and i == 0 (Write Tilemap):
Write to VRAM address using data from entry
e[4:t]: Data to DMA, size same as t

if d == 0 and i == 1 (Init Tilemap):
Write to VRAM address floodfill using data from entry
e[4:5]: Word data to repeat t times

(Queue size doesn't go beyond 182 bytes in vanilla game so roughly 1864 bytes of this are "free")
$7E4800 2 bytes Pointer Address of last entry in general-purpose DMA queue
$7E4802 2110 bytes Misc. Reserved area for general-purpose DMA queue, split into 12-byte entries, let e = one entry:
e[0:1]: VRAM destination address
e[2]: video port control
e[3]: DMA control
e[4]: DMA destination register
e[5:7]: long source address
e[8:9]: DMA size
e[A:B]: address of next entry in queue
(Doesn't go beyond $4999 in vanilla gameplay, so roughly 1700 bytes of this are "free")
$7E5040 420 bytes Misc. HDMA Table for BG3 Vertical scroll (register $2112), OR when OPT is enabled, writes to BG2 Horizontal scroll (register $210F) instead:
1 word entries from top of actual screen to bottom (minus black bars), representing each scanline
$7E51E4 420 bytes Misc. HDMA Table for BG3 Horizontal scroll (register $2111), OR when OPT is enabled, writes to BG2 Vertical scroll (register $2110) instead:
1 word entries from top of actual screen to bottom (minus black bars), representing each scanline
$7E56D0 840 bytes Misc. HDMA Table for Window 1 & 2 ($2126-$2129)
4 bytes per entry, from top of actual screen to bottom (minus black bars), representing each scanline:
Byte 1: Window 1 Left Position
Byte 2: Window 1 Right Position
Byte 3: Window 2 Left Position
Byte 4: Window 2 Right Position
$7E5A18 128 bytes Misc. HDMA Indirect Table 0, native SNES HDMA Indirect format, 3-byte entries:
Byte: rccccccc r = repeat, c = scanline count
Word: Source pointer
$7E5A98 128 bytes Misc. HDMA Indirect Table 1 (format)
$7E5B18 128 bytes Misc. HDMA Indirect Table 2 (format)
$7E5B98 128 bytes Misc. HDMA Indirect Table 3 (format)
Default for Channel 4 (BG3 V-scroll (BG2 for OPT))
$7E5C18 128 bytes Misc. HDMA Indirect Table 4 (format)
Commonly used for Channel 3 (BG3 H-scroll (BG2 for OPT))
$7E5C98 128 bytes Misc. HDMA Indirect Table 5 (format)
Commonly used for Channel 2 (green & red channel of background gradient)
$7E5D18 128 bytes Misc. HDMA Indirect Table 6 (format)
Commonly used for Channel 1 (blue channel of background gradient)
$7E5D98 2 bytes Misc. Number of bytes Yoshi's in-between level egg inventory items take up (# of items * 2)
$7E5D9A 12 bytes Misc. Egg inventory items stored in between levels (not current eggs), 6 words, each one is a sprite ID
$7E5DA6 2048 bytes Misc. Cross sections: Full copy of cross section BG3 tile graphics, set only once upon loading cross section levels and then every frame stored to $706800

Chomp Shark: BG3 tilemap animations
$7E65A6 2048 bytes Layer 1 Tilemap BG1 left tilemap mirror used for cross section graphical masking effect (free RAM if not using cross section BG3 header $0A)
$7E6DA6 1024 bytes Layer 1 Tilemap BG1 right tilemap mirror used for cross section graphical masking effect (free RAM if not using cross section BG3 header $0A)
$7E71A6 1024 bytes Layer 1 Tilemap Overlap between $7E6DA6 and $7E75A6, both tilemaps are actually 2048 bytes and this acts as either one depending on when (free RAM if not using cross section BG3 header $0A)
$7E75A6 1024 bytes Layer 3 Tilemap BG3 tilemap mirror (VRAM $3400) used for cross sections (free RAM if not using cross section BG3 header $0A)
$7EB8E2 1822 bytes Empty Unused RAM, cleared (with $00) via DMA during reset as well as before and after Nintendo logo
$7EC000 16384 bytes ASM Copy of $00C000-$00FFFF (Code is never executed with the data bank as $00 for this range; it's always $7E)
$7F0000 22238 bytes Empty Unused RAM, cleared (with $00) via DMA during reset as well as before and after Nintendo logo
$7F56DE 438 bytes Object Palette Blue channel of background gradient ($2132 COLDATA)
Covers entire sublevel (NOT just screen) from top to bottom, one byte per entry, representing every eighth X pixel row in sublevel
$7F5894 876 bytes Object Palette Green & Red channel of background gradient ($2132 COLDATA)
Covers entire sublevel (NOT just screen) from top to bottom, two bytes per entry, representing every eighth X pixel row in sublevel:
Byte 1: Green Channel
Byte 2: Red channel
$7F7E00 512 bytes Level Data All screen exit data for current level, in screen region order ($00-$7F), 4 bytes per exit:

LLLLLLLL XXXXXXXX YYYYYYYY EEEEEEEE
L = Destination Level (between 00 and DD)
X = Destination X-Coordinate
Y = Destination Y-Coordinate
E = Destination Entrance Type (this follows the same format as $7000AC, Yoshi state)
$7F8000 32768 bytes Layer 1 Tilemap Table that holds all foreground MAP16 tile data for the entire sublevel currently loaded. Split up by screen ID's then further into row-major tile #. Data is word-sized MAP16 indices.
SRAM Address Length Type Description Details
$700000 112 bytes Super FX Scratch RAM, used like "registers" for various operations on the Super FX, also used as additional parameters to Super FX routines
$700070 1 byte Controller Controller Data 1 (for gamemode 0F):
AXLR----
A = A; X = X; L = L; R = R
$700071 1 byte Controller Controller Data 2 (for gamemode 0F):
byetUDLR
b = B; y = Y; e = Select; t = Start; U = up; D = down; L = left, R = right
$700072 1 byte Controller Controller Data 1, on press/first frame (for gamemode 0F):
AXLR----
A = A; X = X; L = L; R = R
$700073 1 byte Controller Controller Data 2, on press/first frame (for gamemode 0F):
byetUDLR
b = B; y = Y; e = select; t = Start; U = up; D = down; L = left, R = right
$700076 2 bytes Sound Effect Mirror of $7E0051 (register $2141) for GSU player control routine, used for transformations
$70007A 2 bytes Sound Effect Super FX sound ID, returned by GSU to push into sound queue (play a sound effect)
$700082 1 byte Controller Controller settings ($00 = patient; $02 = hasty)
$70008A 2 bytes Misc. Yoshi's X subpixel position (high byte is spillage)
$70008C 2 bytes Misc. Yoshi's X position
$70008E 2 bytes Misc. Yoshi's Y subpixel position (high byte is spillage)
$700090 2 bytes Misc. Yoshi's Y position
$700092 2 bytes Misc. Pointer to next free slot in OAM buffer
$700094 2 bytes Misc. Layer 1 Camera X
$700096 2 bytes Misc. Layer 2 Camera X
$700098 2 bytes Misc. Layer 3 Camera X
$70009A 2 bytes Misc. Layer 4 Camera X
$70009C 2 bytes Misc. Layer 1 Camera Y
$70009E 2 bytes Misc. Layer 2 Camera Y
$7000A0 2 bytes Misc. Layer 3 Camera Y
$7000A2 2 bytes Misc. Layer 4 Camera Y
$7000A4 2 bytes Misc. X position of the leftmost tiles on the screen
$7000A6 2 bytes Misc. Y position of the uppermost tiles on the screen
$7000A8 2 bytes Misc. Previous frame Yoshi's X velocity
$7000AA 2 bytes Misc. Yoshi's Y velocity
$7000AC 2 bytes Misc. Yoshi state:
$0000: Regular (player control)
$0002: Cutscenes; screen transition (pipe going right)
$0003: In screen transition (pipe going left)
$0004: In screen transition (pipe going down); in prologue cutscene (Baby Mario mounted)
$0005: In screen transition (pipe going up)
$0006: Entering/exiting pipe; in transition (pipe going right)
$0007: In screen transition (pipe going left)
$0008: In screen transition
$0009: In screen transition
$000A: Entering door
$000E: Dying from spike
$0010: Transforming
$0012: Smashed by falling wall (sprite $036)
$0014: Activating goal
$0016: During level intro
$0018: Being thrown toward baby mario at end of transformation
$001A: Dying in pit / inside piranha plant / receiving boss key / shrinking during Prince Froggy
$001C: During prologue cutscene
$001E: Pushed away in Raphael Cutscene
$0020: Entering Raphael Boss room (moon)
$0022: Entering keyhole during boss key cutscene
$0028: Dying from lava
$002A: Being ejected vertically (after transition)
$7000AE 2 bytes Misc. Yoshi form:
$0000: Yoshi
$0002: Car Yoshi
$0004: Mole Yoshi
$0006: Helicopter Yoshi
$0008: Train Yoshi
$000A: Mushroom Yoshi (Beta)
$000C: Sub Yoshi
$000E: Ski Yoshi
$0010: Super Baby Mario
$0012: Plane Yoshi (Beta)
$7000B0 2 bytes Misc. Yoshi's X position relative to camera
$7000B2 2 bytes Misc. Yoshi's Y position relative to camera
$7000B4 2 bytes Misc. Yoshi's X velocity
$7000B6 2 bytes Misc. Angle of ground Yoshi is on
$7000B8 2 bytes Misc. Angle of terrain slope that Yoshi's top is colliding with
$7000BA 2 bytes Misc. Angle of terrain slope that Yoshi's middle part is colliding with
$7000BC 2 bytes Misc. Angle of terrain slope that Yoshi's bottom part is colliding with
$7000BE 2 bytes Misc. Yoshi's current animation frame
$7000C0 2 bytes Player Physics Yoshi's jump state:
$0006: Jumping
$0007: Peak of jump
$0008: Falling
$7000C2 2 bytes Player Physics Yoshi's ducking state:
$0000: not ducking
$0001-$0004: mid-duck / mid-duck release
$0005: fully ducked
$7000C4 2 bytes Misc. Yoshi facing direction ($0000: right, $0002: left)
$7000C6 2 bytes Player Physics Yoshi swimming state:
$0000: not swimming
$0001: landing in water, no player control
$0002: feet up briefly after landing
$0003: swimming
$7000CC 1 byte Misc. Direction player last accelerated from input:
$00: not moving
$01: right
$02: left
$7000CE 2 bytes Flag $004C: Player is holding Up while on ground, $0000 not
$7000D2 1 byte Misc. Yoshi fluttering state:
$00: After a flutter, midair
$01: Not in a flutter chain: resets to this upon hitting ground or ceiling
$02: Begin flutter
$04, $06, $08: Mid-flutter states
$7000D3 1 byte Flag $80: extended fluttering, $00 not
$7000D4 2 bytes Misc. Ground pound state:
$0001~$0006: init states
$0007: falling
$0008~$000B: hitting the ground
$000C: fully on ground, other actions enabled
$7000D6 2 bytes Misc. Frame counter for holding Down button in air to ground pound. When it reaches $0007, ground pound will initiate. Set to $FFFF when pressing down on ground
$7000DA 2 bytes Player Physics Yoshi's stair state/counter, counts down/up in between steps on stairs (only high byte is used):
$0800 to $0100 for left-facing stairs
$F800 to $FF00 for right-facing stairs
$7000DC 2 bytes Misc. Frame counter for pushing yourself against a wall / a pushable sprite. The pushing animation starts at $10, and it loops at $23. NOTE: For pushable sprites, the entire range is +1 so starts at $01, $11 is animation, stops at $24.
$7000DE 2 bytes Misc. Egg throwing state (decrements over time):
$0007~$000A: init
$0006: cursor out, ready to throw
$0001~$0005: has been thrown
$0000: not throwing
$7000E0 2 bytes Misc. Egg cursor distance from Yoshi:
Byte 1: Subpixels
Byte 2: Pixels
$7000E4 2 bytes Misc. Egg cursor X position

When spitting an enemy this is used together with player speed to set enemy X-speed
$7000E6 2 bytes Misc. Egg cursor Y position

When spitting an enemy this is used subtracted with constant $0200 to set enemy y-speed
$7000E8 2 bytes Misc. Frame counter for holding the Down button to cancel egg throw (up to $0007 then it cancels)
$7000EA 2 bytes Flag $FFFF = Egg cursor locked with L/R, $0000 = not locked
$7000EC 2 bytes Flag Egg aiming flag:
$FFFF: Have eggs, can aim
$0000: No eggs, can't aim
$0002: In water, can't aim
$7000EE 2 bytes Misc. Egg cursor angle, ranges from $0000 = lowest, to $2E00 = highest
$7000F0 2 bytes Misc. Angular velocity of egg cursor (fixed point)
$7000F2 2 bytes Misc. How much Yoshi is stumbling during fuzzied state, starts at $00 and increments or decrements by $02 until threshold point, then begins stumbling:
$001A: stumble forward threshold
$FFE6: stumble backward threshold
$7000F4 2 bytes Misc. Direction Yoshi is currently leaning during fuzzied state, relative to Yoshi's current facing:
$0002: forward
$FFFE: backwards
$7000F6 2 bytes Misc. Yoshi idle animation state:
$0000: Stepping in place
$0002: Blinking
$0004: Scratching nose
$0006: Turning around
$7000F8 2 bytes Misc. Running animation state:
alternates between $0000 and $0002 while running
pre/post-run: $0000 - $0012, increments by $02
$7000FA 2 bytes Misc. Current ground type Yoshi is on:
$0000: Ground
$0001: Water
$0002: ????
$0003: Ice
$0004: Snow
$0005: Mud
$7000FC 2 bytes Misc. Player collision with MAP16 terrain, format: 0000000L lRrTtBMb
L = left, head
l = left, body
R = right, head
r = right, body
T = top, left half
t = top, right half
B = bottom, left third
M = bottom, middle third
b = bottom, right third
$7000FE 2 bytes Misc. Player collision with water, same format as $7000FC
$700100 2 bytes Misc. Player collision with cross section tiles, same format as $7000FC
$700102 2 bytes Flag $0001 when on a Spiky Stake ($0000 means not)
$700104 2 bytes Misc. Current door exit type:
$0000: Regular door / boss door
$0100: Sewer pipe hole (like in 4-E)
$FFFF: Bandit mini-game door
$700106 1 byte Misc. Pipe entrance/exit transition type:
$02 = Going right
$04 = Going left
$06 = Going down
$08 = Going up
$700107 1 byte Misc. Pipe entrance/exit transition type:
$00 = Vertical, going in pipe
$40 = Vertical, coming out of pipe
$80 = Horizontal, going in pipe
$C0 = Horizontal, coming out of pipe
$700108 2 bytes Misc. Distance Yoshi has travelled so far in vertical/horizontal pipe entrance transition, in pixels & subpixels ($ppss), fade & exit begins at $1F00 for both (NOTE: for horizontal it's basically a constant $0080 increase)
$70010A 2 bytes Misc. Yoshi's vertical pipe entrance animation state:
$0001-$0006: going down a pipe
$0001-$0009: going up a pipe
$70010C 2 bytes Misc. Yoshi's vertical pipe entrance acceleration: $0100 = 1 subpixel, low byte is subsubpixels
$70010E 2 bytes Misc. Before entering pipe: Yoshi's horizontal distance from vertical pipe entrance
During pipe entrance transition: Current horizontal position of pipe entrance
$700110 2 bytes Misc. While walking on mud/snow: Mirror of $7000F8, used for generating mud/snow particles
While sliding on mud: Distance slid, wraps around at $1FFF, used to generate mud splashes
$700112 2 bytes Misc. Car transformation wheel extension height, increments by 2, maxes at $0030
$700114 2 bytes Misc. Address of ROM graphics (bank $52) to DMA into VRAM at $4200-$43FF:
-Yoshi's tongue
-Yoshi egg during Super Star Mario
-Yoshi during bubble transformation
$700118 2 bytes Sprite Tilemap Pointer to "above" layer's OAM in OAM buffer
$70011A 2 bytes Sprite Tilemap Sprite priority # for "above" layer (sprites that show above Yoshi)
$70011C 2 bytes Misc. Center of Yoshi X position (Yoshi X + Yoshi width / 2)
$70011E 2 bytes Misc. Center of Yoshi Y position (Yoshi Y position + Yoshi height / 2)
$700120 2 bytes Misc. Yoshi's hitbox half width
$700122 2 bytes Misc. Yoshi's hitbox half height
$700124 2 bytes Player Tilemap Yoshi's OAM palette, ----ccc- part of yxppccct (OAM low table byte 4)
$700126 2 bytes Player Tilemap Yoshi's OAM priority, --pp---- part of yxppccct (OAM low table byte 4)
$700128 32 bytes Player Tilemap Yoshi & star counter graphics DMA queue, first 6 entries are Yoshi, last 2 are star counter number graphics, 4 bytes per:
Bytes 1-3: Long source address to DMA from; aa aa bb (a = address, b = bank) for top row DMA
Byte 4: high byte of address + 2, for bottom row DMA
$70014E 2 bytes Misc. Transformation state:
$0000: Not transforming
$700150 2 bytes Misc. Mouth state:
$00: doing nothing
$01: tongue horizontally growing or spitting
$02: tongue horizontally retracting
$03: tongue vertically growing or spitting
$04: tongue vertically retracting
$07, $0B, $0F, $13, $17, $1B, $1F, $23: States of swallowing non-egg sprites (star, nipper seed, coin, etc.)
$2F, $33, $37, $3B, $3F, $43, $47, $4B: States of swallowing egg-forming sprites
$700152 2 bytes Player Physics Tongue X length in pixels
$700154 2 bytes Player Physics Tongue Y height in pixels
$700156 2 bytes Player Physics Yoshi's X tongue position, relative to camera
$700158 2 bytes Player Physics Yoshi's Y tongue position, relative to camera
$70015A 2 bytes Misc. Yoshi's X tongue position
$70015C 2 bytes Misc. Yoshi's Y tongue position
$70015E 2 bytes Misc. Blocked Tongue States (e.g. tonguing walls)
Values $00 to $0F
$700160 2 bytes Misc. Inedible Tongue state (e.g. tonguing sprites like piranhas / chomp rocks)
Starts at $0014 and decrements until $0002. Zeroes out when tongue retracts.
$700162 2 bytes Misc. When Yoshi catches an enemy or item (e.g. melon, egg) with his tongue, this is set to the sprite slot value. The value stays so until Yoshi either eats or spits out the enemy or has used the item. This SRAM gets cleared immediatley if the enemy or item in question is inedible.
$700168 2 bytes Misc. Current sprite slot index (+1) being tongued/in mouth - sign bit turns on when unable to swallow
$70016A 2 bytes Misc. Type of ammunition in mouth:
$0001: Fire melon
$0002: Bubble
$0003: Green watermelon
$0004: Ice melon
$70016C 2 bytes Misc. Timer for duration of spitting a projectile, starts at $0000 and increments up to:
Watermelon seed: $0008
Fire melon: $002A
Ice melon: $0038
Bubble: $0018
$70016E 2 bytes Misc. Timer for intentional game freeze while tonguing a watermelon
$700170 2 bytes Misc. Ammunition count in mouth:
Bubble decrements 10 each spit, watermelon decrements 1 each spit, ice and fire melons decrement 10 each spit
$700172 2 bytes Misc. For ice and fire melons: X position of where flame/ice was spat
For watermelon seeds: # of seeds spat in succession during holding Y (loops from 0 to 6 then back to 0)
$700174 2 bytes Misc. Ice and fire melons: Y position of where ice/flame was spat
$70017A 1 byte Cutscene The value in it is stored in Controller Data 1 during cutscenes.
$70017B 1 byte Cutscene The value in it is stored in Controller Data 2 during cutscenes.
$70017C 1 byte Cutscene The value in it is stored in Controller Data 1, one frame during cutscenes.
$70017D 1 byte Cutscene The value in it is stored in Controller Data 2, one frame during cutscenes.
$70017E 2 bytes Player Physics Car Yoshi: left wheel X position

All other transformations: Rotation angle (mario low byte only)
$700180 2 bytes Player Physics Transformation value:
Helicopter: Rotation speed when hit. Starts at $1000, decreases by $20 each frame until $0700

Submarine: Rotation angle when hit. Starts at $0000, increments by $10 each frame until $0800

Train: Size counter when entering track. Starts at $00FF, decrements one per frame until $0070

Car: X-position in pixels

Super Baby Mario: $0007 when running on ground allowing for vertical climb

Mole: Orientation of vehicle:
$0000: 0°
$0001: 90°
$0002: 180°
$0003: 270°

Ski Yoshi: Snowball State, starts at $0080 when hit and increases by 2 every frame on the ground until value reaches $0100
$700182 2 bytes Player Physics Car Yoshi: right wheel X position

Helicopter: Animation frame (0-3) (turning around)
$700184 2 bytes Player Physics Car Yoshi left wheel Y position
$700188 2 bytes Player Physics Car Yoshi right wheel Y position
$700198 2 bytes Player Physics Transformation value:
Car: Y position of player / car
Super Baby Mario: Y scale, normalized at $0100
$7001AE 2 bytes Flag Disables control & animation of Yoshi
$7001B0 2 bytes Flag Disables updating & animation of sprites
$7001B2 2 bytes Misc. Baby Mario state info (set up like bit flags but never more than 1 on simultaneously):
$0000: Off of Yoshi, floating & crying
$2000: Super Baby Mario / Bonus challenge Mario
$4000: Seized by toadies/bandits/frogs
$8000: Riding Yoshi
$7001B4 2 bytes Flag Currently on a platform sprite (Chomp rock, Hint block, rotating platforms, etc.) - also counts the total number currently standing on
$7001B6 2 bytes Sprite Number Slot of platform sprite that Yoshi is on. Does not apply to every platform sprite, for example it does for some moving sprites such as Pinwheels, Chomp Rock, Poochy, Flatbed Ferries, Lakitu clouds etc., but not for Hint Blocks, Donut Lifts etc.
$7001B8 2 bytes Flag Previous frame's value of $7001B4
$7001BC 2 bytes Sprite Physics Where the water line starts for sprite physics
Only used for BG3 tilesets $13 (value $07B0) and $1D ($0700)
Value is left at $4000 when disabled
This doesn't affect regular water objects, only hardcoded water for certain BG3 tilesets.

$ssyy
ss = vertical screen number
yy = Y-position of water line
$7001C6 2 bytes Misc. Timer/index into camera Y offset table for small camera shaking (used by ground pounds, big egg ground impact, etc.)
$7001C8 2 bytes Misc. Timer/index into camera Y offset table for large camera shaking (used for falling chain chomps, chasing chain chomp hitting wall, etc.)
$7001CA 2 bytes Layer 1 Tilemap Special Offset-By-Tile Modes
$00: None (normal)
$01: Level Mode 2 (1-7, 6-4, 6-3)
$03: When Fuzzied
$05: Unused
$7001D0 2 bytes Misc. Timer for Yoshi's turning pose.
Starts at #$0004 when you change direction while in movement (ground or air), remains with this value for a brief time if you keep holding this direction until it starts decrementing each frame.
$7001D2 2 bytes Misc. Timer for each walking (not running) animation frame.
$7001D4 2 bytes Misc. Timer for each animation frame of the landing, start of falling and fluttering.
$7001D6 2 bytes Misc. Invincibility timer (starts at $00A0 on hit and decrements)
$7001D8 2 bytes Misc. Timer for each Yoshi idle animation state.
$7001DC 2 bytes Misc. Timer for bopping head in solid blocks animation. It's the exact time with zero y speed during the bop.
$7001DE 2 bytes Misc. Timer for ground pounding animation.
$7001E0 2 bytes Misc. Timer for mouth/tongue related animations.
$7001E2 2 bytes Misc. Egg throwing state timer
$7001EA 2 bytes Timer Particle generation timer for mud & snowy trees, initially set to $08 and zero means spawn in (if conditions met)
$7001EE 2 bytes Misc. Timer for sprite in Yoshi's mouth to be automatically swallowed. Starts off at $04B0 upon sprite entering mouth (even for inedible ones like the shell), counts down to $0000
$7001F4 2 bytes Misc. Transformation timer, counts down
$700200 2048 bytes Misc. OAM buffer. Split into 256 4-word entries, each one representing a possible entry in OAM:

Word 1: Screen-relative X coordinate (low byte copied into byte 1 of OAM low table mirror entry)
Word 2: Screen-relative Y coordinate (low byte copied into byte 2 of OAM low table mirror entry)
Word 3: Copied into OAM low table mirror entry bytes 3 & 4 (see OAM low table mirror $700A00 for details)
Word 4: -p----sx------sx, p = priority (0=forward, 1=reverse), s = size, x = 9th x bit (low byte copied into high table buffer entry)

NOTE: First 16 sprites are reserved for high priority items such as text and these are NOT handled by this buffer, thus copying begins at $700A40 for low table mirror and $700C30 for high table buffer.

Copying will continue until either the last entry of the OAM low table mirror ($700BFC) or the last entry of this buffer ($7009F8).
$700244 2 bytes Player Physics Yoshi's X subpixel position on a spinning wooden platform, unaffected by the rotation.
$700246 2 bytes Player Physics Yoshi's X position on a spinning wooden platform, unaffected by the rotation.
$700A00 512 bytes Misc. OAM low table mirror. 4-byte entries with format xxxxxxxx yyyyyyyy tttttttt yxppccct (x = X coordinate, y = Y coordinate, t = tile number, c = palette 0-7, p = priority, x&y = flip)
$700C00 32 bytes Misc. OAM high table mirror. 2 bits per entry, most significant X and size flag.
$700C20 128 bytes Misc. OAM high table buffer. Each entry is one byte which corresponds with one OAM entry. The 2 lowest bits of the byte get copied into the high table mirror ($700C00-$700C1F) and shifted into the correct spot for the entry.
$700CA0 2 bytes Map Island angle. Only low byte is used.
$700CAA 128 bytes Misc. Screen ID table: maps raw screen # ($00-$7F) to screen ID ($00-$3F). The sign bit on indicates "empty" screen (has no object at all), or camera is unable to scroll into the screen due extended object $FE, or tiles are erased in that screen by extended object $FF.
$700DAA 64 bytes Misc. BG1 - Left half of newest column spawned in, 32 SNES VRAM tilemap words, stored as a column but DMA'd to VRAM with increments of $40 to get to the next row each write and line up properly
$700DEA 64 bytes Misc. BG1 - Right half of newest column spawned in, 32 SNES VRAM tilemap words, stored as a column but DMA'd to VRAM with increments of $40 to get to the next row each write and line up properly
$700E2A 68 bytes Misc. BG1 - Top half of newest row spawned in, 34 SNES VRAM tilemap words, split into two separate DMA's - one for tilemap 1, one for tilemap 2
$700E6E 68 bytes Misc. BG1 - Bottom half of newest row spawned in, 34 SNES VRAM tilemap words, split into two separate DMA's - one for tilemap 1, one for tilemap 2
$700EB6 1 byte Misc. Spriteset file # 1 ($F7 index)
$700EB7 1 byte Misc. Spriteset file # 2 ($F8 index)
$700EB8 1 byte Misc. Spriteset file # 3 ($F9 index)
$700EB9 1 byte Misc. Spriteset file # 4 ($FA index)
$700EBA 1 byte Misc. Spriteset file # 5 ($FB index)
$700EBB 1 byte Misc. Spriteset file # 6 ($FC index)
$700EBC 2 bytes Misc. Previous frame X coordinate of sprite currently being processed
$700EBE 2 bytes Misc. Previous frame Y coordinate of sprite currently being processed
$700EC0 64 bytes Sprite Table 16 4-byte entries, one ambient sprite per:
Word 1: Flag for whether it exists currently or not (usually $000E for active)
Word 2: $0000
$700F00 96 bytes Sprite Table 24 4-byte entries, one sprite per:
Word 1: Sprite state
$0000: nonexistent (used for skipping processing)
$0002: newly spawned
$0004: same as $02?
$0006: pop sprite (turn into other sprite based on this table)
$0008: in yoshi's tongue and/or mouth
$000A: riding Yoshi
$000C: colliding
$000E: yoshi head bop
$0010: active / alive
$0012: burning to death from lava/fire melon

Word 2: Angle of ground that the sprite is walking on
$700F60 64 bytes Sprite Table 16 4-byte entries, one ambient sprite per:
bitwise flags:
Byte 1: ????????
Byte 2: ??
Byte 3: terrain collision flags
Byte 4: ??
$700FA0 96 bytes Sprite Table 24 4-byte entries, one sprite per:
Byte 1: tc?hhhhh
t = Can be tongued (into mouth)
c = Tongue collision is ignored
h = hitbox setting (index into hitbox tables)
Byte 2: ??
Byte 3: terrain collision flags
Byte 4: ??
$701000 64 bytes Sprite Table 16 4-byte entries, one ambient sprite per:
Byte 1: ????ddmm

d = Index into despawning x,y threshold table (00 means no despawning)
m = drawing method index

Byte 2: Count/# of bytes taken up in OAM buffer
Byte 3: Partial OAM low table mirror
yx00ccc0 (c = palette 0-7, x&y = flip)
Note: X-flip and Y-flip is conventionally set by facing direction

Byte 4: ??
$701040 96 bytes Sprite Table 24 4-byte entries, one sprite per:
Byte 1: sf?bddmm

s = automatic swallow
f = can be frozen
b = can be burned by flame
d = Index into despawning x,y threshold table (00 means no despawning)
m = drawing method index

Byte 2: Count/# of bytes taken up in OAM buffer
Byte 3: Partial OAM low table mirror
yx00ccc0 (c = palette 0-7, x&y = flip)
Note: X-flip is conventionally set by facing direction

Byte 4: ??
$7010A0 64 bytes Sprite Table 16 4-byte entries, one ambient sprite per:
Ambient Sprite X coordinates, format:
Byte 1: 00
Byte 2: X subpixel
Byte 3: X pixel
Byte 4: X screen
$7010E0 96 bytes Sprite Table 24 4-byte entries, one sprite per:
Sprite X coordinates, format:
Byte 1: Sprite priority override flag (puts sprite farthest back if $40)
Byte 2: X subpixel
Byte 3: X pixel
Byte 4: X screen
$701140 64 bytes Sprite Table 16 4-byte entries, one ambient sprite per:
Ambient Sprite Y coordinates, format:
Byte 1: 00
Byte 2: Y subpixel
Byte 3: Y pixel
Byte 4: Y screen
$701180 96 bytes Sprite Table 24 4-byte entries, one sprite per:
Sprite Y coordinates, format:
Byte 1: Index into OBJ Tiles (override)
Byte 2: Y subpixel
Byte 3: Y pixel
Byte 4: Y screen
$7011E0 64 bytes Sprite Table 16 2-word entries, one ambient sprite per:
Word 1: X speed
Word 2: Y speed
$701220 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: X speed
Word 2: Y speed
$701280 64 bytes Sprite Table 16 2-word entries, one ambient sprite per:
Word 1: X delta, or pixels moved since last frame (curr X - prev X)
Word 2: Y delta, or pixels moved since last frame (curr Y - prev Y)
$7012C0 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: X delta, or pixels moved since last frame (curr X - prev X)
Word 2: Y delta, or pixels moved since last frame (curr Y - prev Y)
$701320 64 bytes Sprite Table 16 2-word entries, one ambient sprite per:
Word 1: Ambient sprite ID (list of valid values with their names)
Word 2: Pointer to first entry within OAM buffer
$701360 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: Sprite ID (list of valid values with their names)
Word 2: Pointer to first entry within OAM buffer
$7013C0 64 bytes Sprite Table 16 2-word entries, one ambient sprite per:
Word 1: Facing/direction: 00000yx0
y = Y flip
x = X flip
Word 2: Current animation frame
$701400 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: Facing/direction: 00000yx0
y = Y flip
x = X flip
Note: Y-flip conventionally set by OAM mirror

Word 2: Current animation frame
(High byte is used as a special flag for shyguys when spat upwards)
$701460 64 bytes Sprite Table 16 4-byte entries, one ambient sprite per:
Byte 1: Stage-wide ID (is always $FF as ambient sprites do not respawn)
Byte 2: Background layer # of ambient sprite (unused?)
Byte 3: Ambient Sprite Prioirty (0-7) - higher means further back - $FF used to disable drawing
Byte 4: 00 (unused)
$7014A0 96 bytes Sprite Table 24 4-byte entries, one sprite per:
Byte 1: Stage-wide ID ($FF means no respawn)
Byte 2: Background layer # of sprite
Byte 3: Sprite Prioirty (0-7) - higher means further back - $FF used to disable drawing
Byte 4: 00 (unused)
$701500 64 bytes Sprite Table 16 2-word entries, one ambient sprite per:
Word 1: X acceleration (e.g. gravity, friction)
Word 2: Y acceleration
$701540 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: X acceleration (e.g. gravity, friction)
Word 2: Y acceleration
$7015A0 64 bytes Sprite Table 16 2-word entries, one ambient sprite per:
Word 1: X acceleration ceiling (max speed for acceleration to apply)
Word 2: Y acceleration ceiling
$7015E0 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: X acceleration ceiling (max speed for acceleration to apply)
Word 2: Y acceleration ceiling
$701640 64 bytes Sprite Table 16 2-word entries, one ambient sprite per:
Word 1: X coordinate relative to camera
Word 2: Y coordinate relative to camera
$701680 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: X coordinate relative to camera
Word 2: Y coordinate relative to camera
$7016E0 64 bytes Sprite Table 16 2-word entries, one ambient sprite per:
Word 1: vertical terrain collision offset in pixels (signed)
Word 2: Index into reserved dynamic tiles table, often used for SuperFX graphics ($FFFF means disabled) (unused for ambient sprites?)
$701720 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: vertical terrain collision offset in pixels (signed)
Word 2: Index into reserved dynamic tiles table, often used for SuperFX graphics ($FFFF means disabled)
$701780 64 bytes Sprite Table 16 2-byte and 1-word entries, one ambient sprite per:
Byte 1: 00
Byte 2: Timer, used for whatever that sprite needs. (unused in game?)
Word 2: Timer, zero removes ambient sprite (every sprite?). Often used for duration of each animation.
$7017C0 96 bytes Sprite Table 24 4-byte entries, one sprite per:
Yoshi collision information:
Byte 1: ??
Byte 2: Timer, used for whatever that sprite needs. Only sprite timer active during pause flags. (unused in game?)
Byte 3: $00: Yoshi is to the left of the sprite; $02: Yoshi is to the right of the sprite
Byte 4: $00: Yoshi is above the sprite; $02: Yoshi is below the sprite
$701820 64 bytes ASM 16 4-byte entries, one ambient sprite per:
Byte 1: ???????G (on ground flag)
Byte 2: ??
Byte 3: init $FF, ?
Byte 4: init $1F, ?
$701860 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: Terrain collision flags,
???????? ????LRUD, high byte is unused;
L = Left
R = Right
U = Up
D = Down
Word 2: Lava and water collision flag
???????? ??LW???
L = Lava
W = Water
$7018C0 64 bytes Sprite Table Wildcard table; 4 bytes per ambient sprite to be used as each one pleases (never initialized or cleared on spawn)
$701900 96 bytes Sprite Table Wildcard table; 4 bytes per sprite to be used as each one pleases.
$701970 2 bytes Misc. Random number generator (RNG) address, adds horizontal & vertical scanlines per sprite per frame
$701972 2 bytes Misc. Sprite slot # of sprite being currently processed
$701974 2 bytes Timer Frame counter, only counts when sprites are being processed - includes gamemodes $07, $0C (only in level fade-in), $0E, $0F, $10 (inside level, not score screen), $15, $39
Controls tileset animation
$701976 96 bytes Sprite Table Wildcard table; 4 bytes per sprite to be used as each one pleases. Commonly used for AI state, graphical state, or other purposes.
$7019D6 96 bytes Sprite Table Wildcard table; 4 bytes per sprite to be used as each one pleases. Common usages:
Byte 1: AI state
Byte 2: Index for which Super FX graphic/animation frame
Byte 3: "Next" animation frame
Byte 4: Custom per sprite
$701A36 96 bytes Sprite Table 24 2-word entries, one sprite per:
Super FX morphing values to be used as each Super FX sprite needs, most common is scale then rotation.
$701A96 96 bytes Sprite Table 24 2-word entries, one sprite per:
Each word is a timer, used for whatever that sprite needs. Common uses are AI and skeletal animations.
Pages: « 1 2 3 » 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


Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

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