Gabriel Knight 3 BRN

From XentaxWiki
Revision as of 20:50, 26 December 2005 by imported>Braddabug (→‎Format Specifications)
Jump to navigation Jump to search

Choose archive extension:

BRN


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 .brn file
uint32 {4}   - Offset to the section directory

// If the header version is 1.0 then the .brn contains the following stuff:

uint32 {4}   - Executable build number
uint32 {4}   - Content build number
uint32 {4}   - Random number
SYSTEMTIME {16}   - .brn build time
SYSTEMTIME {16}   - .brn 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)

// Now begins the section directory

uint32 {4}   - Number of directory entries

// Next there's an array of these directory header entry things

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 (relative to the beginning of the .brn)
uint32 {4}   - Directory Offset (relative to the beginning of the .brn)

// Now there should be an array of all the directories. 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

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}   - 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


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

MultiEx BMS

Not written yet


Supported Programs


External References

http://wiki.rednek.net/index.pl?GameInfo/GK3Barn