最近看了一下纪念品 Keepsake这个游戏。 : M$ c$ D2 [+ a, U% S n
发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。 : g2 \' J& q' M1 s" X O' O
字库在caligula和system,各为256张单独的字符图片。
2 K9 z& Q2 u8 J S我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。 6 B$ P8 j3 f( N( c7 A0 L# w
抓图如下 ; R' g% k) ~& @1 a
4 t0 P- |7 T2 f4 q
' ]7 D4 _! M: B! a" S0 V. O5 D
用下内存断点的方法,找到了对话选择画面的文本显示函数 3 b, x& o1 H- {+ T6 ~, x5 @
抓图如下 , P4 d3 H4 ^4 z4 A% s) T/ a2 X
& ]1 v7 ^7 \; W$ [0 K
$ ]3 V4 w& o. U$ p+ t通过修改这几个地方的代码,就有希望实现此游戏的汉化。 , O$ i$ j6 a8 q. m
! r+ j+ q7 k) e: |
------------------------------------------------------- : w8 ] z" x! Z$ M
2010.9.20 更新 / ~* A9 e0 e+ b+ B
# C" q6 q9 o8 I: {( z最近又研究了一下这个游戏,又有了不少新的发现。 ; v7 b6 P8 t e( t' O
我发现这个游戏用了不少opensource的东东。 : ^, {) h( ]8 D) B/ I5 F
在bin\encoding下面,我们可以找到一个叫cp1252.enc。
5 m/ O2 }1 l+ r* y/ h在google上检索了一下,终于找到了这个东西的老家。 4 ^% I. M0 W) V5 L/ [
在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。 ! P) C# X/ F& o0 l5 h
http://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/
, {; H& c0 E8 Q2 p4 Z+ y在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 4 e- t! ~& k* M) E& c
关于这种脚本语言的介绍可以看这里
* {- P3 E4 E' b! L/ D/ [1 h# jhttp://en.wikipedia.org/wiki/Tcl
" H6 b) D2 D# n6 L然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做 2 u5 ~; g* u+ j3 b. N6 Z
Crystal Space的开源游戏开发包,具体可以参考以下网址。
: N% N2 q: Q) q3 e0 e, xhttp://www.crystalspace3d.org/main/Main_Page
* v+ u: ?) t. j1 R综合以上的信息,也许可以找到汉化的方法。
0 [. e* F$ [2 [9 ^( M/ w, q: n8 R4 G' a9 f
http://tmml.sourceforge.net/doc/tcl/encoding.html
" h) F- Y" b6 y1 e# P/ B# thttp://tmml.sourceforge.net/doc/tcl/CEncoding.html# n: {6 o5 H) M! z
|