Language…
12 users online: Anas, Cracka, Disk Poppy, drkrdnk, FireSeraphim, fsvgm777, Ghast_500, katun24, mendikusai, Super Wario Man, The Cheater, Zavok - Guests: 135 - Bots: 118
Users: 68,104 (2,174 active)
Latest user: Ghast_500

YI Memory Map

Displaying 50 out of 305 addresses.

View: moderated | waiting (27)

Filter

Link
RAM Address Length Type Description Details
$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)