最近看了一下纪念品 Keepsake这个游戏。
7 @. C/ \6 F# |9 g' s- C# G1 G发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。
" K; E4 d7 k; `. f字库在caligula和system,各为256张单独的字符图片。 & ^) D& v) Z8 ]- J _
我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。
C( g; X V, E5 `' y抓图如下
8 p# |$ ]1 ~6 K2 q: ?1 g
k! h( c8 K" r& \: G s/ V* N& u
用下内存断点的方法,找到了对话选择画面的文本显示函数
+ u5 D- v0 \: N: F抓图如下
8 e2 g" k, b: S 3 M+ g- f' i5 a9 m( X4 n0 O
, {$ h7 L @" L; Z
通过修改这几个地方的代码,就有希望实现此游戏的汉化。 6 S4 h E" U+ g# D( ?
/ r) r$ y. V" [: g-------------------------------------------------------
: l3 p; m% l, B4 G1 }2010.9.20 更新 : F7 \" N+ S! [! X1 T
' w8 x7 r" v* u5 ^5 W. r0 |/ p最近又研究了一下这个游戏,又有了不少新的发现。 , n, k7 G& {0 P+ Z, E7 v" I
我发现这个游戏用了不少opensource的东东。
/ ^$ ^/ ^6 l) ^* F% o在bin\encoding下面,我们可以找到一个叫cp1252.enc。
$ X/ C5 ]$ P) C" K$ L在google上检索了一下,终于找到了这个东西的老家。 - M: _' @; o* ?; m+ L2 c: i4 E3 ~/ z
在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。
* l# ~& v9 q( ]- phttp://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/ 2 s; Q/ g5 @% H @
在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 - ?, A6 f. v: l& D( a d4 O
关于这种脚本语言的介绍可以看这里 # u. C( l i9 \. {8 L9 I
http://en.wikipedia.org/wiki/Tcl
: U& O3 o" K, u) `" H然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
6 p. @. b9 Q4 p% N* K4 [) nCrystal Space的开源游戏开发包,具体可以参考以下网址。 / F, a% d S9 Z/ L3 u" b) c C q
http://www.crystalspace3d.org/main/Main_Page
/ N7 Z, X* g2 |! C" N i综合以上的信息,也许可以找到汉化的方法。 + y. z) T4 q6 [2 A3 J; H/ Z n3 B
2 h1 Q' f6 h7 n" r$ g% m& O
http://tmml.sourceforge.net/doc/tcl/encoding.html
0 y% x1 z, z+ C) [ r+ @/ ihttp://tmml.sourceforge.net/doc/tcl/CEncoding.html6 b6 B1 D3 H) a0 D1 x
|