Sid Meier's Pirates! FPK: Difference between revisions

From XentaxWiki
Jump to navigation Jump to search
imported>Rittmeister
No edit summary
imported>Rittmeister
No edit summary
Line 33: Line 33:
0a 00 --"--
0a 00 --"--
0b 00 --"--
0b 00 --"--
0c xx t Filename of first item in archive. the filename is 'encrypted'.
0c t Filename of first item in archive. the filename is 'encrypted'.
0d   i  
0d i  
0e   t The 'encryption' is a joke. It just increases each byte by 01!
0e t The 'encryption' is a joke. It just increases each byte by 01!
0f   l
0f l
10   e (eg. 'e' becomes 'f')
10 e (eg. 'e' becomes 'f')
11   s
11 s
12   c
12 c
13   r
13 r
14   e
14 e
15   e
15 e
16   n
16 n
17   _
17 _
18   e
18 e
19   u
19 u
1a   r
1a r
1b   o
1b o
1c   .
1c .
1d   d
1d d
1e   d
1e d
1f xx s
1f s
20 63 }\
20 63 }\
21 99 } \ some checksum or filetype/datagroup designation?...
21 99 } \ some checksum or filetype/datagroup designation?...

Revision as of 00:21, 24 December 2007


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 (20 chars here)
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' becomes '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/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


byte {X}     - File Data Area

MultiEx BMS

Not written yet


Supported Programs