This is a really good example of the simplest archive format possible.
' H, k3 o( ~3 ]! w
O q5 A/ S/ }4 N/ oThe archive begins with a 4 byte signature 'PFPK'.
- c" S- f1 N& @1 \ x; OImmediately after that is an 32 bit integer telling you how many files are in the archive.
( U1 O( o* d- h8 k6 Q' N# J# W( h. {$ u6 G6 R1 K) ]
Then it starts the file allocation table.
2 G( W0 {; S# I4 h0 VEach entry consists of:
. {# W% S6 A" r( ]0 tByte - Number of characters in the file's name.
6 c0 [: j2 D/ }: y' z. i' e8 vString - File name.
6 b! Y! \9 R( ]' I% y/ DInt32 - Address of the beginning of the file. 4 g$ w1 B; d! V+ ]# T2 @, E
Int32 - Length of file in bytes. # n- n6 y. h8 t/ O8 l& S
! _( E8 J7 Y4 K) f: _& b- j1 \( ]No encryption. No compression. Quite boring actually.
" M% e- _: H' YThis format should be a required task for an absolute newbie as an introduction to writing archive unpacking software.
+ `2 c3 k$ X6 M* _- E- R2 D$ }; k+ ^( R5 ~
这个格式除了梦之旅3,还在很多游戏中有运用。: g) n3 Y1 Q; \9 G+ r/ ^+ S* @0 V; I
Gourmania
- ?( ]( G9 k/ E2 ?3 CHot Dish 2 |* r' v/ h5 q2 f# ?% q- u
Nocturnal Boston Nightfall
: W# v. k% h$ u; W2 z6 J6 cNightShift legacy
\ B' b+ U" ]6 G( {Pet Shop Hop 0 k; W! r" P' u# N* O
Book of Legends " _1 N8 Z# t4 \
Chocolate Chase
% }5 A* n+ p9 d" XFashion Dash 9 |# P) }& p) ]+ f
The Clumsys , E& y7 D" k5 x: p9 O/ F2 `
Mythic Marbles # T' s$ e, ]8 q9 u
Lost Reals - Legacy of the Sun Princess - e- B( M3 h* R& S
Dr. Daisy Pet Vet (sample archive arrached - game.pfp) 0 p" |+ H# K8 d' W: M* q
Dream Chronicles 2 l% \- J4 e/ T: c: {# _) J6 ^* E
Wedding Dash
$ b( c9 `8 Y# O6 {Hot Dish 2
% S" \. v9 c3 NBook of Legends ' u. C% {* E3 e: @: D! v
MahJonggs |