Sid Meier's Pirates! FPK: Difference between revisions
Jump to navigation
Jump to search
imported>Rittmeister No edit summary |
imported>Rittmeister |
||
| Line 98: | Line 98: | ||
=== Supported Programs === | === Supported Programs === | ||
*[http://www.fileplanet.com/hosteddl.aspx?%2fstrategyplanet%2fallsid%2fapps%2ffpkpacker.zip FPKPacker] for unpacking Pirates!' fpkfiles. (can also create archives, but is unable to produce the right "checksum" entries. | |||
*[http://www.mnwright.btinternet.co.uk/programs/dxtbmp.htm DXTBmp] for editing/converting DDS/BMP (sails, flags, etc.). | |||
* [[Game Extractor|Game Extractor]]<br> | * [[Game Extractor|Game Extractor]]<br> | ||
Revision as of 00:37, 24 December 2007
Choose archive extension:
FPK
- Format Type : Archive
- Endian Order : Little Endian
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