This is a really good example of the simplest archive format possible.
; {2 f6 N: r% T
' v6 O6 B" l9 ~- k/ `The archive begins with a 4 byte signature 'PFPK'. [1 H+ b% f" k) [/ {; n/ B
Immediately after that is an 32 bit integer telling you how many files are in the archive. 6 {5 k; H) d. d3 n) r
" J5 k- [/ h3 m: Y/ c
Then it starts the file allocation table. 0 b% @ |- R( U& p, W+ D; i
Each entry consists of: & m2 }* S, _, C2 L9 v
Byte - Number of characters in the file's name. , Z, m3 p, S. S2 A$ i I \0 R
String - File name. ! _7 h8 C- Y) C# \+ h
Int32 - Address of the beginning of the file. + L6 _: I- f( t/ r4 e
Int32 - Length of file in bytes. ! y* F9 q% \2 g
3 Q' ~0 k* |/ k" SNo encryption. No compression. Quite boring actually.
0 M, ~. P! n d! h, k& r$ XThis format should be a required task for an absolute newbie as an introduction to writing archive unpacking software.
. K* C" p. e) J- U6 a( L9 k M0 O9 O4 W2 j4 c+ i, R- J
这个格式除了梦之旅3,还在很多游戏中有运用。
: g' }0 V8 [6 {) a, x" GGourmania
) T- y1 @& k8 W. {- g" |Hot Dish 2 ' Q# V" N& m; \( e3 |
Nocturnal Boston Nightfall
1 B: G+ S* B6 B1 T1 x' VNightShift legacy
! ^' V# I9 c+ Q1 MPet Shop Hop
. r4 _. s/ q' I0 r6 p ~$ V! ~Book of Legends 5 o6 X5 O, C/ N
Chocolate Chase
, x t! Z( Z/ o R% L" TFashion Dash
4 [; q1 G- z1 H$ D6 V hThe Clumsys
+ A( k( ^2 d6 F8 q) }Mythic Marbles . U' ^5 Z- B2 k* V" Z6 m
Lost Reals - Legacy of the Sun Princess + M! C) m8 `0 b' m$ F0 e: e
Dr. Daisy Pet Vet (sample archive arrached - game.pfp)
- Q9 t7 _) e9 h( F% }( f& K+ Z- dDream Chronicles $ ]1 G! e$ w8 @1 o
Wedding Dash / ?4 P7 i# z9 ?3 H: {0 N
Hot Dish 2 # ]1 J. A7 a3 y
Book of Legends
: U, z9 Q8 @' J2 _( kMahJonggs |