Warrior Kings BCP
Choose archive extension:
BCP
- Format Type : Archive
- Endian Order : Little Endian
Format Specifications
char {44} - Header (PAK File 2.01 (c) Black Cactus Games Limited)
uint32 {4} - Unknown
uint32 {4} - Directory Offset
uint32 {4} - Directory Length
byte {X} - File Data
// Main Directory
- uint32 {4} - Number Of Files
- // for each file
- uint32 {4} - File Offset
- uint32 {4} - Offset To Next File
- uint32 {4} - File Size
- uint32 {4} - Hash?
- uint32 {4} - File Type ID?
- uint32 {4} - File Offset
- // for each directory {
- // Note: The next 3 fields don't appear in the first directory!
- uint32 {4} - Number Of Sub-Directories In This Directory
- byte {1} - Directory name Length [*2 for unicode]
- char {X} - Directory name (unicode text - 2-bytes per letter)
- uint32 {4} - Number Of Files In Directory (not including sub-directories)
- // Note: The next 3 fields don't appear in the first directory!
- // for each file in the directory {
- uint32 {4} - File ID (incremental, starting from 0)
- uint64 {8} - Unknown
- byte {1} - Filename Length [*2 for unicode]
- char {X} - Filename (unicode text - 2-bytes per letter)
- }
- uint32 {4} - File ID (incremental, starting from 0)
- // for each file in the directory {
- // for each sub-directory in this directory {
- // Repeat from "//for each directory"
- }
- // Repeat from "//for each directory"
- // for each sub-directory in this directory {
MultiEx BMS Script
Not written yet
Notes and Comments
- The filenames are stored as unicode text, which means that each character is stored as 2 bytes instead of 1. For ASCII text, it is sufficient to read only the first chartacter in each pair, as the second byte will be null