Sid Meier's Pirates! FPK

From XentaxWiki
Revision as of 00:37, 24 December 2007 by imported>Rittmeister (→‎Supported Programs)
Jump to navigation Jump to search


Choose archive extension:

FPK

FPK File Analysis

Sid Meier's Pirates! FPK File Format description

each numbered line represents 1 byte.

00 02 File header: first 4 bytes seem to be always the same
01 00
02 00
03 00
04 BC Number of Files in Archive: this example represents 07BC files = 1980 files
05 07 --"--                       (equals number of header entries of course)
06 00 --"--
07 00 --"--


//    the following segment (08 - 2f) is repeated for each file in the archive
//    please note: the variable length of the filename changes of course each individual segments length!

08 14 Length of FileNAME (14h means 20 chars long filename in this case)
09 00 --"--
0a 00 --"--
0b 00 --"--
0c u  t Filename of first item in archive. the filename is 'encrypted'.
0d j  i 
0e u  t The 'encryption' is a joke. It just increases each byte by 01!
0f m  l
10 f  e (eg. 'e' is stored as 'f')
11 t  s
12 d  c
13 s  r
14 f  e
15 f  e
16 o  n
17 `  _
18 f  e
19 v  u
1a s  r
1b p  o
1c /  .
1d e  d
1e e  d
1f t  s
20 63 }\
21 99 } \ some checksum or filetype/datagroup designation?...
22 92 } /
23 ea }/
24 30 }\
25 6d } \ some checksum or filetype/datagroup designation?...
26 c5 } /
27 01 }/
28  80 Length of first file: 00080080
29  00
2a  08
2b  00
2c  30 Offset to start of first file
2d  00 in this case: 00000030
2e  00
2f  00

30     The actual (first) file!... in this case starts at 30h.


Format Specifications

uint32 {4}   - Header or Version (4)
uint32 {4}   - Number Of Files in Archive

// for each file

uint32 {4}   - Filename Length
char {X}     - Filename (each char -= 1 to get real Filename)
uint32 {4}   - Checksum or filetype/datagroup designation? (1)
uint32 {4}   - Checksum or filetype/datagroup designation? (2)
uint32 {4}   - Length of file
uint32 {4}   - Offset to start of file

// actual File Data Area (continuous)
byte {X}     - File Data Area

MultiEx BMS

Not written yet


Supported Programs

  • FPKPacker for unpacking Pirates!' fpkfiles. (can also create archives, but is unable to produce the right "checksum" entries.
  • DXTBmp for editing/converting DDS/BMP (sails, flags, etc.).
  • Game Extractor