Metropolis Software PAK: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks |
imported>Ikskoks |
||
| Line 19: | Line 19: | ||
<font color="blue"> ''' // FILE DATA ''' </font> <br> | <font color="blue"> ''' // FILE DATA ''' </font> <br> | ||
: <font color="blue"> ''' // for each file ''' </font> <br> | : <font color="blue"> ''' // for each file ''' </font> <br> | ||
:: byte {X} - File Data <br> | :: uint32 {4} - File Uncompressed Size <br> | ||
:: uint32 {4} - File Compressed Size <br> | |||
:: byte {X} - File Data // compressed with GZIP <br> | |||
:: uint32 {4} - <font color="red"> '' Unknown <font color="purple">(26)</font> '' </font> <br> | :: uint32 {4} - <font color="red"> '' Unknown <font color="purple">(26)</font> '' </font> <br> | ||
<br> | <br> | ||
<font color="blue"> ''' // DIRECTORY ''' </font> <br> | <font color="blue"> ''' // DIRECTORY ''' </font> <br> | ||
: <font color="blue"> ''' // for each file ''' </font> <br> | : <font color="blue"> ''' // for each file ''' </font> <br> | ||
:: uint32 {4} - | :: uint32 {4} - Entry Offset <br> | ||
:: uint32 {4} - | :: uint32 {4} - Entry Size <br> | ||
<br> | <br> | ||
<font color="blue"> ''' // FILENAME DIRECTORY ''' </font> <br> | <font color="blue"> ''' // FILENAME DIRECTORY ''' </font> <br> | ||
| Line 36: | Line 38: | ||
: uint32 {4} - Crypted offset to start of the DIRECTORY<br> | : uint32 {4} - Crypted offset to start of the DIRECTORY<br> | ||
</b></tt> | </b></tt> | ||
=== Notes and Comments === | === Notes and Comments === | ||
Revision as of 22:21, 29 June 2022
Choose archive extension:
PAK
- Format Type : Archive
- Endian Order : Little Endian
- Signature : None
Format Specifications
// ARCHIVE HEADER
- uint32 {4} - Version (1)
- uint32 {4} - Number Of Files
// FILE DATA
- // for each file
- uint32 {4} - File Uncompressed Size
- uint32 {4} - File Compressed Size
- byte {X} - File Data // compressed with GZIP
- uint32 {4} - Unknown (26)
- uint32 {4} - File Uncompressed Size
// DIRECTORY
- // for each file
- uint32 {4} - Entry Offset
- uint32 {4} - Entry Size
- uint32 {4} - Entry Offset
// FILENAME DIRECTORY
- // for each file
- uint32 {4} - Filename Length (including null)
- char {X} - Filename
- byte {1} - null Filename Terminator
- uint32 {4} - Filename Length (including null)
// ARCHIVE FOOTER
- uint32 {4} - Crypted offset to start of the DIRECTORY
Notes and Comments
Offset to DIRECTORY must be decrypted before use. Substruct from it:
- 0 - for demo
- 0x4857 - for retail/en
- 0x4858 - for retail/ru
It's easy to detect right value to substruct - first file offset in DIRECTORY always 8.
Other notes:
- This file format use GZIP compression.
- Archangel is a game from Poland, so filenames are stored in polish language, e.g. "pieklo_fabryka_wnetrze.scene".
QuickBMS script
Supported Programs