随着对游戏包文件的深入研究,我还发现不少游戏的包文件存在一种补丁机制。0 l: j* ]3 F9 N8 |4 H9 A) v; ^0 A
$ f) q: }0 A1 r; F0 A! s
补丁机制简述如下
" H6 J R/ V/ s1 I游戏一般会按文件名的字母顺序读入相同后缀的包文件,如果在不同的包文件里存在相同的文件的话,4 f& R' L1 z- C: o0 g
则后读入的文件优先度比较高,将会被游戏优先使用。2 X9 c! }: i/ x* u, T
! m3 O: {& M. n6 K举例8 z ?7 g- S# @, t N
假设游戏的包文件是data.pak, 其中含有一个叫a.png的英文图片文件。- ?7 T- U6 Q1 Y, @
我们可以构造一个小的包文件data_p1.pak,其中含有一个叫a.png的中文图片文件。6 H9 S7 c {0 m3 j! Y* u- r; u5 k' r
由于data_p1.pak在排序后排在data.pak后面,将会被后读入,所以它里面的文件将会取代data.pak包里的同名文件。
, J) s7 p {/ [* U+ O: V0 p1 l所以,最后那个中文图片文件将会被游戏使用。: a- }0 C2 B6 ^+ O
$ K, Z9 s [4 V7 R我们掌握了这个原理以后,就有可能制作出比较小的汉化补丁。( J% a# c- L# C0 S+ ?
热心的朋友可以试试看,playfirst sdk的.pfp文件是否支持这种补丁机制? |