Metropolis Software PAK: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Ikskoks
imported>Ikskoks
 
(45 intermediate revisions by the same user not shown)
Line 7: Line 7:
* ''' Format Type ''':    Archive <br>  
* ''' Format Type ''':    Archive <br>  
* ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian <br>  
* ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian <br>  
* ''' Signature ''':    None <br>




Line 18: 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}&nbsp;&nbsp;&nbsp;&nbsp; - File Data <br>  
:: uint32 {4}&nbsp;&nbsp; - File Uncompressed Size <br>
:: uint32 {4}&nbsp;&nbsp; - File Compressed Size <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>
<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}&nbsp;&nbsp; - File Offset <br>  
:: uint32 {4}&nbsp;&nbsp; - Entry Offset <br>  
:: uint32 {4}&nbsp;&nbsp; - File Size <br>  
:: uint32 {4}&nbsp;&nbsp; - Entry Size <br>  
<br>
<br>
<font color="blue"> ''' // FILENAME DIRECTORY ''' </font> <br>  
<font color="blue"> ''' // FILENAME ARRAY ''' </font> <br>  
: <font color="blue"> ''' // for each file ''' </font> <br>  
: <font color="blue"> ''' // for each file ''' </font> <br>  
:: uint32 {4}&nbsp;&nbsp; - Filename Length <font color="purple">(including null)</font> <br>  
:: uint32 {4}&nbsp;&nbsp; - Filename Length <font color="purple">(including null)</font> <br>  
Line 33: Line 36:
<br>
<br>
<font color="blue"> ''' // ARCHIVE FOOTER ''' </font> <br>  
<font color="blue"> ''' // ARCHIVE FOOTER ''' </font> <br>  
: uint32 {4}&nbsp;&nbsp; - Crypted offset to start of the DIRECTORY<br>  
: uint32 {4}&nbsp;&nbsp; - Encrypted offset to start of the DIRECTORY<br>  
</b></tt>
</b></tt>
=== MultiEx BMS ===
Not written yet


=== Notes and Comments ===  
=== Notes and Comments ===  


Offset to DIRECTORY must be decrypt before use. Substruct from it:
Offset to DIRECTORY must be decrypted before use. Substruct from it:
* 0 - for demo
* 0 - for demo
* 0x4857 - for retail/en
* 0x4857 - for retail/en
Line 50: Line 47:
It's easy to detect right value to substruct - first file offset in DIRECTORY always 8.
It's easy to detect right value to substruct - first file offset in DIRECTORY always 8.


<br>
Other notes:
* This file format use '''GZIP''' compression.
* This file format occurs in games made by '''Metropolis Software'''.
* Some filenames are stored in polish language, e.g. "pieklo_fabryka_wnetrze.scene".
=== Games ===
List of games using this file format:
* Archangel (PC) (*.PAK)
* Gorky Zero: Beyond Honor
=== QuickBMS script ===
* [https://github.com/bartlomiejduda/Tools/blob/master/NEW%20Tools/Archangel/Archangel_PAK_script.bms Archangel_PAK_script.bms]


=== Supported Programs ===  
=== Supported Programs ===  


* [http://www.extractor.ru/files/58b858ec46b3555a8734b7f1fdd5e0a0/ Archangel Unpacker]
* [http://www.extractor.ru/files/58b858ec46b3555a8734b7f1fdd5e0a0/ Archangel Unpacker by Nikita (arcrepak.exe)] / [https://drive.google.com/file/d/1hWGm0mKKFy1THqmGqZymF0TE40ak3hb_/view?usp=sharing mirror1]
 
<br><br>


[[Category:Complete Complete|Archangel PAK]]
[[Category:Complete Almost Done|Archangel PAK]]
[[Category:Platform PC|Archangel PAK]]
[[Category:Platform PC|Archangel PAK]]
[[Category:CE Compressed|Archangel PAK]]
[[Category:CE Compressed|Archangel PAK]]

Latest revision as of 00:20, 3 July 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 ARRAY

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


// ARCHIVE FOOTER

uint32 {4}   - Encrypted 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.
  • This file format occurs in games made by Metropolis Software.
  • Some filenames are stored in polish language, e.g. "pieklo_fabryka_wnetrze.scene".

Games

List of games using this file format:

  • Archangel (PC) (*.PAK)
  • Gorky Zero: Beyond Honor

QuickBMS script

Supported Programs