最近看了一下纪念品 Keepsake这个游戏。 ) W1 n) I& C3 X% f
发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。
5 [+ f! P. ]- `7 ]字库在caligula和system,各为256张单独的字符图片。 ; ?% J6 ?3 d# ?
我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。
3 ? ]! P: ]+ N0 l抓图如下 2 Y9 v, t8 A I. J4 e$ s: R* k
: X8 [1 F9 o- Z5 @5 p
6 H; m0 q" g, a) ?3 l; K用下内存断点的方法,找到了对话选择画面的文本显示函数 7 A7 H7 g9 z6 x/ n
抓图如下
* c( T" B- \8 q( l& W
" X4 ^: W$ h0 w) T; U# l/ S
$ O$ K! {% Q* l3 d8 ?通过修改这几个地方的代码,就有希望实现此游戏的汉化。
! h/ n% D1 G$ q) P
$ h' B; P) k6 O' O# R5 h. p0 b------------------------------------------------------- ( j8 }1 `& q6 m7 X! M6 U
2010.9.20 更新 / F7 I# }, n! ^, O: P
) a# ?. R' l. P$ h7 P) T0 j8 H9 }+ z% C
最近又研究了一下这个游戏,又有了不少新的发现。
/ _5 K% p6 {% ]2 V1 U我发现这个游戏用了不少opensource的东东。
$ P/ v. `, S4 c* \在bin\encoding下面,我们可以找到一个叫cp1252.enc。 7 }( l5 U* {: [. Y. U
在google上检索了一下,终于找到了这个东西的老家。 7 E, _- ^* I2 C
在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。 d$ j' ~- H3 s6 h& V2 r
http://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/
% s0 r" U8 M6 | L. [- x$ B3 ?在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 4 d$ ~" ^" B* W+ z2 q: J
关于这种脚本语言的介绍可以看这里
' i3 \# D. a% F7 \0 q8 ~7 ?+ a; shttp://en.wikipedia.org/wiki/Tcl
/ }5 ~: m6 W' e$ A0 g) i: Z然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
+ B0 u% | p+ v0 U0 q- f OCrystal Space的开源游戏开发包,具体可以参考以下网址。 3 m; V8 l+ U$ u0 b( b: X" ~; F. f
http://www.crystalspace3d.org/main/Main_Page
4 k# b8 a) r4 `4 s; e综合以上的信息,也许可以找到汉化的方法。 l5 j4 O8 y0 W- N' `- a4 ~: |" L" ]. D
) X K: X/ ~' W5 q& O$ z
http://tmml.sourceforge.net/doc/tcl/encoding.html
$ b8 X9 y8 B/ c! _) x/ J( Z f `) z& Bhttp://tmml.sourceforge.net/doc/tcl/CEncoding.html
# j. M' u3 l' }# G$ ?; C |