EarthBound/Map Data/Compressed Tile Animation Characters Data: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(I've been looking long and hard at map animations, it's time to share what I know so far.)
 
(Document decompressed format and usage.)
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Infobox table|name="Map Data:Graphics for Animated Tiles Block 1
Data blocks for storing compressed raw graphics for animated map tiles. Data for a given map tileset is found using the [[EarthBound/Map_Data/Tile_Animation_Characters_Pointer_Table|Map Data: Tile Animation Characters Pointer Table]].
 
Portions of decompressed data are pointed to by [[EarthBound/Map_Data/Tile_Animation_Properties_Table|Tile Animation Properties]] entries.
 
==Blocks==
===Block 1===
{{Infobox table|name=Map Data: Compressed Tile Animation Characters Data, Block 1
|game=EarthBound
|game=EarthBound
|loc=ROM
|loc=ROM
|start=0x1EF2E7
|start=<tt>0x1EF2E7</tt>
|end=0x1EFEDC
|end=<tt>0x1EFEDC</tt>
|numentries=5
|numentries=5
|entrylength=Varies
|entrylength=Varies, 8192 bytes (<tt>0x2000</tt>) after decompression
|totallength=3062 bytes (0xbf6)
|totallength=3062 bytes (<tt>0x0bf6</tt>), 40960 bytes (<tt>0xa000</tt>) after decompression
}}This is the first block of graphical data for the map animations.
}}
 
{| border=1 cellspacing=0 cellpadding=3
! Address !! Tileset name !! Tileset index !! Compressed length
|-
| <tt>0x1EF2E7</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Stores2|Stores 2]] || <tt>15</tt> || 25 bytes (<tt>0x19</tt>)
|-
| <tt>0x1EF300</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Indoors4|Indoors 4]] || <tt>16</tt> || 452 bytes (<tt>0x01C4</tt>)
|-
| <tt>0x1EF4C4</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Winters|Winters]] || <tt>17</tt> || 807 bytes (<tt>0x0327</tt>)
|-
| <tt>0x1EF7EB</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Scaraba|Scaraba]] || <tt>18</tt> || 638 bytes (<tt>0x027E</tt>)
|-
| <tt>0x1EFA69</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Caves2|Caves 2]] || <tt>19</tt> || 1140 bytes (<tt>0x0474</tt>)
|}
 
{{clear}}
{{clear}}
===Block 2===
{{Infobox table|name=Map Data: Compressed Tile Animation Characters Data, Block 2
|game=EarthBound
|loc=ROM
|start=<tt>0x1FC443</tt>
|end=<tt>0x1FE6E0</tt>
|numentries=15
|entrylength=Varies, 8192 bytes (<tt>0x2000</tt>) after decompression
|totallength=8862 bytes (<tt>0x229e</tt>), 122880 bytes (<tt>0x01e000</tt>) after decompression
}}
{| border=1 cellspacing=0 cellpadding=3
! Address !! Tileset name !! Tileset index !! Compressed length
|-
| <tt>0x1FC443</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#LostUnderworld|Lost Underworld]] || <tt>00</tt> || 1784 bytes (<tt>0x06F8</tt>)
|-
| <tt>0x1FCB3B</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Onett|Onett]] || <tt>01</tt> || 580 bytes (<tt>0x0244</tt>)
|-
| <tt>0x1FCD7F</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Twoson|Twoson]] || <tt>02</tt> || 25 bytes (<tt>0x19</tt>)
|-
| <tt>0x1FCD98</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Threed|Threed]] || <tt>03</tt> || 25 bytes (<tt>0x19</tt>)
|-
| <tt>0x1FCDB1</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Fourside|Fourside]] || <tt>04</tt> || 25 bytes (<tt>0x19</tt>)
|-
| <tt>0x1FCDCA</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Magicant|Magicant]] || <tt>05</tt> || 1078 bytes (<tt>0x0436</tt>)
|-
| <tt>0x1FD200</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Outdoors|Outdoors]] || <tt>06</tt> || 1774 bytes (<tt>0x06EE</tt>)
|-
| <tt>0x1FD8EE</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Summers|Summers]] || <tt>07</tt> || 1641 bytes (<tt>0x0669</tt>)
|-
| <tt>0x1FDF57</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#DustyDunes|Dusty Dunes Desert]] || <tt>08</tt> || 1172 bytes (<tt>0x0494</tt>)
|-
| <tt>0x1FE3EB</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Dalaam|Dalaam]] || <tt>09</tt> || 25 bytes (<tt>0x19</tt>)
|-
| <tt>0x1FE404</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Indoors1|Indoors 1]] || <tt>10</tt> || 25 bytes (<tt>0x19</tt>)
|-
| <tt>0x1FE41D</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Indoors2|Indoors 2]] || <tt>11</tt> || 25 bytes (<tt>0x19</tt>)
|-
| <tt>0x1FE436</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Stores1|Stores 1]] || <tt>12</tt> || 460 bytes (<tt>0x01CC</tt>)
|-
| <tt>0x1FE602</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Caves1|Caves 1]] || <tt>13</tt> || 198 bytes (<tt>0xC6</tt>)
|-
| <tt>0x1FE6C8</tt> || [[EarthBound/Map_Data/Global_Tileset/Palette_Table#Indoors3|Indoors 3]] || <tt>14</tt> || 25 bytes (<tt>0x19</tt>)
|}


=Format=
{{clear}}
Entries are followed with an FF terminator.  Tilesets with no animations are all the same 24 bytes, 8 repetitions of E7FF00
==Format==
followed by the terminator.
==Entry 15(0x1EF2E7 to 0x1EF2FF, Stores 2)==
{{table el||len=25 bytes(0x19)|loc=0x00|valrange=0x00-0xFF|}}
e7 ff 00 e7 ff 00 e7 ff 00
e7 ff 00 e7 ff 00 e7 ff 00
e7 ff 00 e7 ff 00 ff


==Entry 16(0x1EF300 to 0x1EF4C3, Indoors 4)==
Data for each map tileset is individually compressed. See [[EarthBound/ASM/Decompression_Routine#CompressionFormat|Compression Format]].
{{table el||len=452 bytes(0x1C4)|loc=0x20|valrange=0x00-0xFF|}}


==Entry 17(0x1EF4C4 to 0x1EF7EA, Winters)==
Tilesets with no animations are all the same 24 bytes, 8 repetitions of <code>E7FF00</code>
{{table el||len=807 bytes(0x327)|loc=0x1DD|valrange=0x00-0xFF|}}
followed by the <code>FF</code> terminator.  (This is simply the compressed format of <code>00</code> repeated 8192 (<tt>0x2000</tt>) times.)


==Entry 18(0x1EF7EB to 0x1EFA68, Scaraba)==
===Decompressed Format===
{{table el||len=638 bytes(0x27E)|loc=0x505|valrange=0x00-0xFF|}}


==Entry 19(0x1EFA69 to 0x1EFEDC, Caves 2)==
Each entry, once decompressed, consists of an unstructured block of up to 256 tileset characters, each a 4-bits-per-pixel 8x8 [https://snes.nesdev.org/wiki/Tiles SNES graphics tile] (sometimes referred to as a "minitile" by EarthBound modders). See [[EarthBound/Map_Data/Compressed_Tileset_Character_Data#DecompressedFormat|Tileset Character Data Decompressed Format]].
{{table el||len=1140 bytes(0x474)|loc=0x783|valrange=0x00-0xFF|}}


[[Category:EarthBound|ROM Map]]
[[Category:EarthBound:Map_Data|Compressed Tile Animation Characters Data]]

Latest revision as of 15:09, 11 May 2024

Data blocks for storing compressed raw graphics for animated map tiles. Data for a given map tileset is found using the Map Data: Tile Animation Characters Pointer Table.

Portions of decompressed data are pointed to by Tile Animation Properties entries.

Blocks

Block 1

Map Data: Compressed Tile Animation Characters Data, Block 1
Game EarthBound
Start Address 0x1EF2E7
End Address 0x1EFEDC
# of Entries 5
Entry Length Varies, 8192 bytes (0x2000) after decompression
Total Length 3062 bytes (0x0bf6), 40960 bytes (0xa000) after decompression
Back to the ROM map
Address Tileset name Tileset index Compressed length
0x1EF2E7 Stores 2 15 25 bytes (0x19)
0x1EF300 Indoors 4 16 452 bytes (0x01C4)
0x1EF4C4 Winters 17 807 bytes (0x0327)
0x1EF7EB Scaraba 18 638 bytes (0x027E)
0x1EFA69 Caves 2 19 1140 bytes (0x0474)

Block 2

Map Data: Compressed Tile Animation Characters Data, Block 2
Game EarthBound
Start Address 0x1FC443
End Address 0x1FE6E0
# of Entries 15
Entry Length Varies, 8192 bytes (0x2000) after decompression
Total Length 8862 bytes (0x229e), 122880 bytes (0x01e000) after decompression
Back to the ROM map
Address Tileset name Tileset index Compressed length
0x1FC443 Lost Underworld 00 1784 bytes (0x06F8)
0x1FCB3B Onett 01 580 bytes (0x0244)
0x1FCD7F Twoson 02 25 bytes (0x19)
0x1FCD98 Threed 03 25 bytes (0x19)
0x1FCDB1 Fourside 04 25 bytes (0x19)
0x1FCDCA Magicant 05 1078 bytes (0x0436)
0x1FD200 Outdoors 06 1774 bytes (0x06EE)
0x1FD8EE Summers 07 1641 bytes (0x0669)
0x1FDF57 Dusty Dunes Desert 08 1172 bytes (0x0494)
0x1FE3EB Dalaam 09 25 bytes (0x19)
0x1FE404 Indoors 1 10 25 bytes (0x19)
0x1FE41D Indoors 2 11 25 bytes (0x19)
0x1FE436 Stores 1 12 460 bytes (0x01CC)
0x1FE602 Caves 1 13 198 bytes (0xC6)
0x1FE6C8 Indoors 3 14 25 bytes (0x19)

Format

Data for each map tileset is individually compressed. See Compression Format.

Tilesets with no animations are all the same 24 bytes, 8 repetitions of E7FF00 followed by the FF terminator. (This is simply the compressed format of 00 repeated 8192 (0x2000) times.)

Decompressed Format

Each entry, once decompressed, consists of an unstructured block of up to 256 tileset characters, each a 4-bits-per-pixel 8x8 SNES graphics tile (sometimes referred to as a "minitile" by EarthBound modders). See Tileset Character Data Decompressed Format.