最近看了一下纪念品 Keepsake这个游戏。
* D# G9 J6 |, T+ h% ~9 T( ]6 {4 s发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。 + g+ ?! m4 m: D5 ?9 r( r
字库在caligula和system,各为256张单独的字符图片。 1 r }* j4 z0 k& n
我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。 4 @" y2 l9 P, ~5 l7 ^- n
抓图如下 4 }5 Y. ?2 j1 ?# q
, N' C8 n" P) }, q3 e; v1 l; B9 u
/ Y+ B3 q- q: _' T用下内存断点的方法,找到了对话选择画面的文本显示函数
l1 |7 e( g* j3 u抓图如下
: E/ ^! `5 ?( k- ` ' B, i' H6 J Q
) s8 u+ ]6 L C# q. `! k$ |" @* a8 P
通过修改这几个地方的代码,就有希望实现此游戏的汉化。 - A9 w z. H! f
$ y2 N7 Q3 I# E0 q: l/ v7 R
-------------------------------------------------------
% _. U7 V8 {% ]1 j2010.9.20 更新
; `* s }! C* P7 L& ?
- k) G# u# Y- y0 J$ P. F J% x最近又研究了一下这个游戏,又有了不少新的发现。 6 Z+ k! F% E- {: B% h s7 J: {
我发现这个游戏用了不少opensource的东东。 5 _ g/ w* i( p1 j6 F
在bin\encoding下面,我们可以找到一个叫cp1252.enc。 . _$ v+ c0 a: m. f7 C8 O% |' a
在google上检索了一下,终于找到了这个东西的老家。
5 B7 E- |3 b" P% T( ^3 l* c在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。
: y4 e% n* ] c( a7 Mhttp://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/ 9 t0 O3 o v1 C! O T
在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。
3 H n0 \( X+ f关于这种脚本语言的介绍可以看这里 5 ~) a4 Q$ `4 _6 }
http://en.wikipedia.org/wiki/Tcl
) ]- z& N7 r$ e$ ] D9 q, V( ~然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
8 ^; U, n. [' vCrystal Space的开源游戏开发包,具体可以参考以下网址。 1 d7 U5 F' m6 s9 E2 ~
http://www.crystalspace3d.org/main/Main_Page 2 s$ k3 X$ G7 v
综合以上的信息,也许可以找到汉化的方法。
5 t% l+ D/ i$ f/ b6 Q9 {# ]( c' B
- k, g% p0 S+ p1 p6 c9 w9 Bhttp://tmml.sourceforge.net/doc/tcl/encoding.html5 j& S( j3 {- g
http://tmml.sourceforge.net/doc/tcl/CEncoding.html
& m6 H2 H. {& R {% f3 ~! p3 y |