This is a really good example of the simplest archive format possible. ) Z R# Z) D/ W+ ?5 C9 l
9 K4 o2 j* ~, s6 i0 l& g# p/ B
The archive begins with a 4 byte signature 'PFPK'.
- j t! [3 E' m5 t0 r( j' t0 o- J( @Immediately after that is an 32 bit integer telling you how many files are in the archive.
6 T0 d- |- m* D( R# ^) E* l6 A, E& }% K2 \8 G! ~3 O
Then it starts the file allocation table. 5 P$ I$ W) a6 k
Each entry consists of: ' t7 i O8 `; I- K9 s) f) z" I
Byte - Number of characters in the file's name.
7 C4 _( L3 G5 q, Y; VString - File name.
2 V( G! f$ U v( u$ T/ GInt32 - Address of the beginning of the file. , Q7 {7 r! y8 F0 B" c
Int32 - Length of file in bytes. : ~! `0 T, }" d0 O
9 S% E" q% C: D' w, ~No encryption. No compression. Quite boring actually.
3 q7 H$ Y1 o/ K4 WThis format should be a required task for an absolute newbie as an introduction to writing archive unpacking software.
+ V* L# \4 {7 R# J3 R% z9 d+ E# |3 |+ Q% ?) H
这个格式除了梦之旅3,还在很多游戏中有运用。
* q% M0 q3 O$ i: qGourmania
3 j5 R* M0 Y! ` v0 O, b* C$ dHot Dish 2 3 p7 F2 A5 E8 Z* `' w# W3 \; f: w4 Q
Nocturnal Boston Nightfall . J% C( E6 f- O8 g* G4 ?
NightShift legacy ; ?& B6 d: ?. \+ S
Pet Shop Hop 1 r- f! F- L# R# {6 t1 x7 ?; f
Book of Legends
! j7 X) u) I( p5 ?8 i& k4 B4 mChocolate Chase
8 M- `) Z2 Q( z" GFashion Dash
, o* l4 l j& i6 E( O3 NThe Clumsys ' U6 S8 T8 y( u' |! x
Mythic Marbles
7 d1 u2 s! y$ Z: w5 `Lost Reals - Legacy of the Sun Princess , _' G; G$ ^/ ~( q0 ^; \$ i
Dr. Daisy Pet Vet (sample archive arrached - game.pfp) + z8 r+ k9 E" V9 A
Dream Chronicles 5 d$ |- [1 i: i( {0 A3 c1 W8 @4 T" E
Wedding Dash
" R0 ~# G% w0 w3 g9 CHot Dish 2 ' t# ^2 I. h4 k7 ^& d( j
Book of Legends ( U# H2 X* h* ^6 [. h
MahJonggs |