Skip to content

WRAM Map

Bruno Valadão Cunha edited this page Jul 13, 2024 · 18 revisions

The Super Nintendo Entertainment System has 128kb of system RAM (aka WRAM) that every game can access, spanning from $7E0000~$7FFFFF. This map explains what each address represents in Yoshi's Island standard gameplay gamemode $0F. In Yoshi's Island in particular, since it has the Super FX enhancement chip, much of the game's memory is stored in cartridge RAM instead. This is why there is so much free WRAM in this game. Nonetheless, there are still some pretty important pieces of data stored here.

Address  Length  Type Description
$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 ($7E0059), capacity is 7
$7E0059 16 bytes Sound Effect Sound effect queue, NOT all sounds currently playing, but instead all sound IDs (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
$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 Challenges & Bandit Mini Battles
$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 Challenges/Bandit Mini Battles
$7E0127 1 byte Misc. Which tilemap queue to DMA. Default $00 (RAM queue). Values $00 to $0C
$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
$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 Challenge 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 80 bytes Map Available tiles on map screen, 12 bytes per world, one byte per level tile:
$00: unavailable
$01: beaten
$80: current (grayed out)
NOTE: The last 8 bytes are theoretically from World 7, they are read when the player press right on the World 6 tab.
$7E0272 70 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, $7F7E00)
$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
$7E03A7 1 byte Misc. Current Bandit Mini Battle:
$00: Throwing Ballons (4)
$02: Throwing Ballons (5)
$04: Throwing Ballons (6)
$06: Shy Guys shooting coins [UNUSED]
$08: Gather Coins
$0A: Popping Ballons (fixed platforms)
$0C: Popping Ballons
$0E: Missile/Bombarding [UNUSED]
$10: Train chase [UNUSED]
$12: Watermelon Seed Spitting Contest
$14: Watermelon Seed Spitting Contest (2P)
$16: Throwing Balloons (4, 2P)
$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 frame
Different usage per mode
$7E0B6D 2 bytes Timer Tileset animation timer, updates $7E0B67
$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 ($700F00) 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)
$7E0CCC 2 bytes Timer Damage recoil timer, disables left and right if not zero
$7E0CCE 2 bytes Timer Timer for unkown reason, it's set to #$10 when you bop an enemy
$7E0CEC 2 bytes Timer ! switch timer, starts off at $0280, counts down
$7E0CF4 1 byte Pause Screen Current highlighted item slot in pause menu, can be only 1, 2 or 3
$7E0CF5 1 byte Pause Screen Current "page" of items in pause menu, value between 0 and 24
$7E0CF6 3 bytes Pause Screen Item id for each slot in the current "page" of items in pause menu
$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
$7E0D27 2 bytes Misc. Enable flag for subscreen designation HDMA?? (1-3 stage) ($7E5040)
$7E0D2B 2 bytes Misc. Enable flag for BG2 Horizontal Scroll HDMA ($7E5040)
$7E0D2D 2 bytes Misc. Enable flag for BG2 Vertical Scroll HDMA ($7E51E4)
$7E0D37 2 bytes Misc. Background wave effect (fuzzy): amplitude of horizontal wave
$7E0D39 2 bytes Misc. Background wave effect (fuzzy): amplitude of vertical wave
$7E0D3B 2 bytes Misc. Enable flag for BG3 Horizontal Scroll and subscreen designation HDMA (ch 6 & 7)?? (Pond submarine sections) ($7E552C)
$7E0D3D 2 bytes Misc. Enable flag for BG3 Horizontal Scroll HDMA ($7E51E4)
$7E0D45 2 bytes Misc. Enable flag for BG3 Vertical Scroll HDMA ($7E5040)
$7E0D4D 1 byte Misc. Current screen ID being loaded/filled, during level loading (while setting $700CAA)
$7E0D4E 64 bytes Misc. Table that is filled by screen IDs in order from #$00 to #$3F, it has some purpose during level loading
$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
$7E0DB2 2 bytes Coordinate Baby Mario's target Y position when taking hit, it will rise until reaches this coordinate, then it will randomly fly around
$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
$7E10DE 2 bytes Misc. Bonus Challenges: Subroutine pointer index (2 bytes)
$7E10E0 2 bytes Misc. Bonus Challenges: Timer for some subroutines (2 bytes)
Mini Battles: Background changing effect X position (2 bytes)
$7E10E2 2 bytes Misc. Bonus Challenges: "BONUS CHALLENGE" lettering palette cycle (2 bytes)
Mini Battles: Background changing effect phase (2 bytes)
$7E10E4 2 bytes Misc. Bonus Challenges: "BONUS CHALLENGE" purple spiked panel palette cycle (2 bytes)
Mini Battles: Timer to end the Mini Battle (2 bytes)
$7E10E6 2 bytes Misc. Bonus Challenges: Bonus panel (BG1/BG2) Y subposition delta in last frame (2 bytes)
Mini Battles: Flag for YOU LOSE scene?
$7E10E8 2 bytes Misc. Bonus Challenges: Bonus panel (BG1/BG2) Y position delta in last frame (2 bytes)
Gather Coins: Yoshi's coins (2 bytes)
$7E10EA 2 bytes Misc. Bonus Challenges: $10EA += $10E6 (2 bytes)
Gather Coins: Bandit's coins (2 bytes)
$7E10EC 2 bytes Misc. Bonus Challenges: Bonus panel (BG1/BG2) bounce speed index (2 bytes)
Gather Coins: Time, the game ends it reaches 00 (2 bytes)
$7E10EE 2 bytes Misc. Gather Coins: Timer to update the time, starts at 3F, decrementing every frame (2 bytes)
$7E10F0 2 bytes Misc. Bonus Challenges: Yoshi state pointer index (00 = nothing, 02 = throwing egg, 04 = celebrating, 06 = losing, 08 = thinking, 0A = thinking) (2 bytes)
$7E10F2 1 byte Misc. Flip Cards: Last slot selected, where the card will flip
Watermelon Seed Spitting Contest: Flag for multiplayer mode
$7E10F3 1 byte Misc. Flip Cards: Last card id revealed
Match Cards: Last card id revealed
$7E10F4 2 bytes Misc. Flip Cards: Card horizontal scale (flipping) (2 bytes)
Match Cards: Card horizontal scale (flipping) (2 bytes)
Popping Balloons: Flag to freeze Yoshi
$7E10F5 1 byte Misc. Popping Balloons: Flag to freeze Bandit
$7E10F6 1 byte Misc. Flip Cards: Target X position
Scratch and Match: Cursor X position
Drawing Lots: Cursor X position
Match Cards: Target X position
Roulette: Cursor/Target X position (unused)
$7E10F7 1 byte Misc. Flip Cards: Target Y position
Scratch and Match: Cursor Y position
Drawing Lots: Cursor Y position
Match Cards: Target Y position
Roulette: Cursor/Target Y position (unused)
$7E10F8 2 bytes Misc. Flip Cards: Target moving direction (00 = standing still, 01 = left, 02 = right, 03 = up, 04 = down)
Match Cards: Target moving direction
Watermelon Seed Spitting Contest: Bandit status pointer id? (2 bytes)
Gather Coins: Result: 01 = YOU WIN, 02 = YOU LOSE
$7E10F9 7 bytes Misc. Flip Cards: Items got (7 bytes)
$7E10FA 2 bytes Misc. Mini Battles: Flag for item taken (2 bytes)
$7E10FC 1 byte Misc. Watermelon Seed Spitting Contest: Timer to start winning fanfare
Gather Coins: Timer to start winning fanfare
$7E10FE 2 bytes Misc. Throwing Balloons: Balloon Super FX horizontal stretch (2 bytes)
Watermelon Seed Spitting Contest: Amount of available watermelons
$7E1100 2 bytes Misc. Flip Cards: How many items got, indexes to writing the next slot at $10F9
Throwing Balloons: Balloon Super FX vertical stretch (2 bytes)
Popping Balloons: Related to the solidity of the left moving platform
Watermelon Seed Spitting Contest: Yoshi HP (2 bytes)
$7E1102 2 bytes Misc. Flip Cards: Lives to be added if you win any
Throwing Balloons: Balloon Super FX rotation (unused) (2 bytes)
Popping Balloons: Related to the solidity of the right moving platform
Watermelon Seed Spitting Contest: Bandit HP (2 bytes)
$7E1104 8 bytes Misc. Flip Cards: Item slots (8 bytes)
Drawing Lots: Item slots (6 bytes)
Popping Balloons: Flag for "taking damage" (2 bytes)
Watermelon Seed Spitting Contest: Type of melon Bandit has: 07 = green melon, 09 = red melon
$7E1106 2 bytes Misc. World Map: world transition "switch flag". Changes between #$00 and #$01 each time you change the world
Popping Balloons: X offset for Yoshi relative to Bandit (2 bytes)
Watermelon Seed Spitting Contest: Bandit spits left count (2 bytes)
$7E1107 1 byte Misc. World Map: world transition state as seen from the level board. Scrolls start closing when it reaches #$54
$7E1108 2 bytes Misc. Popping Balloons: X offset for aimed balloon relative to Bandit (2 bytes)
Watermelon Seed Spitting Contest: Number of seeds/flames remaining to be spat in succession by Bandit (2 bytes)
$7E1109 2 bytes Misc. World Map: Cursor current coordinate (2 bytes)
$7E110A 2 bytes Misc. Popping Balloons: X offset for aimed platform relative to Bandit (2 bytes)
Watermelon Seed Spitting Contest: Flag for Bandit spitting (2 bytes)
$7E110C 2 bytes Misc. World Map: Cursor next coordinate to be reached (2 bytes)
Popping Balloons: Y offset for Yoshi relative to Bandit (2 bytes)
$7E110D 1 byte Misc. Flip Cards: Target current column
$7E110E 2 bytes Misc. World Map: SuperFX rotation angle for level tile currently selected (2 bytes)
Flip Cards: Target current row
Popping Balloons: Y offset for aimed balloon relative to Bandit (2 bytes)
$7E1110 2 bytes Misc. World Map: SuperFX scale for level tile currently being revealed or selected (2 bytes)
Scratch and Match: Cursor local X subposition? while scratching
Popping Balloons: Y offset for aimed platform relative to Bandit (2 bytes)
$7E1111 1 byte Misc. Scratch and Match: Cursor local X position while scratching
$7E1112 2 bytes Misc. World Map: Current level/option slot. Sets the level index ($7E021A) if you select one
Scratch and Match: Cursor local Y subposition? while scratching
Popping Balloons: X absolute offset for Yoshi relative to Bandit (2 bytes)
$7E1113 1 byte Misc. World Map: Timer for each animation frame of the sparkle when the player select a level
Scratch and Match: Cursor local Y position while scratching
$7E1114 2 bytes Misc. World Map: Current animation frame of the sparkle when the player select a level
Scratch and Match: Current slot
Drawing Lots: Current slot
Popping Balloons: X absolute offset for aimed balloon relative to Bandit (2 bytes)
$7E1115 7 bytes Misc. Scratch and Match: Item slots (00 = Toadie, 03 = Baby Mario) (7 bytes)
Drawing Lots: Item indexes (6 bytes)
$7E1116 2 bytes Misc. Popping Balloons: X absolute offset for aimed platform relative to Bandit (2 bytes)
$7E1117 1 byte Misc. World Map: Current world hovered over * 2. Sets the world number ($7E0218) when the player select
$7E1118 2 bytes Misc. World Map: State of world map functions, like world transitions, score display, controller config, etc. Used as index to world map action pointers ($17C813)
Popping Balloons: Y absolute offset for Yoshi relative to Bandit (2 bytes)
$7E111A 2 bytes Misc. Popping Balloons: Y absolute offset for aimed balloon relative to Bandit (2 bytes)
$7E111C 2 bytes Misc. World Map: Frame counter for how long the player is holding left or right. Once hits #$0F the cursor starts changing faster between levels
Scratch and Match: Current scratch phase
Drawing Lots: Card opening phase (2 bytes)
Popping Balloons: Y absolute offset for aimed platform relative to Bandit (2 bytes)
$7E111D 1 byte Misc. Scratch and Match: Number of boxes scratched
$7E111E 7 bytes Misc. Scratch and Match: Scratched flag slots (7 bytes)
Popping Balloons: Aimed "Yoshi sprite slot"?? Always 00
$7E1120 1 byte Misc. Popping Balloons: Aimed balloon sprite slot *4
$7E1122 1 byte Misc. Popping Balloons: Aimed moving platform sprite slot *4
$7E1124 2 bytes Misc. Popping Balloons: X offset for current Bandit aiming (2 bytes)
$7E1125 2 bytes Misc. Current Yoshi formation in world map. Values follow world number ($7E0218) format (2 bytes)
Scratch and Match: Score, or amount of Baby Marios gotten
$7E1126 2 bytes Misc. Slot Machine: Tumbler #00 item #00
Popping Balloons: Y offset for current Bandit aiming (2 bytes)
$7E1127 1 byte Misc. Slot Machine: Tumbler #00 item #01
$7E1128 2 bytes Misc. Slot Machine: Tumbler #00 item #02
Popping Balloons: X absolute offset for current Bandit aiming (2 bytes)
$7E1129 1 byte Misc. Slot Machine: Tumbler #00 item #03
$7E112A 2 bytes Misc. Slot Machine: Tumbler #01 item #00
Popping Balloons: Y absolute offset for current Bandit aiming (2 bytes)
$7E112B 1 byte Misc. Slot Machine: Tumbler #01 item #01
$7E112C 1 byte Misc. Slot Machine: Tumbler #01 item #02
Popping Balloons: Sprite slot *4 for current Banding aiming
$7E112D 1 byte Misc. Slot Machine: Tumbler #01 item #03
$7E112E 2 bytes Misc. World Map: Current Yoshi selected (which one Baby Mario is mounted), changes when you move between normal levels, not special, bonus, nor options (2 bytes)
Slot Machine: Tumbler #02 item #00
Popping Balloons: Bandit sprite slot *4
$7E112F 1 byte Misc. Slot Machine: Tumbler #02 item #01
$7E1130 2 bytes Misc. Slot Machine: Tumbler #02 item #02
Popping Balloons: Balloons popped (2 bytes)
$7E1131 1 byte Misc. Slot Machine: Tumbler #02 item #03
$7E1132 1 byte Misc. Slot Machine: Tumbler #00 items "rotation" subposition
Popping Balloons: Default Super FX rotation for the balloons (always 00)
$7E1133 1 byte Misc. Slot Machine: Tumbler #00 items "rotation" position
$7E1134 2 bytes Misc. Slot Machine: Tumbler #01 items "rotation" subposition
Popping Balloons: Super FX horizontal stretch for the balloons (2 bytes)
$7E1135 1 byte Misc. Slot Machine: Tumbler #01 items "rotation" position
$7E1136 2 bytes Misc. Slot Machine: Tumbler #02 items "rotation" subposition
Throwing Balloons: Balloon enabled/disabled when popping
Popping Balloons: Super FX vertical stretch for the balloons (2 bytes)
$7E1137 1 byte Misc. Slot Machine: Tumbler #02 items "rotation" position
$7E1138 1 byte Misc. Slot Machine: Tumbler #00 "rotation" subspeed
$7E1139 1 byte Misc. Slot Machine: Tumbler #00 "rotation" speed
$7E113A 2 bytes Misc. Slot Machine: Tumbler #01 "rotation" subspeed
Popping Balloons: Something related to Super FX animation (2 bytes)
$7E113B 1 byte Misc. Slot Machine: Tumbler #01 "rotation" speed
$7E113C 1 byte Misc. Slot Machine: Tumbler #02 "rotation" subspeed
$7E113D 1 byte Misc. Slot Machine: Tumbler #02 "rotation" speed
$7E113E 2 bytes Misc. Slot Machine: Tumbler #00 selected slot
Popping Balloons: Bandit X position (2 bytes)
$7E113F 1 byte Misc. Slot Machine: Tumbler #01 selected slot
$7E1140 2 bytes Misc. Slot Machine: Tumbler #02 selected slot
Popping Balloons: Bandit Y position (2 bytes)
$7E1141 1 byte Misc. Slot Machine: Current tumbler
$7E1142 2 bytes Misc. World Map: scrolls closing/opening state in transitions, goes up to #$001F (2 bytes)
Slot Machine: Tumbler #00 deceleration phase
Popping Balloons: Yoshi X position (2 bytes)
$7E1143 1 byte Misc. Slot Machine: Tumbler #01 deceleration phase
$7E1144 2 bytes Misc. World Map: left scroll position
Slot Machine: Tumbler #02 deceleration phase
Throwing Balloons: Yoshi animation timer
Popping Balloons: Yoshi Y position (2 bytes)
$7E1145 1 byte Misc. World Map: right scroll position
Slot Machine: ?? Some frame counter after tumbler #00 is selected
$7E1146 1 byte Misc. Slot Machine: ?? Some frame counter after tumbler #01 is selected
Throwing Balloons: Bandit animation timer
$7E1147 1 byte Misc. Slot Machine: ?? Some frame counter after tumbler #02 is selected
$7E1148 2 bytes Misc. Flip Cards: Shots done, you get the max prize if you reach 7 without getting Kamek
Scratch and Match: Lives to be added if you win any (2 bytes)
Match Cards: Amount of correct pairs (2 bytes)
Roulette: Lives to be added if you win any
Slot Machine: Lives to be added if you win any
$7E114A 1 byte Misc. Slot Machine: Tumbler #00 selected flag
$7E114B 1 byte Misc. Slot Machine: Tumbler #01 selected flag
$7E114C 1 byte Misc. Slot Machine: Tumbler #02 selected flag
Throwing Balloons: Loser stars animation timer
$7E114E 2 bytes Misc. Match Cards: Lives to be added if you win (2 bytes)
Slot Machine: Tumbler #00 separators "rotation" subposition
$7E114F 1 byte Misc. Slot Machine: Tumbler #00 separators "rotation" position
$7E1150 1 byte Misc. Slot Machine: Tumbler #01 separators "rotation" subposition
$7E1151 1 byte Misc. Slot Machine: Tumbler #01 separators "rotation" position
$7E1152 1 byte Misc. Slot Machine: Tumbler #02 separators "rotation" subposition
$7E1153 1 byte Misc. Slot Machine: Tumbler #02 separators "rotation" position
$7E1154 1 byte Misc. Match Cards: Current slot. Also is used during the card show off, to go through all the cards
Throwing Balloons: Yoshi animation frame
$7E1155 1 byte Misc. Match Cards: When moving the cursor up or down, it tells if the cursor should go to diagonal left (FF), straight (00), or diagonal right (01)
$7E1156 14 bytes Misc. Match Cards: Item slots (14 bytes)
Throwing Balloons: Bandit animation frame (2 bytes)
$7E115C 1 byte Misc. Throwing Balloons: Loser stars animation frame
$7E1164 2 bytes Misc. Match Cards: Cards flipped in current attempt
Throwing Balloons: Balloon size, increases 1 unit per 4 frames, it pops when reaches #$01FF (2 bytes)
$7E1165 1 byte Misc. Roulette: Roulette status (00 = not started, 01 = spinning, 02 = calculating, 03 = giving lives)
$7E1166 1 byte Misc. Roulette: Current slot of the left roulette
Throwing Balloons: Timer for Bandit finishing its inputs
$7E1167 1 byte Misc. Roulette: Current slot of the right roulette
$7E1168 2 bytes Misc. Roulette: Counter step of the left roulette (00 = super fast, 01 = super slow, FF = super fast)
Throwing Balloons: Frame counter for balloon deformation phase (2 bytes)
$7E1169 1 byte Misc. Roulette: Counter step of the right roulette
$7E116A 1 byte Misc. Roulette: Counter to advance slot for the left roulette
Throwing Balloons: Balloon deformation phase
$7E116B 1 byte Misc. Roulette: Counter to advance slot for the right roulette
$7E116C 2 bytes Misc. Roulette: Current slot (graphically) of the left roulette?
Throwing Balloons: Input timer, starts at #$B4, decrementing every frame (2 bytes)
$7E116D 1 byte Misc. Roulette: Current slot (graphically) of the right roulette?
$7E116E 2 bytes Misc. Roulette: Timer for picking the definitive slot for the left roulette
Throwing Balloons: Amount of correct inputs, for both Yoshi and Bandit (2 bytes)
$7E116F 1 byte Misc. Roulette: Timer for picking the definitive slot for the right roulette
$7E1170 2 bytes Misc. Throwing Balloons: Amount of inputs -1 for this mode (2 bytes)
$7E1172 2 bytes Misc. Throwing Balloons: Timer for Bandit's input #0 (2 bytes)
$7E1174 2 bytes Misc. Throwing Balloons: Timer for Bandit's input #1 (2 bytes)
$7E1176 2 bytes Misc. Throwing Balloons: Timer for Bandit's input #2 (2 bytes)
$7E1178 2 bytes Misc. Roulette: Lives bet, it's the first number of the expression
Throwing Balloons: Timer for Bandit's input #3 (2 bytes)
$7E1179 1 byte Misc. Roulette: Result ones digit
$7E117A 2 bytes Misc. Roulette: Result tens digit
Throwing Balloons: Timer for Bandit's input #4 (2 bytes)
$7E117B 1 byte Misc. Roulette: Result hundreds digit
$7E117C 2 bytes Misc. Roulette: Result (2 bytes)
Throwing Balloons: Timer for Bandit's input #5 (2 bytes)
$7E117E 2 bytes Misc. Throwing Balloons: Input #0 graphics id (00 = right, 12 = left, 24 = down, 36 = up, 48 = B, 5A = Y, 6C = A, 7E = X) (2 bytes)
$7E117F 1 byte Misc. Roulette: Flag for result fanfare
$7E1180 2 bytes Misc. Roulette: Timer before result fanfare
Throwing Balloons: Input #1 graphics id (2 bytes)
$7E1182 2 bytes Misc. Throwing Balloons: Input #2 graphics id (2 bytes)
$7E1183 1 byte Misc. Roulette: Flag for pressed to stop roulette
$7E1184 2 bytes Misc. Match Cards: Amount of mistakes, if reaches 02 the bonus ends (2 bytes)
Throwing Balloons: Input #3 graphics id (2 bytes)
$7E1186 2 bytes Misc. Throwing Balloons: Input #4 graphics id (2 bytes)
$7E1188 2 bytes Misc. Throwing Balloons: Input #5 graphics id (2 bytes)
$7E118A 2 bytes Misc. Slot Machine: Timer to star giving lives (2 bytes)
Throwing Balloons: Timer for wrong input (2 bytes)
$7E118E 2 bytes Misc. Flip Cards: Related to 10up card flipping (2 bytes)
Throwing Balloons: Amount of "subframes" for the timer bar to advance 1 unit graphically
$7E118F 1 byte Misc. Throwing Balloons: Amount of frames for the timer bar to advance 1 unit graphically
$7E1190 2 bytes Misc. Flip Cards: Related to 10up card flipping (2 bytes)
$7E1192 2 bytes Misc. Match Cards: Card revealed by the first egg, following the IDs from $1156. Also ID of current hiding card during card show off
Throwing Balloons: Input timer, graphically (2 bytes)
$7E1193 1 byte Misc. Match Cards: ID of next hiding card during card show off
$7E1194 1 byte Misc. Match Cards: Card revealed by the first egg, following the IDs from $1156
Throwing Balloons: Offset for current controller, #00 = player 1, #04 = player 2
$7E1196 1 byte Misc. Match Cards: Slot hit by the first egg. Also is used during the card show off, indicating which slot is being hidden
$7E1198 1 byte Misc. Match Cards: Slot hit by the second egg
$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)
$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 ($7E5A18 format)
$7E5B18 128 bytes Misc. HDMA Indirect Table 2 ($7E5A18 format)
$7E5B98 128 bytes Misc. HDMA Indirect Table 3 ($7E5A18 format)
Default for Channel 4 (BG3 V-scroll (BG2 for OPT))
$7E5C18 128 bytes Misc. HDMA Indirect Table 4 ($7E5A18 format)
Commonly used for Channel 3 (BG3 H-scroll (BG2 for OPT))
$7E5C98 128 bytes Misc. HDMA Indirect Table 5 ($7E5A18 format)
Commonly used for Channel 2 (green & red channel of background gradient)
$7E5D18 128 bytes Misc. HDMA Indirect Table 6 ($7E5A18 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 (in what format?).
$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.
Clone this wiki locally