最近看了一下纪念品 Keepsake这个游戏。
8 n5 t/ }1 D7 R K发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。 : b# G0 ]; P8 _4 G
字库在caligula和system,各为256张单独的字符图片。 % X* L( v* n9 Z( V1 p0 k3 [
我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。 % _3 I( w j/ |% i
抓图如下 / r0 t' f" k3 n! o+ a5 E1 {
7 @; U8 ]* q5 b' f3 c4 L, g- ~' `$ I* l! I2 |- A
用下内存断点的方法,找到了对话选择画面的文本显示函数
0 Y* w5 w" x$ J9 j抓图如下 2 r L( w# b. k) f, ]
: f% }5 {* M( i6 H
9 \9 i; ~* k; Y$ z4 l1 m# U通过修改这几个地方的代码,就有希望实现此游戏的汉化。
. i5 _% _2 ~" O0 k+ J6 g0 d+ P2 u6 G a) n* o
------------------------------------------------------- 4 |7 G( |# l1 E9 j0 e3 p0 a4 e
2010.9.20 更新 0 r" |. X! A% W3 t
5 a$ A/ B) E4 {0 S9 A& m8 a; H9 z最近又研究了一下这个游戏,又有了不少新的发现。 % o% E2 d% V% N4 X: }
我发现这个游戏用了不少opensource的东东。 ) E" N1 c7 a- a# n
在bin\encoding下面,我们可以找到一个叫cp1252.enc。
- b4 p3 m2 f! D8 f x) R3 A& `3 _在google上检索了一下,终于找到了这个东西的老家。
7 J: C* p1 p, G3 w在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。
# {/ H4 [3 i1 j& V7 uhttp://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/ ; G* h) Q- d* B! G# N+ {
在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 9 |+ l" A$ k2 u- G
关于这种脚本语言的介绍可以看这里
3 ^# |' r- s" G, P/ Chttp://en.wikipedia.org/wiki/Tcl
0 Z+ x- k* w9 V然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做 6 c+ n8 Q9 f+ t( b' V/ {0 G
Crystal Space的开源游戏开发包,具体可以参考以下网址。 / m: h7 s( ~; ~, m8 `! O& \
http://www.crystalspace3d.org/main/Main_Page
; r: x! L; p% ?综合以上的信息,也许可以找到汉化的方法。 ; P" m5 z, g; O
2 K% P- ?/ U% z6 |' A/ Vhttp://tmml.sourceforge.net/doc/tcl/encoding.html9 Y- j' R1 {/ }2 h- n3 T: Q1 Y
http://tmml.sourceforge.net/doc/tcl/CEncoding.html
~/ T. Q7 _0 M# z8 y w; H8 R |