最近看了一下纪念品 Keepsake这个游戏。
: R I* @3 Y0 d0 B4 o0 n发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。
) `6 a9 Y- r6 O$ D0 U! @字库在caligula和system,各为256张单独的字符图片。 $ e1 [6 @: s+ B! R& g$ q
我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。 $ }$ i6 u; `4 d* o- U# T
抓图如下 : I% ?# M: F9 |) ?/ w: m
- K( y( B/ O! V% N3 w$ ?3 ^
! L' L" I* F0 Z- g" e
用下内存断点的方法,找到了对话选择画面的文本显示函数 3 ~) K3 S* F. C6 j7 G6 f$ Q5 v7 s
抓图如下
& H" y5 n3 K& l9 H. N * S3 {2 t4 n9 c# c$ P3 w
7 b1 a" g4 f$ q1 J( r+ ?$ w8 a通过修改这几个地方的代码,就有希望实现此游戏的汉化。 , ~# F/ z" S8 m. f! q
% ]9 E; ]& @6 G2 V% ~" d! ^
------------------------------------------------------- " r# x U' D$ m
2010.9.20 更新
8 e0 \0 R! U" I
/ ?9 H4 w; {; y/ w+ Q最近又研究了一下这个游戏,又有了不少新的发现。
! j- r- `( l6 P我发现这个游戏用了不少opensource的东东。
U, `( X4 E9 K" A9 T& Z4 p. A+ c在bin\encoding下面,我们可以找到一个叫cp1252.enc。 + U! i2 A; l+ N: t
在google上检索了一下,终于找到了这个东西的老家。
& f' h9 O0 C1 M( x6 B& L" ?在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。 + i$ K( t4 l+ X1 a+ ~- @
http://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/
4 ~. b$ B/ y* G& O6 Y8 \: p" a) Y在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。
$ |# T+ }; l2 ^# S( ~关于这种脚本语言的介绍可以看这里
# k3 x. A1 r7 c f' Uhttp://en.wikipedia.org/wiki/Tcl
2 D# ?! M0 h3 [7 c( R, E2 \- J) B然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
9 Z( ~" ~0 E% u( [Crystal Space的开源游戏开发包,具体可以参考以下网址。
0 E4 ^" d0 n) p# Dhttp://www.crystalspace3d.org/main/Main_Page % s' l: G" g! V: l% ?1 p m2 c: S
综合以上的信息,也许可以找到汉化的方法。
& z. J( m- [, s! ^) D2 ]' G' Y% c1 f5 R4 v
http://tmml.sourceforge.net/doc/tcl/encoding.html1 p1 Q! {! H/ R$ W
http://tmml.sourceforge.net/doc/tcl/CEncoding.html* k5 n) Q" f) q x Z0 G- i
|