最近看了一下纪念品 Keepsake这个游戏。 . k, q3 c+ m x& D+ g
发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。
; c1 b/ x; s) q6 U字库在caligula和system,各为256张单独的字符图片。
9 s3 j+ f* U% B9 M( r& s我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。 ' M: d' w6 E* x' N' ^% a
抓图如下 9 B* t. h% o8 ^: R) @
4 ^% x9 ?7 D5 \. ~ _# S5 u
6 s' Z u, F' R3 J$ o1 r5 m用下内存断点的方法,找到了对话选择画面的文本显示函数 / T& z6 K! R8 @" O. j" g A. y
抓图如下 ( B7 X2 q l# t; Y6 P+ f
: o# e, d1 ?) M% @
, ~, d' J& B- W4 g; c" t' f- Z通过修改这几个地方的代码,就有希望实现此游戏的汉化。 6 K% @" Y5 q2 Q" n) q3 p
, W0 P# T0 H; b* S& C5 @
------------------------------------------------------- & }0 _3 } D( n" a
2010.9.20 更新 * o# ~: \( v. c) s3 w3 i
! Q- W, F) ]5 N2 g" `4 G! x+ ?最近又研究了一下这个游戏,又有了不少新的发现。 7 g( X* h& D& o$ j& d8 Q; E. B1 B
我发现这个游戏用了不少opensource的东东。
) T* }& w/ s. f; L在bin\encoding下面,我们可以找到一个叫cp1252.enc。
% `' F& [8 w: U0 R/ S在google上检索了一下,终于找到了这个东西的老家。
6 O6 Q4 q0 b1 Y% C. {6 L在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。
. A" _# h; T i2 |7 k$ Rhttp://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/
1 T: W2 |* {2 k' Y在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 % ^ N6 {3 P3 x2 N$ G5 V& e
关于这种脚本语言的介绍可以看这里 . p; y, ^0 q; w
http://en.wikipedia.org/wiki/Tcl & A( _) T# P9 ?2 a2 ^1 {
然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
$ O3 V ]- ]8 _! h3 I9 dCrystal Space的开源游戏开发包,具体可以参考以下网址。
, q! k& }. |* n, {: ihttp://www.crystalspace3d.org/main/Main_Page
9 U1 S9 Z1 M; t综合以上的信息,也许可以找到汉化的方法。 $ P: @! M/ _6 E* Q5 w
2 O6 M' m# Y/ ?) g: C2 E# K# Z c! g
http://tmml.sourceforge.net/doc/tcl/encoding.html
; l' [% @0 Q1 F C0 {" }: vhttp://tmml.sourceforge.net/doc/tcl/CEncoding.html
$ T8 p3 C/ ^1 B j |