最近看了一下纪念品 Keepsake这个游戏。
* T4 l. `* d* k. V- i发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。
7 [( E" d3 u4 o( \+ h+ `字库在caligula和system,各为256张单独的字符图片。
+ }5 i5 w# Z7 ?' p/ d& x, p/ V* A我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。
/ I C' `8 P4 A$ ]( E# U4 E$ k抓图如下 , Q/ ~/ G |) P. D1 Y [$ f
0 {) A% M) e+ }3 i) c F2 I& h
; {3 h |1 |! }# y用下内存断点的方法,找到了对话选择画面的文本显示函数 1 M$ I% [4 P2 J0 b
抓图如下
0 i, F- ^, _+ \9 `) g3 ~, Q7 o ! l: V# z( R6 |* ~- p0 C$ p
9 g# N! W: h! Y, ~1 v
通过修改这几个地方的代码,就有希望实现此游戏的汉化。 7 }$ y8 |& o! d, V
) @) ]. ?: _1 C-------------------------------------------------------
2 @' l' }0 v9 q. _8 s2010.9.20 更新 9 e" G' c' g' E
7 [; x& n8 \1 G0 `# J最近又研究了一下这个游戏,又有了不少新的发现。 : O% y% S- ^' r+ d
我发现这个游戏用了不少opensource的东东。 ; p4 ~- M9 T4 _
在bin\encoding下面,我们可以找到一个叫cp1252.enc。 X8 M4 ~6 V4 k8 R& a
在google上检索了一下,终于找到了这个东西的老家。
% ^3 r3 T' C3 I5 d在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。
( j2 ^; b+ s1 ?$ y& r$ M* Mhttp://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/
( F+ Z ]" I2 c在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 # u5 N3 C/ |% u8 `* e
关于这种脚本语言的介绍可以看这里 ! S5 A4 ]9 _ F7 c7 X6 S
http://en.wikipedia.org/wiki/Tcl 5 H# ~# q. X2 X
然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
4 J, G. O& p$ r0 d8 l2 |Crystal Space的开源游戏开发包,具体可以参考以下网址。
. u, C6 I, }. @8 g- w% Q& Z/ lhttp://www.crystalspace3d.org/main/Main_Page 9 {" i8 r* W2 r* e
综合以上的信息,也许可以找到汉化的方法。 * R7 v9 O& G2 g1 Q2 R1 z/ \, f
, S) }0 V+ e8 F, E1 d
http://tmml.sourceforge.net/doc/tcl/encoding.html) \, u8 K2 W* w4 i
http://tmml.sourceforge.net/doc/tcl/CEncoding.html
+ a+ o, a2 J0 J. |# V7 { |