This is a really good example of the simplest archive format possible.
`2 O/ ? I; I3 P( O$ ^/ X# ~
6 }! F/ Y% K/ v6 l0 N" HThe archive begins with a 4 byte signature 'PFPK'. . D/ d; X8 F4 n1 R) I' l. o. w; I( K
Immediately after that is an 32 bit integer telling you how many files are in the archive. " N% ^" f9 h! r% D! p
9 m. Q( T- v. @ e3 {" }( a
Then it starts the file allocation table. ) R7 j# w* e& o
Each entry consists of: , ]5 H0 W- t0 A3 c( x ^8 g
Byte - Number of characters in the file's name. ; C) ~, Y% p$ T) C
String - File name. X i) o% }- N6 N; Z' D" z
Int32 - Address of the beginning of the file. 8 i" b1 l- V7 C& @4 y3 f S: a
Int32 - Length of file in bytes. ( W0 {6 Z1 j% i2 {) u* R0 V: G
0 T% D9 U1 Y4 l
No encryption. No compression. Quite boring actually. ' L7 H1 _" ] T& _' a1 M k
This format should be a required task for an absolute newbie as an introduction to writing archive unpacking software. 9 U& C Z8 W4 k3 @: g5 ?& `
# L% M4 T w, q9 L$ I) w5 g. t
这个格式除了梦之旅3,还在很多游戏中有运用。
) m( f6 T+ l( o- ]4 F$ OGourmania / B4 [ z: q/ R1 B9 d5 ~
Hot Dish 2 / P7 n q. |. ?
Nocturnal Boston Nightfall
Y4 T1 T: E; LNightShift legacy 2 }7 S, `7 a+ y- @
Pet Shop Hop
$ s: V7 V. V& IBook of Legends / L; a$ T! c" s4 C3 ^8 M
Chocolate Chase
- J2 S! M9 \: D DFashion Dash ' n8 w; H% J1 E. U0 J& ]
The Clumsys 9 _( I9 O) m/ {) A p/ X
Mythic Marbles
1 N Z5 L' m9 a/ s$ R: p7 JLost Reals - Legacy of the Sun Princess 3 B; {" ?% a& Q5 [
Dr. Daisy Pet Vet (sample archive arrached - game.pfp)
. f8 e ^6 E% U4 j7 I, v. ODream Chronicles / D1 @' c) E7 J
Wedding Dash 3 d k, r/ E; m: c
Hot Dish 2
0 ]' B+ |) f/ w# Y: [! YBook of Legends # b& ]. X: X, o$ U S# N! R
MahJonggs |