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 29: Line 29:
//    please note: the variable length of the filename changes of course each individual segments length!
//    please note: the variable length of the filename changes of course each individual segments length!


08 14 Length of FileNAME (20 chars here)
08 14 Length of FileNAME (14h means 20 chars long filename in this case)
09 00 --"--
09 00 --"--
0a 00 --"--
0a 00 --"--
Line 88: Line 88:
: uint32 {4}&nbsp;&nbsp; - Length of file<br>  
: uint32 {4}&nbsp;&nbsp; - Length of file<br>  
: uint32 {4}&nbsp;&nbsp; - Offset to start of file<br>  
: uint32 {4}&nbsp;&nbsp; - Offset to start of file<br>  
<br>
<font color="blue"> ''' // actual File Data Area (continuous) ''' </font> <br>  
byte {X}&nbsp;&nbsp;&nbsp;&nbsp; - File Data Area<br>  
byte {X}&nbsp;&nbsp;&nbsp;&nbsp; - File Data Area<br>  
</b></tt>
</b></tt>

Revision as of 00:25, 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 (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' 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

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

MultiEx BMS

Not written yet


Supported Programs