Skip to content

BIF File Format

mrfearless edited this page Jan 22, 2019 · 13 revisions

BIF File Format

BIFF v1

BIFF Header v1

Offset Size Type Description
0 4 CHAR Signature 'BIFF'
4 4 CHAR Version 'V1 '
8 4 DWORD Number of FileEntries
12 4 DWORD Number of TileEntries
16 4 DWORD Offset to FileEntries

BIFF FileEntries v1

Offset Size Type Description
0 4 DWORD ResourceLocator
4 4 DWORD ResourceOffset
8 4 DWORD ResourceSize
12 2 WORD ResourceType
14 2 WORD Unknown

Note: ResourceLocator - The IE resource manager uses 32-bit values as a 'resource index', which codifies the source of the resource as well as which source it refers to. The layout of this value is:

  • bits 31-20: source index (the ordinal value giving the index of the corresponding BIF entry)
  • bits 19-14: tileset index
  • bits 13- 0: non-tileset file index ( 12 bit value, that matches the value used in the BIF file)

BIFF TileEntries v1

Offset Size Type Description
0 4 DWORD ResourceLocator
4 4 DWORD ResourceOffset
8 4 DWORD Tiles count
12 4 DWORD Tile size
16 2 WORD ResourceType
18 2 WORD Unknown

BIF_ v1 (Compressed)

BIF_ Header v1

Offset Size Type Description
0 4 CHAR Signature 'BIF '
4 4 CHAR Version 'V1 '
8 4 DWORD Filename Length *1
12 *1 CHAR Filename
16 + SIZEOF(Filename) 4 DWORD Uncompressed Data Length
20+ SIZEOF(Filename) 4 DWORD Compressed Data Length *2
24+ SIZEOF(Filename) *2 BYTE Compressed Data

BIFC v1.0 (Compressed Blocks)

BIFC Header v1.0

Offset Size Type Description
0 4 CHAR Signature 'BIFC'
4 4 CHAR Version 'V1.0'
8 4 DWORD Uncompressed BIFF size

BIFC Block v1.0

Offset Size Type Description
0 4 DWORD Uncompressed Block Size
4 4 DWORD Compressed Block Size *1
8 *1 BYTE Compressed Data

BIFF v1.1

BIFF Header v1.1

Offset Size Type Description
0 4 CHAR Signature 'BIFF'
4 4 CHAR Version 'V1.1'
8 4 DWORD Number of FileEntries
12 4 DWORD NULL
16 4 DWORD Offset to FileEntries

BIFF FileEntries v1.1

Offset Size Type Description
0 4 DWORD ResourceLocator
4 4 DWORD ResourceFlags
8 4 DWORD ResourceOffset
12 4 DWORD ResourceSize
16 2 WORD ResourceType
18 2 WORD Unknown

Note: ResourceLocator - The IE resource manager uses 32-bit values as a 'resource index', which codifies the source of the resource as well as which source it refers to. The layout of this value is:

  • bits 31-20: source index (the ordinal value giving the index of the corresponding BIF entry)
  • bits 19-14: tileset index
  • bits 13- 0: non-tileset file index ( 12 bit value, that matches the value used in the BIF file)

Note: ResourceFlags - BIF index is now stored in ResourceFlags, (flags & 0xFFF00000) >> 20). The rest appears to define 'fixed' index.

Note: There are no TileEntries in BIF v1.1 files

Clone this wiki locally