GRAF:3D Sex Villa BXP
BXP
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
// ARCHIVE HEADER
- char {8} - Header ("BXP" + (byte)2 + "ARCH")
- uint64 {8} - Archive Length [+32]
- uint64 {8} - Padding (88,39,255,135,206,225,196,1)
- uint64 {8} - null
// ARCHIVE INDEX
- char {8} - Header ("BXP" + (byte)2 + "INDX")
- uint64 {8} - Unknown
- uint64 {8} - Padding (88,39,255,135,206,225,196,1)
- uint64 {8} - null
- byte {16} - CRC?
- byte {16} - CRC? (same as above field)
// FOLDER TREE
- char {8} - Header ("BXP" + (byte)2 + "TREE")
- uint64 {8} - Offset to the "// FILE DATA" [+128] (ie relative to "// DIRECTORIES")
- uint64 {8} - Padding (88,39,255,135,206,225,196,1)
- uint64 {8} - null
// DIRECTORIES
- // for each directory
- char {8} - Header ("BXP" + (byte)2 + "SDIR")
- uint64 {8} - Unknown Length/Offset
- byte {16} - null
- uint32 {4} - Number Of Sub-Directories in this directory
- uint32 {4} - Number Of Files in this directory
- uint64 {8} - Length Of Filename Directory Component (length of subDirName+null + fileNames+nulls)
- byte {16} - null
- char {8} - Header ("BXP" + (byte)2 + "SDIR")
- // for each sub-directory in this directory
- uint32 {4} - null
- uint32 {4} - Relative Offset To This Directory? (32) (relative to the start of this subDirEntry)
- uint32 {4} - Hash?
- char {X} - Sub-Directory Name
- byte {1} - null Sub-Directory Name Terminator
- byte {X} - null Padding to a multiple of 32 bytes
- uint32 {4} - null
- // for each sub-directory in this directory
- // for each file in this directory
- uint64 {8} - Filename Offset (relative to the start of the filename directory)
- uint64 {8} - null
- byte {16} - CRC?
- uint32 {4} - null
- uint32 {4} - Unknown (1)
- uint64 {8} - null
- uint64 {8} - File Length (not including the file header fields?)
- uint64 {8} - File Offset (relative to the start of the file data)
- uint64 {8} - Filename Offset (relative to the start of the filename directory)
- // for each file in this directory
- // repeat for each sub-directory (repeat from "// for each directory")
- // repeat for each sub-directory (repeat from "// for each directory")
- byte {32} - CRC?
// FILENAME DIRECTORY
- // for each file
- char {X} - Filename
- byte {1} - null Filename Terminator
- char {X} - Filename
- byte {X} - null Padding to a multiple of 32 bytes
// FILE DATA
- char {8} - Header ("BXP" + (byte)2 + "DATA")
- uint64 {8} - Total Length Of File Data (length of everything in "// for each file")
- uint64 {8} - Padding (88,39,255,135,206,225,196,1)
- uint64 {8} - null
- // for each file
- char {8} - Header ("BXP" + (byte)2 + "FILE")
- uint64 {8} - File Length (length of "X - File Data" only) [+30]
- uint64 {8} - CRC?
- uint32 {4} - null
- uint32 {4} - Unknown (1)
- byte {X} - File Data
- byte {X} - null Padding to a multiple of 32 bytes
- char {8} - Header ("BXP" + (byte)2 + "FILE")