The current URL is datacrystal.tcrf.net.
EarthBound/Map Tile Animation Data
This is a sub-page of EarthBound.
Map Tile Animation Data | |
Game | EarthBound |
Start Address | 0x7E43DC |
End Address | 0x7E445B |
# of Entries | up to 8 |
Entry Length | 16 bytes(0x10) |
Total Length | 128 bytes (0x80) |
Back to the RAM map |
Stored/cached metadata concerning tile animation for the current map tileset.
Format
Tilesets may have a variable number of tile animation entries for concurrent animations. EarthBound allocates space for up to 8 entries, but no tileset seems to use more than 6.
Num Animation Cycles
- Length: 2 bytes
- Offset within entry: 0x00
- Range of values: 1-256 (0x0001-0x0100)
The number of different animation frames that the animation will cycle through. As EarthBound allocates space for up to 256 decompressed tile characters for animation, that is the maximum number of cycles if only one tile character is replaced on each animation cycle.
Frame Delay
- Length: 2 bytes
- Offset within entry: 0x02
- Range of values: 0x0001-0xFFFF (~0.017s to ~18min)
Number of game frames to hold each animation frame before cycling to the next. As an NTSC SNES runs at approximately 60 FPS, this means the time delay can be calculated as delay_in_seconds = frame_delay / 60
.
Transfer Size
- Length: 2 bytes
- Offset within entry: 0x04
- Range of values: 0x0000-0x2000 (0-256 tile characters)
Size in bytes of the tile characters to be replaced on each animation cycle. As EarthBound allocates space for up to 256 decompressed tile characters for animation, each 32 bytes, that gives a maximum transfer size of 0x2000 bytes in the silly scenario where the animation consists of a single animation cycle using all available tile characters.
Initial Transfer Source Offset
- Length: 2 bytes
- Offset within entry: 0x06
- Range of values: 0x0000-0x1FE0
Byte offset into the decompressed map animation tile characters stored at $7EC000-$7EDFFF to use for the transfer source for the first animation cycle.
Transfer Destination Address
- Length: 2 bytes
- Offset within entry: 0x08
- Range of values: 0x0000-0x37F0
VRAM word address of the first tile character to be replaced on each animation cycle. Map tile characters occupy addresses $0000-$37FF (word addresses) of VRAM.
Frames Until Cycle
- Length: 2 bytes
- Offset within entry: 0x0A
- Range of values: 0x0000-0xFFFF
Number of game frames remaining until the next animation cycle. EarthBound will decrement this each game frame, and on reaching zero, EarthBound will reset to Frame Delay (animation data offset 0x02) and initiate a transfer to VRAM to replace animated tile characters.
Current Animation Frame
- Length: 2 bytes
- Offset within entry: 0x0C
- Range of values: 0-256 (0x0000-0x0100)
Current animation frame number. EarthBound will increment this each animation cycle, and on reaching Num Animation Cycles (animation data offset 0x00), EarthBound will reset to zero and reset Current Transfer Source Offset (animation data offset 0x0E) to Initial Transfer Source Offset (animation data offset 0x06)
Current Transfer Source Offset
- Length: 2 bytes
- Offset within entry: 0x0E
- Range of values: 0x0000-0x2000
Byte offset into decompressed map animation tile characters stored at $7EC000-$7EDFFF to use for the transfer source for the next animation cycle. EarthBound will increment this by Transfer Size (animation data offset 0x04) after each animation cycle, and when Current Animation Frame (animation data offset 0x0C) reaches Num Animation Cycles (animation data offset 0x00), reset to Initial Transfer Source Offset (animation data offset 0x06).