Language…
5 users online: Dan2point5, Ginnb0b, monkey03297, prisvag, Skewer - Guests: 56 - Bots: 105
Users: 67,562 (2,002 active)
Latest user: Dilshacking

YI Memory Map

Displaying 50 out of 286 addresses.

View: moderated | waiting (27)

Filter

Link
SRAM Address Length Type Description Details
$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.
$701AF6 96 bytes Sprite Table 24 2-word entries, one sprite per:
Each word is a timer, used for whatever that sprite needs. (Additional general purpose timers if needed)
$701B56 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: X offset for hitbox center
Word 2: Y offset for hitbox center
$701BB6 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: Width of hitbox from center (both sides)
Word 2: Height of hitbox from center (top & bottom)
$701C16 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: X distance from Yoshi (+ means to the right of Yoshi)
Word 2: Y distance from Yoshi (+ means below Yoshi)
$701C76 96 bytes Sprite Table 24 2-word entries, one sprite per:
Word 1: On collision with another sprite, X delta from that sprite (this X - that X)
Word 2: On collision with another sprite, Y delta from that sprite (this Y - that Y)