最近看了一下纪念品 Keepsake这个游戏。 7 j' ^. u* V# B" E3 q) G5 r4 ?
发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。 7 l& a2 H3 I6 M! o
字库在caligula和system,各为256张单独的字符图片。
; S8 a# `( i9 X, j我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。
0 m0 d% ?2 H S$ ?- ?6 W( G抓图如下 # Q% {; @" `" u6 |$ u
$ ?# ~- M3 [' ]" Q# ~
) d l8 H- i$ ]) H3 t
用下内存断点的方法,找到了对话选择画面的文本显示函数
8 _* N% e) {, d! p抓图如下 5 u8 |1 s/ [/ X$ i' ~
z9 O. v: T b1 n+ ~( ^
: E( F' D' Y7 C7 P1 U( D( t通过修改这几个地方的代码,就有希望实现此游戏的汉化。
3 ^ {; |( |, U ^( [' B/ I3 V- b' G+ `+ V1 w
-------------------------------------------------------
# m( f' H1 Q Q# _2010.9.20 更新 & `! ` S( U$ B8 y: i3 `' x
d. z' ]) `% v( E2 d最近又研究了一下这个游戏,又有了不少新的发现。
5 y% s( l# P$ T/ B% l7 g, [我发现这个游戏用了不少opensource的东东。 * u, [5 i& v" k: h, C. W
在bin\encoding下面,我们可以找到一个叫cp1252.enc。
B. ~3 i4 h3 i* l* O" `在google上检索了一下,终于找到了这个东西的老家。
, Y8 [/ a& O. W4 j8 D0 t n8 s F在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。
. ~$ n E/ U* S- z& |2 @http://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/
2 L; ]: c+ G) x8 D# H; v在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。
5 Q/ ~/ S4 t o+ B) b; }% V关于这种脚本语言的介绍可以看这里
8 J& D7 ~% R0 A: n, @0 P! \8 ~http://en.wikipedia.org/wiki/Tcl ; ~, k. t# Y0 O: @" j, s
然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做 5 s5 l" j# D: m/ w' I1 Z* _6 v
Crystal Space的开源游戏开发包,具体可以参考以下网址。
+ {& z2 Q6 q% _! r2 D7 [http://www.crystalspace3d.org/main/Main_Page
: T2 h3 y+ K) }# {- I3 Y, X综合以上的信息,也许可以找到汉化的方法。
9 V4 y: a! c& j3 n) H& I7 w7 n/ P; n" g5 P
http://tmml.sourceforge.net/doc/tcl/encoding.html
0 v! l, `# n( T. c# D" X9 fhttp://tmml.sourceforge.net/doc/tcl/CEncoding.html
% ^( Z( K& X0 j |