最近看了一下纪念品 Keepsake这个游戏。
- D/ t x4 e2 w( g* c& s) K发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。
* z6 a* |/ Q5 y: p4 X字库在caligula和system,各为256张单独的字符图片。
0 Y) S; @9 t6 c- _( J) J我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。 5 U+ q+ ]* O! [( ?
抓图如下
/ V2 H- y4 R8 i
/ m5 T+ r V& K8 r1 |: C# l% d4 |
. ~1 z7 X0 k& z用下内存断点的方法,找到了对话选择画面的文本显示函数
" C8 ~ z7 [ m! F抓图如下 d% s, ]6 r) S: j# B1 d( S) O
! Q' B9 t' c( I
8 K8 C. H( M2 o! N0 K" N2 o8 \
通过修改这几个地方的代码,就有希望实现此游戏的汉化。 2 h9 W/ `6 @$ L3 w$ t) I- ]0 w
2 {/ e; M" I2 B/ ~-------------------------------------------------------
# N# Y+ b1 b8 T n1 |2010.9.20 更新
; [6 L) m+ i. C
4 m) ?$ ?, y$ ^ d3 F) U最近又研究了一下这个游戏,又有了不少新的发现。
: n7 Z2 i; d6 a, t3 s我发现这个游戏用了不少opensource的东东。 " j4 I- _/ i: t! J2 s: ~7 j3 D U2 l6 a
在bin\encoding下面,我们可以找到一个叫cp1252.enc。
, l; ^/ u% |0 P9 p' u u& _在google上检索了一下,终于找到了这个东西的老家。 : N9 S; t7 {8 o
在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。
" ^4 k X3 q3 U' L. Jhttp://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/
! y0 h- J4 c3 s7 P8 c/ g: P# d在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 + t" e: o& O7 @. D' ~9 ^1 o
关于这种脚本语言的介绍可以看这里
7 v; b7 Q7 g; e5 mhttp://en.wikipedia.org/wiki/Tcl
. {/ a. N+ b6 W) i5 }( N: b然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
5 O7 h& T! G/ B* J* NCrystal Space的开源游戏开发包,具体可以参考以下网址。
8 N3 ~; I% P5 w3 i8 E7 Ghttp://www.crystalspace3d.org/main/Main_Page / z) R$ D: Z( p* _1 u
综合以上的信息,也许可以找到汉化的方法。 " T* U, d( n* r' Z7 N
% o( K( W( p( {8 z: [
http://tmml.sourceforge.net/doc/tcl/encoding.html- C8 D) k- j* J. @3 p
http://tmml.sourceforge.net/doc/tcl/CEncoding.html% |$ Z+ d& X; a8 }" s" v& N
|