随着对游戏包文件的深入研究,我还发现不少游戏的包文件存在一种补丁机制。
" ]7 x8 X" @' L! ?7 b. O% z' h" V6 Q2 p
补丁机制简述如下2 B1 n& p4 x- t, R% C9 T
游戏一般会按文件名的字母顺序读入相同后缀的包文件,如果在不同的包文件里存在相同的文件的话,
, P: ^# z% G$ o: S7 `. v/ k则后读入的文件优先度比较高,将会被游戏优先使用。# P* `+ F8 x0 e' x' P
* i" n% b; n K: @: W举例/ S: l7 w- |- i( W6 f9 i1 L
假设游戏的包文件是data.pak, 其中含有一个叫a.png的英文图片文件。2 l Z" o1 c# Z- _) A% {
我们可以构造一个小的包文件data_p1.pak,其中含有一个叫a.png的中文图片文件。
. Y% x' L: r8 Q$ f7 L由于data_p1.pak在排序后排在data.pak后面,将会被后读入,所以它里面的文件将会取代data.pak包里的同名文件。
8 G+ @4 x- H' ~9 S/ b g1 M( ]所以,最后那个中文图片文件将会被游戏使用。
. G3 q( P7 I p: u3 w
% c |8 f, V; ^6 A9 D2 M* j" J/ V我们掌握了这个原理以后,就有可能制作出比较小的汉化补丁。/ X3 e$ P/ {# F* s! ]7 D+ |3 e
热心的朋友可以试试看,playfirst sdk的.pfp文件是否支持这种补丁机制? |