Metropolis Software PAK: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
Line 21: Line 21:
:: uint32 {4}&nbsp;&nbsp; - File Uncompressed Size <br>  
:: uint32 {4}&nbsp;&nbsp; - File Uncompressed Size <br>  
:: uint32 {4}&nbsp;&nbsp; - File Compressed Size <br>  
:: uint32 {4}&nbsp;&nbsp; - File Compressed Size <br>  
:: byte {X}&nbsp;&nbsp;&nbsp;&nbsp; - File Data // compressed with GZIP <br>  
:: byte {X}&nbsp;&nbsp;&nbsp;&nbsp; - File Data <font color="purple">(compressed with GZIP)</font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(26)</font> '' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - <font color="red"> '' Unknown <font color="purple">(26)</font> '' </font> <br>  
<br>
<br>

Revision as of 22:22, 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)


// DIRECTORY

// for each file
uint32 {4}   - Entry Offset
uint32 {4}   - Entry Size


// FILENAME DIRECTORY

// for each file
uint32 {4}   - Filename Length (including null)
char {X}     - Filename
byte {1}     - null Filename Terminator


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