最近看了一下纪念品 Keepsake这个游戏。
3 X) l: n4 u: G. m1 P* p发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。 ( [1 b9 `: F m( Y2 ]* M; i
字库在caligula和system,各为256张单独的字符图片。
+ e* A5 A P9 _0 [) E6 \1 r我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。
1 [ I5 f: _& b: [, Q! B. ~3 `抓图如下
- t# r) k ~5 y5 M4 ~
" r0 j$ A5 ?. R& Z7 b' V+ W: k. }+ E6 ?: G1 ]
用下内存断点的方法,找到了对话选择画面的文本显示函数 & h( C& ^1 X& i0 C+ [2 P
抓图如下 7 h6 R; F7 [" ]0 }& [9 n9 M
/ M/ w8 x( l. B! J
}3 i0 K. m, g3 b通过修改这几个地方的代码,就有希望实现此游戏的汉化。
7 Q# D, A0 T( v- h8 V
/ |" w$ h. Q+ O i3 g! t------------------------------------------------------- / ~8 L. T3 J. v& v6 _
2010.9.20 更新
' ~1 A! i9 n/ u- y5 d0 F
6 ^" Q8 n# L) @+ g* }, {最近又研究了一下这个游戏,又有了不少新的发现。 % g% g& C/ X# m7 g, o& `
我发现这个游戏用了不少opensource的东东。 " m) n6 I, W5 z
在bin\encoding下面,我们可以找到一个叫cp1252.enc。 6 m; Q2 O$ W7 U, |
在google上检索了一下,终于找到了这个东西的老家。 0 n6 \! E9 }2 d2 \2 c: s3 P1 W
在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。
/ _, K' Q5 I+ R7 [. [+ X, W1 Z3 Zhttp://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/ $ j& L7 c, s$ h4 _
在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 . x) \% J7 Z; ^9 J4 |; J3 C
关于这种脚本语言的介绍可以看这里
( F+ A& l" f0 y5 F: }http://en.wikipedia.org/wiki/Tcl
/ C% ?8 n- _1 A然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做 3 n5 B' q8 i9 ^) f) F* M
Crystal Space的开源游戏开发包,具体可以参考以下网址。 ! e7 g3 S2 z% K& f& [ e8 p2 V
http://www.crystalspace3d.org/main/Main_Page ( n+ [1 W* R5 k
综合以上的信息,也许可以找到汉化的方法。 ! q; S" ^1 x6 f( P1 z8 d+ S
3 [, U% s6 \/ }http://tmml.sourceforge.net/doc/tcl/encoding.html& G. q1 K/ |' ^0 C
http://tmml.sourceforge.net/doc/tcl/CEncoding.html/ b& H0 ^3 \, g/ w2 ^4 H7 x4 ^2 P
|