最近看了一下纪念品 Keepsake这个游戏。
% W# L9 ~4 x) @, B4 L发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。 3 Y& i3 h# A7 V' ]
字库在caligula和system,各为256张单独的字符图片。
w0 L. W& _% ^我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。
9 q6 ?4 v4 s$ s1 k8 H抓图如下
( g0 D* W h- Z
- }4 e( j( m' }% v) Z8 {( [& r
0 }4 L. J" t) E用下内存断点的方法,找到了对话选择画面的文本显示函数 _# F# C" b8 N" C; q
抓图如下 8 J5 [( r2 r! R; p6 H
1 q8 L }+ a L' y, }
( n# a- a3 t8 j7 r通过修改这几个地方的代码,就有希望实现此游戏的汉化。
1 v' e' O$ y6 b/ x
8 _2 i+ E4 Z6 x5 E. `------------------------------------------------------- |, b7 X6 Z: {3 z8 q) ~
2010.9.20 更新 % W5 Z. [; F' d6 J; B" A
2 p& t$ M8 ?. g) f最近又研究了一下这个游戏,又有了不少新的发现。 ; M" s0 L, j2 K! e, t/ H- s
我发现这个游戏用了不少opensource的东东。 * ]6 f$ \' ^' C) l; u! G% R
在bin\encoding下面,我们可以找到一个叫cp1252.enc。 4 s' M' f9 U# n7 Q/ n
在google上检索了一下,终于找到了这个东西的老家。
I0 t5 Y% I. }2 ^2 c3 o3 L在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。
3 z* Q% i$ {. r( N! B7 r( H9 h8 jhttp://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/ / i6 _! m; u3 X# X5 ?
在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 & _. ]1 W" V8 ]1 ~9 E8 [- @* E4 Q
关于这种脚本语言的介绍可以看这里
^& T5 u+ y7 D/ E& v: Dhttp://en.wikipedia.org/wiki/Tcl
3 C3 T1 G4 O2 _1 j$ ^7 d然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
$ r0 ]7 h0 B: P: x K. }Crystal Space的开源游戏开发包,具体可以参考以下网址。 # L& T. R& z# l: d0 G* y& G) `
http://www.crystalspace3d.org/main/Main_Page : i a1 i0 W8 y( n& C9 d
综合以上的信息,也许可以找到汉化的方法。 1 h9 Z7 M/ V Y$ J
7 L3 j: u) E- ~4 Y, B
http://tmml.sourceforge.net/doc/tcl/encoding.html* O7 M/ @: a% C$ S; C5 g6 a
http://tmml.sourceforge.net/doc/tcl/CEncoding.html+ i2 S* R- B) T2 |
|