This is a really good example of the simplest archive format possible. * N1 U( G" ^) t) z) Y6 Y
" }' Y- P9 l+ M$ A8 w% p% z/ l- S/ l. O
The archive begins with a 4 byte signature 'PFPK'.
$ H' X) b9 R, t, ]; E& zImmediately after that is an 32 bit integer telling you how many files are in the archive. 4 y2 V/ c1 Y) x' U# B; y2 m
. B* ~( ^. O7 ~6 sThen it starts the file allocation table.
7 i5 h. ?/ H N9 P/ W$ ]Each entry consists of:
+ [0 T C2 a$ gByte - Number of characters in the file's name.
1 n; C; g/ C9 L# y9 E9 LString - File name.
9 t: x, A* h6 [Int32 - Address of the beginning of the file. # q2 \3 S* _. I% @) C: E
Int32 - Length of file in bytes.
% D4 L9 P: x" Z
8 z3 f1 k: U3 YNo encryption. No compression. Quite boring actually.
8 ]; Y2 B9 H7 X* u3 uThis format should be a required task for an absolute newbie as an introduction to writing archive unpacking software. 1 u7 _3 S+ J d6 W2 P* U
7 Y1 P) G* F7 V: h5 t
这个格式除了梦之旅3,还在很多游戏中有运用。
" N' X. L$ X* v6 gGourmania
9 M8 r2 D/ y) G" U. S/ Z% yHot Dish 2 ) H3 ]& V0 Z9 `2 X4 X/ j
Nocturnal Boston Nightfall , T- r" X& K+ t+ C( O; ~
NightShift legacy ; T5 C2 }( E) b( i+ m! ^3 ]
Pet Shop Hop $ {1 ` ]1 }( U+ S- V% e
Book of Legends # ?- G3 a! [( l$ n# e3 ^: ~# b
Chocolate Chase $ J& ^ i! m9 H# W7 @
Fashion Dash
3 s- ~$ s. I/ \# ]. u- O" CThe Clumsys
! t2 a6 f7 R4 f+ ]3 h! `; pMythic Marbles
n! Z% b ]7 I6 N; f* h! C" a P* SLost Reals - Legacy of the Sun Princess 1 M, e- L. z+ b+ o
Dr. Daisy Pet Vet (sample archive arrached - game.pfp) * n% C( ~) l: F0 s, |
Dream Chronicles ( S- F# S; {# a8 U3 z/ S# o. N4 A
Wedding Dash
) h0 U V" @" Z9 _. m: lHot Dish 2 8 @4 f7 i; U* o0 \, w8 A
Book of Legends , S' {% q) H0 e+ ]7 K3 h
MahJonggs |