Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

EarthBound/Map Data/Tile Animation Properties Table: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
m (Esorth moved page EarthBound:Map Data:Freakish Tile Animation Table to EarthBound:Map Data:Tile Animation Properties Table: More accurate name (and not sure what "freakish" was ever supposed to mean here))
(Refactor whole page to more accurate describe the table format)
Line 1: Line 1:
{{subpage|game=EarthBound:ROM map}}
{{subpage|game=EarthBound:ROM map}}


{{Infobox table|name=Freakish Tile Animation Table
{{Infobox table|name=Map Data: Tile Animation Properties Table
|game=EarthBound
|game=EarthBound
|loc=ROM
|loc=ROM
|start=0x2F146B
|start=<tt>0x2F146B</tt>
|end=0x2F153E
|end=<tt>0x2F153E</tt>
|numentries=20
|numentries=20
|entrylength=1 or 9 bytes (0x1 or 0x9)
|entrylength=Varies
|totallength=211 bytes (0xD3)
|totallength=211 bytes (<tt>0xD3</tt>)
}}
}}


The '''Freakish Map Animation''' table controls the animation of [[EarthBound:Map tiles|map tiles]] in [[EarthBound]]. Each entry represents one [[EarthBound:Map graphics tileset|map graphics tileset]] (not [[EarthBound:Map tileset|map tileset]]).
The '''Tile Animation Properties Table''' contains metadata properties controlling the animation of map tiles for a given tileset. The entry for a given tileset is found using a lookup to the [[EarthBound:Map_Data:Tile_Animation_Properties_Pointer_Table|Tile Animation Properties Pointer Table]].


{{clear}}
==Format==


=Format=
===Num Subentries===
{{table el||len=1 byte|loc=<tt>0x00</tt>|valrange=0-8 (<tt>0x00-0x08</tt>)|}}


[ZZ] (AA BB CC DD EE FF GG HH)
Each entry begins with a single byte to specify the number of subentries to follow, representing different tile animations that will run concurrently for the tileset. EarthBound allocates space for up to 8 entries, but no tileset seems to use more than 6.


*''ZZ'': Number of AA-HH clusters to follow
===Subentry Format===
*''AA'': Frames of animation per cycle
*''BB'': Time per frame (1/60 second format)
*''CC'': ? - Vertical graphics offset (shift tile up C/2 pixels)<br>Has an effect on the sequence used (horizontal rather than vertical?)
*''DD'': ? - Increasing values delete an increasing amount of map tiles
*''EE'': ? - Vertical graphics offset (shift tile up C/2 pixels - 0x20 = full tile)
*''FF'': ? - Changes the tiles being used?
*''G?'': Tile number in static tileset to start overwriting with animation effects
*''?G'': Vertical graphics offset (shift tile down G pixels)
*''HH'': ? - Changes the tiles being used?


=See Also=
====Num Animation Cycles====
{{table el||len=1 byte|loc=<tt>0x00</tt>|valrange=1-255 (<tt>0x01-0xFF</tt>)|}}


*[[EarthBound:Map Data:Freakish Tile Animation Pointer Table|Freakish Tile Animation Pointer Table]]
The number of different animation frames that the animation will cycle through.


=External Links=
====Frame Delay====
{{table el||len=1 byte|loc=<tt>0x01</tt>|valrange=<tt>0x01-0xFF</tt> (~0.017s to ~4.25s)|}}
 
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 <code>delay_in_seconds = frame_delay / 60</code>.
 
====Transfer Size<span class="anchor" id="Transfer_Size"></span>====
{{table el||len=2 bytes|loc=<tt>0x02</tt>|valrange=<tt>0x0000-0x2000</tt> (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 <tt>0x2000</tt> bytes in the silly scenario where the animation consists of a single animation cycle using all available tile characters.
 
====Initial Transfer Source Offset====
{{table el||len=2 bytes|loc=<tt>0x04</tt>|valrange=<tt>0x0000-0x1FE0</tt>|}}
 
Byte offset into the decompressed map animation tile characters stored at <tt>$7EC000-$7EDFFF</tt> to use for the transfer source for the first animation cycle. On each cycle, the source offset will be incremented by [[#Transfer_Size|Transfer Size]] (and reset after cycling through all animation frames).
 
====Transfer Destination Address====
{{table el||len=2 bytes|loc=<tt>0x06</tt>|valrange=<tt>0x0000-0x37F0</tt>|}}
 
VRAM word address of the first tile character to be replaced on each animation cycle. Map tile characters occupy addresses <tt>$0000-$37FF</tt> (word addresses) of VRAM.
 
==External Links==


*[http://pkhack.fobby.net/misc/txt/tileset_anim.txt Tile Animation Properties Table Documentation]
*[http://pkhack.fobby.net/misc/txt/tileset_anim.txt Tile Animation Properties Table Documentation]
Line 40: Line 53:
*[http://pkhack.fobby.net/misc/txt/2F146Bdump.txt Dump of this Table]
*[http://pkhack.fobby.net/misc/txt/2F146Bdump.txt Dump of this Table]


[[Category:EarthBound:Map_Data|Freakish tile Animation Table]]
[[Category:EarthBound:Map_Data|Tile Animation Properties Table]]

Revision as of 05:39, 24 December 2023

This is a sub-page of EarthBound/Map Data.

Map Data: Tile Animation Properties Table
Game EarthBound
Start Address 0x2F146B
End Address 0x2F153E
# of Entries 20
Entry Length Varies
Total Length 211 bytes (0xD3)
Back to the ROM map

The Tile Animation Properties Table contains metadata properties controlling the animation of map tiles for a given tileset. The entry for a given tileset is found using a lookup to the Tile Animation Properties Pointer Table.

Format

Num Subentries

Each entry begins with a single byte to specify the number of subentries to follow, representing different tile animations that will run concurrently for the tileset. EarthBound allocates space for up to 8 entries, but no tileset seems to use more than 6.

Subentry Format

Num Animation Cycles

The number of different animation frames that the animation will cycle through.

Frame Delay

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

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

Byte offset into the decompressed map animation tile characters stored at $7EC000-$7EDFFF to use for the transfer source for the first animation cycle. On each cycle, the source offset will be incremented by Transfer Size (and reset after cycling through all animation frames).

Transfer Destination Address

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.

External Links