Arx Fatalis PAK

From XentaxWiki
Revision as of 12:00, 9 July 2011 by 66.28.139.242 (talk) (fixed)
Jump to navigation Jump to search

Choose archive extension:

PAK


Format Specifications

// ARCHIVE HEADER

uint32 {4}   - Directory Offset


byte {X}     - File Data

// FILES DIRECTORY

uint32 {4}   - Directory Length

// for each directory

char {X}     - Path
byte {1}     - null Path Terminator
uint32 {4}   - Number Of Files
// for each file
char {X}     - Filename
byte {1}     - null Filename Terminator
uint32 {4}   - File Offset
uint32 {4}   - Packed flag (0 - unpacked, else - PKWARE implode)
uint32 {4}   - Decompressed Length (0 if not packed - use field above)
uint32 {4}   - File Length


Notes and Comments

  • In retail version Directory XORed with string:

AVQF3FCKE50GRIAYXJP2AMEYO5QGA0JGIIH2NHBTVOA1VOGGU5H3GSSIARKPRQPQKKYEOIAQG1XRX0J4F5OEAEFI4DD3LL45VJTVOA1VOGGUKE50GRIAYX

You can easy detect it by compare first 5 bytes with "AVQF3" (first entry always empty and have 0 files: 1 (null Path Terminator) + 4 (Number Of Files) = 5).

MultiEx BMS Script

ImpType StandardTail ;
SavePos TailOffOff 0 ;
Get TO Long 0 ;
GoTo TO 0 ;
Get TS Long 0 ;
SavePos T 0 ;
Math T += 5 ;
GoTo T 0 ;
Get Path String 0 ;
Get FN Long 0 ;
For D = 1 To FN ;
Set Name String Path ;
Get Name String 0 ;
SavePos FOO 0 ;
Get FO Long 0 ;
Get ZipState Long 0 ;
Get OrSize Long 0 ;
SavePos FSO 0 ;
Get FS Long 0 ;
Log Name FO FS FOO FSO ;
Next D ;

Compatible Programs