This is a really good example of the simplest archive format possible. / L( Y6 K8 v5 N; u6 W
9 y% I2 H# o5 L( y" b' B$ ^
The archive begins with a 4 byte signature 'PFPK'. ) N( c8 r' P4 k$ {" E* x
Immediately after that is an 32 bit integer telling you how many files are in the archive. 3 A2 v5 Q: N' f& {7 F" P: p
7 U# u# E9 a H9 q( ^Then it starts the file allocation table.
$ a2 |) g/ c0 d) I. H6 j4 lEach entry consists of:
+ ]( s) c- c$ C, F2 V5 jByte - Number of characters in the file's name.
- y4 l1 V/ Y: T& WString - File name.
4 e2 N/ Y. e4 B7 Z) sInt32 - Address of the beginning of the file.
0 F1 `* Y& J: S+ X) @3 T$ MInt32 - Length of file in bytes.
7 K* c' @8 [' ?1 h& ]5 d
7 \- @8 c; l" W q# V: i+ NNo encryption. No compression. Quite boring actually. 8 s3 R4 P$ M) g f7 h
This format should be a required task for an absolute newbie as an introduction to writing archive unpacking software.
3 B+ [+ U! E* L: O R1 G- {$ I' A
这个格式除了梦之旅3,还在很多游戏中有运用。
. n6 s* V5 o2 @2 bGourmania
$ P9 V8 L- E, Y/ n N" g0 HHot Dish 2
+ h$ d/ E) w3 s" M+ B n% zNocturnal Boston Nightfall
- D3 u+ N, _3 J5 V$ j9 TNightShift legacy . D$ ]5 k# n K8 [2 h% t8 F/ m& _
Pet Shop Hop
/ Z5 A% c0 Y% g5 Z9 J2 TBook of Legends
d: A9 _$ ^7 Z# DChocolate Chase
& d4 R9 r( S6 m' U2 ]0 vFashion Dash 9 m- H" Q# f: l. f3 v
The Clumsys - {$ U& u) b$ Z7 f0 D Z. N
Mythic Marbles " _/ F( y; m2 ?! m- {6 c& m
Lost Reals - Legacy of the Sun Princess $ q3 L, K, H; ~. X# l4 ~
Dr. Daisy Pet Vet (sample archive arrached - game.pfp)
$ g, q- @+ ]5 m+ l T$ xDream Chronicles
# Y. ^* Y2 g! P9 JWedding Dash
6 n1 \# b7 M6 L6 j" y4 XHot Dish 2
. R' |" Q, n+ @$ o* I. D1 NBook of Legends w1 D5 l' U) Y' y( o1 n
MahJonggs |