BFRES (File Format)

From Deep Sea Knowledge
Revision as of 15:52, 31 October 2018 by Shibboleet (talk | contribs) (Begin BFRES with the header.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

BFRES, known as Binary CaFe RESource, stores information relating to any 3D model data.

Header

The header contains all of the information needed to parse the entire file, include counts and offsets to data.

Offset Type Description
0x00 String File magic. Always "FRES" in ASCII.
0x04 UInt32 Signature.
0x08 UInt32 Version.
0x0C UInt16 Byte Order Mark (BOM): 0xFEFF for big endian and 0xFFFE for little endian.
0x0E Byte Byte alignment.
0x0F Byte Target address size. Usually 0.
0x10 UInt32 File name offset.
0x14 Uint16 Flags.
0x16 UInt16 Block offset.
0x18 UInt32 Relocation table offset.
0x1C UInt32 BFRES Size.
0x20 UInt64 Offset to the file name length.
0x28 UInt64 FMDL offset.
0x30 UInt64 FMDL dictionary offset.
0x38 UInt64 Skeletal animations offset.
0x40 UInt64 Skeletal animations dictionary.
0x48 UInt64 Material animations offset.
0x50 UInt64 Material animations dictionary.
0x58 UInt64 Bone visibility animation array offset.
0x60 UInt64 Bone visibility animation array dictionary.
0x68 UInt64 Shape animation array offset.
0x70 UInt64 Shape animation dictionary offset.
0x78 UInt64 Scene animation array offset.
0x80 UInt64 Scene animation dictionary offset.
0x88 UInt64 Unknown.
0x90 UInt64 Unknown.
0x98 UInt64 External files offset.
0xA0 UInt64 Embedded file dictionary offset.
0xA8 Byte[8] Padding.
0xB0 UInt64 String table offset.
0xB8 UInt32 Unknown.
0xBC UInt16 Model count.
0xBE UInt16 Skeletal animation count.
0xC0 UInt16 Material animation count.
0xC2 Byte[6] Padding.
0xC8 UInt16 External file count.
0xCA Byte[6] Padding.
0xD0 End of file header.