Anvil Patch Format
From Aleph One Wiki
Here's some notes on what I've been able to divine from Anvil's patch formats so far.
Contents |
[edit] Shapes
[edit] Layout
Regrettably, Anvil Shapes patches do not begin with a magic number.
Shapes patches are a list of collections:
int32 collection_index int32 bit_depth (so far, 8 or 16) (optional list of chunks) 'endc' tag to end the collection
Empty (unchanged) collections just have the collection index, bit depth, then the 'endc' tag.
Collections with changes appear to always have a 'cldf', followed by chunks for CLUTs, high level shapes, low level shapes, and bitmaps to be replaced or added.
Anvil does not appear to be able to delete things, so patch files are unable to represent deletions as well.
[edit] Tags
[edit] 'cldf' Collection Definition
'cldf' tag 544 bytes containing struct collection_definition (collection_definition.h)
The offset tables and size members of this struct are probably for Anvil's in-memory representation. I don't believe they apply to the patch file.
Anvil uses version 3 collection definitions
[edit] 'ctab' Color Table
'ctab' tag int32 color_table_index color_count * 8 bytes of rgb_color_value structs (collection_definition.h)
color_count comes from the collection definition
[edit] 'hlsh' High Level Shape Definition
'hlsh' tag int32 high_level_shape_index int32 chunk_size chunk_size bytes containing high_level_shape_definition and padding (collection_definition.h)
[edit] 'llsh' Low Level Shape Definition
'llsh' tag int32 low_level_shape_index 36 bytes containing low_level_shape_definition (collection_definition.h)
[edit] 'bmap' Bitmap Definition
'bmap' tag int32 bitmap_index int32 chunk_size chunk_size bytes containing bitmap_definition and data (textures.h)
[edit] 'endc' End Collection
'endc' tag
[edit] Sounds
No information available yet.
