Warrior Kings BCP: Difference between revisions
Jump to navigation
Jump to search
imported>WATTO No edit summary |
imported>WATTO No edit summary |
||
| Line 1: | Line 1: | ||
= | * [[GRAFs|Return to the list of games]] | ||
Choose archive extension: | |||
== BCP == | |||
* ''' Format Type ''': Archive <br> | * ''' Format Type ''': Archive <br> | ||
| Line 8: | Line 12: | ||
<tt><b> | <tt><b> | ||
char {44} - Header <font color="purple">(PAK File 2.01 (c) Black Cactus Games Limited)</font> <br> | |||
uint32 {4} - <font color="red"> '' Unknown '' </font> <br> | uint32 {4} - <font color="red"> '' Unknown '' </font> <br> | ||
uint32 {4} - Directory Offset <br> | uint32 {4} - Directory Offset <br> | ||
uint32 {4} - Directory Length <br> | uint32 {4} - Directory Length <br> | ||
<br> | |||
byte {X} - File Data <br> | byte {X} - File Data <br> | ||
<br> | <br> | ||
<font color="blue"> ''' // | <font color="blue"> ''' // Main Directory ''' </font> <br> | ||
: uint32 {4} - | : uint32 {4} - Number Of Files <br> | ||
<br> | <br> | ||
<font color="blue"> ''' // for each | : <font color="blue"> ''' // for each file ''' </font> <br> | ||
: | :: uint32 {4} - File Offset <br> | ||
: uint32 {4} - | :: uint32 {4} - Offset To Next File <br> | ||
: | :: uint32 {4} - File Size <br> | ||
: | :: uint32 {4} - <font color="red"> '' Hash? '' </font> <br> | ||
: uint32 {4} - | :: uint32 {4} - <font color="red"> '' File Type ID? '' </font> <br> | ||
<br> | <br> | ||
: <font color="blue"> ''' // for each | : <font color="blue"> ''' // for each directory { ''' </font> <br> | ||
:: | :: <font color="blue"> ''' // Note: The next 3 fields don't appear in the first directory! ''' </font> <br> | ||
:: | :: uint32 {4} - Number Of Sub-Directories In This Directory <br> | ||
:: byte {1} - | :: byte {1} - Directory name Length <font color="darkgreen">[*2 for unicode]</font> <br> | ||
:: char {X} - | :: char {X} - Directory name <font color="purple">(unicode text - 2-bytes per letter)</font> <br> | ||
:: <font color=" | :: uint32 {4} - Number Of Files In Directory <font color="purple">(not including sub-directories)</font> <br> | ||
<br> | <br> | ||
: <font color="blue"> ''' // for each | :: <font color="blue"> ''' // for each file in the directory { ''' </font> <br> | ||
:: <font color=" | ::: uint32 {4} - File ID <font color="purple">(incremental, starting from 0)</font> <br> | ||
:: <font color="blue"> ''' } ''' </font> <br> | ::: uint64 {8} - <font color="red"> '' Unknown '' </font> <br> | ||
::: byte {1} - Filename Length <font color="darkgreen">[*2 for unicode]</font> <br> | |||
::: char {X} - Filename <font color="purple">(unicode text - 2-bytes per letter)</font> <br> | |||
::: <font color="blue"> ''' } ''' </font> <br> | |||
<br> | <br> | ||
:: <font color="blue"> ''' // for each sub-directory in this directory { ''' </font> <br> | |||
::: <font color="blue"> ''' // Repeat from "//for each directory" ''' </font> <br> | |||
::: <font color="blue"> ''' } ''' </font> <br> | |||
<br> | <br> | ||
</b></tt> | </b></tt> | ||
=== MultiEx BMS === | === MultiEx BMS Script === | ||
Not written yet<br><br> | Not written yet<br><br> | ||
| Line 49: | Line 55: | ||
=== Notes and Comments === | === 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<br> | * 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 | ||
<br> | <br><br> | ||
=== | === Compatible Programs === | ||
* [[Game Extractor|Game Extractor]]<br> | * [[Game Extractor|Game Extractor]]<br> | ||
Revision as of 03:33, 16 May 2005
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