老外放出了一个静物2数据文件样本。 4 c. e2 F& O: b
http://rs706.rapidshare.com/files/216482719/Sl2data.zip
+ C! h3 Z$ R P" c4 d0 Y6 g: {有巳さ呐笥芽梢匝芯恳幌隆?
- |; q) n& e, n$ {/ B8 p8 E/ I( p7 O) \5 j. p1 C7 k
--------------------------------------------------
3 M) Y6 o+ s3 w& ^+ z. L# w2009.4.4 第1次更新
2 D2 ?' x$ |8 t x1 k老外放出了静物2包文件的异或key,据说解密以后文件的格式很简单。 " E m8 z% G% {$ p
2923BE84E16CD6AE529049F1F1BBE9EB $ k( x, _$ ^' ]3 R4 _
' u# M! P. K+ L- C" x7 ^7 o7 V--------------------------------------------------
: h9 o) e& T' P2009.4.4 第2次更新
, I$ U0 D: J5 f测试了一下上面的异或key,结果正确。解密后的文件为不压缩的简单格式包文件。
" u+ C0 @8 b$ ]1 G: R1 Z放上异或解密工具,在工具包里有一个例子,异或key就在key.txt中。 ' @$ N1 F- l9 y2 ]0 u" p9 k. y. A, {
4 l- b& [; r1 j4 q8 M! r4 V
--------------------------------------------------
3 q, k2 q6 r7 Z% \5 u7 t2009.4.4 第3次更新
1 |; R* C1 b7 v- e5 @静物2采用wild-dna公司开发的3D引擎。网址如下。 4 r; T0 K8 y+ n1 f X# r
http://www.wild-dna.com/main.html
) b/ I# T* h9 Y; ^# X6 Hhttp://www.gamecostudios.com/xcengine.html
/ ?) b/ @9 A& u- v* Y: i. J* z- y/ k7 A7 u. s, y
-------------------------------------------------- , A X: _3 Z, P5 T
2009.4.8 更新 " I6 V w4 q/ M b! f
老外公布了静物2包文件的格式。
6 _- |4 ~2 \5 ^2 S0 | G+ K( A- A) ]0x04 //"GMGB" 3 v9 ^ F# n6 q7 s- m5 w6 w
0x04 //Number of files
4 c8 O& `; A. f1 I# h5 S6 `) t+ l
for each file {
0 F3 z8 ^2 H: k) T) T0 q7 }
Q* o( ^: \: m0xX path and filename : C; I. X4 H6 D% l: r3 a
0x01 0x00
, f! y6 }. [1 @4 ?8 e0x04 file length
) @3 p, H2 p! E0 m4 @/ c0x01 0x00 % K8 ^- v4 P. V9 ~ i% a; x9 b$ P& \
}
h; y2 C# ]6 t9 D3 J, d: D4 ^
' w* i8 K0 u* W: \--------------------------------------------------
; t1 o" P( C' J8 w/ ?2009.4.17 更新 5 \' u1 n4 X4 X3 N+ Z2 m# _6 @
老外动作很快,通用解包器quickbms发布以后很快发布了静物2的解包脚本。 + o7 p8 ~( H1 X+ \
用法如下
& ]6 F( r3 j( B0 t" V5 v5 wquickbms.exe stillife2.bms c:\Sl2data.dat c:\folder
; F" y! ` w" m. R0 i8 @
0 @2 ^+ o1 g8 c$ n$ K0 v--------------------------------------------------
4 Z4 ^' h3 z( f% X! }2009.5.16 更新
' _" ^1 w" q y2 }6 p5 F最近又有一些细小但是可能比较重要的发现。 : j8 h G; C$ @" o5 Y. z* x0 E
用filemon跟踪了一下发现这个游戏支持读取解包后的字体文件Sl2fnt.dat。
( B& `3 @9 X/ U第2个发现可能很重要,我把Sl2fnt.dat改名后发现游戏竟然能正常运行,此时使用了一种奇怪的字体。此种字体和原来的字体明显不同,并且显示有些不正常。我怀疑是某种系统的TTF字体被强制用不正确的参数显示而导致的。如果真是这样的话,我们无疑看到了一丝汉化的曙光。 9 {# H( f3 m- \/ e
弄清楚这谜一般的字体来源是接下去要研究的课题。
' Q, E( J9 B2 u$ g3 s+ ]下面是此字体画面抓图。
& m3 r. x2 T: J( x
. C3 e. n2 @$ y! c# F& y& u; k/ o) H7 i% P' F& t: q. h; ?
-------------------------------------------------- 5 @% @* L* _; N+ ~0 w/ i
2009.6.26 更新
9 p+ R3 W0 U' z) a- u! ~' W经过老外的分析,把Sl2fnt.dat文件删除以后,游戏会自动寻找系统字体arial.tff。
5 a+ D# o2 K) V8 b. f老外还放上了清晰的抓图。就是说我们目前已经可以把静物2转化为一个使用TTF字库的游戏,如果有办法HOOK显示函数的话,也许可以用比较简单的方法实现汉化。
/ x. t+ T) L, U放上抓图 4 g8 e5 I, t( j2 Z
& O4 s* R/ g. i0 a1 L% M
; I% U+ C( y Y1 x- p( x( b: ~--------------------------------------------------
) b, B4 ~& V: c$ p5 A& u2009.6.27 更新 * t9 v6 [2 t! R6 {6 Q7 V( ?: r
我在另一台电脑上试验了一下,可以显示出正常的英文。
- ^ Z5 U. m: L2 z3 t+ `: u我用上面的异或工具解密了字幕文件Sl2data.dat,然后写入一个中文字,再用异或工具异或一次。发现只有这个字的低字节被显示出来,高字节被过滤了。 ; x3 D2 E. x( r- H
我觉得分析到这里基本可以知道实现汉化的方法了,就是用OD分析一下,找到那个过滤点,使游戏一下子读取2个字节,这样游戏应该就能显示出中文。 5 w W. C/ E5 n& a, b% U# `
肥牛如果有时间的话,希望能尝试一下。拜托了。
* P5 e! v; @# ?- _( ?2 ^需要修改的可能是xcEngine.dll这个文件。
8 m; Y( c% m! f+ v" m' j! }0 [% P+ U4 K2 D) D9 y
抓图如下,显示出来的是 汉 这个字的低字节部分
$ t* ]+ _, X! j* J% H
# T2 y0 Y% O1 `1 ]
3 n# Z) \0 X) ?5 {# e0 D; r* c--------------------------------------------------
/ |; ^2 Z* E3 J6 G/ T2010.2.2 更新 $ `* V0 q9 f" m) G7 P
我电脑上的静物2,在一开场2人打完电话以后,就会崩溃。/ V U& `6 u, d9 W( ?' s
研究了一段时间,发现可能是我显卡较老,只有128M显存的缘故。
- U8 p* e y- q: c9 Y7 x$ K+ h+ ~) O把option的Shadow Quality改为low以后,解决了上述的崩溃问题。 |