BFLIM (File Format)

From MK8
Revision as of 13:30, 21 November 2015 by Dial (talk | contribs) (→‎Format)
Jump to navigation Jump to search

The BFLIM file format is used to store layout images.

Parsing information

Header

The header is, for whatever reason, at the end of the file. It is always 0x14 bytes.

Offset Size Description
0x00 4 "FLIM" File Identifier, ASCII string.
0x04 2 Byte order mark (BOM): 0xFE,0xFF for big endian and 0xFF,0xFE for little endian.
0x06 2 Header size, always 0x14.
0x08 4 Unknown, usually 0x03030000 or 0x02020000.
0x0C 4 Filesize
0x10 2 Unknown, always 0x01.
0x12 1 Multiplier?, always upper 2 bytes of filesize.
0x13 1 Unknown, always 0.

Data Information

Comes directly after header, always 0x14 bytes. Formats not the same in games like NSMBU, be sure to use filename if possible (EG: ^l).

Offset Size Description
0x14 4 "imag", some signature, ASCII string.
0x18 4 Parse information size, always 0x10 (this and next 0xC bytes).
0x1C 2 Width
0x1E 2 Height
0x20 2 Alignment usually 0x800 (2048) or 0x1000 (4096)
0x22 1 Format, how the data is stored.
0x23 1 Swizzle, first nibble is swizzle times two (2 is 1, 4 is 2, etc), second seems to always 4
0x24 4 Raw data size, always 0xC minus 0x28 (the header).

Format

ID Name Type Bits per pixel Notes
0x01 ^d BFLIM files
0x03 ??? 16 ^f BFLIM files
0x05 RGB565 color ^h BFLIM files
0x0C ??? 16 ^i BFLIM files
0x0E ^k BFLIM files
0x12 IA8? color+alpha
0x0F I4? / BC4_UNORM / ATI1 (Low-End) grey ^r BFLIM files
0x10 IA4? / BC4_UNORM / ATI (High-End) color+alpha ^s BFLIM files
0x11 I8? / BC5_UNORM / ATI2 color ^t BFLIM files
0x14 RGBA32_UNORM / RGBA8888 color+alpha 32 ^l BFLIM files
0x15 BC1_UNORM / DXT1 Compressed ^o BFLIM files
0x16 BC2_UNORM / DXT3 Compressed ^p BFLIM files
0x17 BC3_UNORM / DXT5 Compressed ^q BFLIM files