随着对游戏包文件的深入研究,我还发现不少游戏的包文件存在一种补丁机制。
; b1 Q0 B- f! T5 Q' P
7 ~6 J% [3 r& s2 Q补丁机制简述如下( c# J; Z$ Q3 m
游戏一般会按文件名的字母顺序读入相同后缀的包文件,如果在不同的包文件里存在相同的文件的话,& y; s% Z% k# h4 ]9 b: Z
则后读入的文件优先度比较高,将会被游戏优先使用。% z( T8 {4 l- d
+ @$ d# e* M3 |; L% ^
举例
7 W& ?1 u# k. B/ r% C假设游戏的包文件是data.pak, 其中含有一个叫a.png的英文图片文件。
! E: \' [8 h3 `' f% O. C我们可以构造一个小的包文件data_p1.pak,其中含有一个叫a.png的中文图片文件。
$ X: M/ m8 R$ y* u" w+ `" N由于data_p1.pak在排序后排在data.pak后面,将会被后读入,所以它里面的文件将会取代data.pak包里的同名文件。9 T; W. j8 I# |' s9 `6 X
所以,最后那个中文图片文件将会被游戏使用。3 k* C) |, s- O X5 P1 V8 l
2 t" |# ^- x* Q/ Y2 Q我们掌握了这个原理以后,就有可能制作出比较小的汉化补丁。# R7 x2 A5 ]* y8 i9 J9 |
热心的朋友可以试试看,playfirst sdk的.pfp文件是否支持这种补丁机制? |