Gabriel Knight 3 BRN
Choose archive extension:
BRN
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
char {8} - Header (GK3!Barn)
uint16 {2} - Minor version of GK3 (0)
uint16 {2} - Major version of GK3 (1)
uint16 {2} - Minor version of the header (0)
uint16 {2} - Major version of the header (1)
uint32 {4} - Total size of the archive
uint32 {4} - Offset to the section directory
// If the header version is 1.0
- uint32 {4} - Executable build number
- uint32 {4} - Content build number
- uint32 {4} - Random number
- SYSTEMTIME {16} - Archive build time
- SYSTEMTIME {16} - Archive last modified time
- char {100} - Copyright ("Copyright " + (byte)169 + " 1999 Sierra Studios. All rights reserved." + nulls to fill)
- char {100} - Archive Build Details (null terminated)
// SECTION DIRECTORY
- uint32 {4} - Number of Sections
- // for each section
- uint32 {4} - Type of directory
- uint16 {2} - Minor version of the directory
- uint16 {2} - Major version of the directory
- uint32 {4} - Random number
- uint32 {4} - Directory checksum
- uint32 {4} - Size of the directory
- uint32 {4} - Header Section Offset
- uint32 {4} - Directory Offset
- uint32 {4} - Type of directory
// HEADER SECTIONS DIRECTORY
- // for each section (There's two major types, DDir and Data)
- uint32 {4} - Data Header (ataD)
- uint16 {2} - null
- uint16 {2} - Unknown (1)
- uint32 {4} - Unknown
- uint32 {4} - null
- uint32 {4} - Unknown
- uint32 {4} - End Of Directory Offset [-5]
- uint32 {4} - End Of Directory Offset [-5]
- byte {40} - null
- uint32 {4} - Data Header (ataD)
char {4} - Core Header (EROC)
char {40} - Archive Description ("Gabriel Knight III Demo" + nulls to fill)
uint32 {4} - Unknown
// ENTRY DIRECTORY
- // for each file
- uint32 {4} - Offset To File Entry (relative to XXX)
- uint32 {4} - Offset To File Entry (relative to XXX)
- uint32 {4} - Unknown (1)
- uint32 {4} - Unknown (1)
// DIRECTORY
- // for each file
- uint32 {4} - File Length
- uint32 {4} - File Offset (relative to the start of the file data)
- uint32 {4} - Hash?
- byte {3} - Unknown
- byte {1} - Filename Length (not including null)
- char {X} - Filename
- byte {1} - null Filename Terminator
- uint32 {4} - File Length
- char {X} - null Padding to the first file offset (multiple of 4096 bytes)
// FILE DATA
- // for each file
- byte {X} - File Data
- byte {X} - Padding
- byte {X} - File Data
MultiEx BMS
Not written yet
Supported Programs