最近看了一下纪念品 Keepsake这个游戏。
& U w$ J! p6 Q) c8 m3 V8 [发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。
# |% s- X" S& G9 Q字库在caligula和system,各为256张单独的字符图片。
7 I/ i' z7 y- v我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。 5 K# G% A/ l: c3 l% S, ~9 A2 a
抓图如下
0 x2 W" @' |6 P / B- g3 U% [6 c- j3 m
* V7 [' n3 f6 ?* _+ l用下内存断点的方法,找到了对话选择画面的文本显示函数
. B& Q% x6 {8 G4 c抓图如下 4 Z& `/ o8 d9 Z, f9 f1 \* S! w- n! \
5 x+ M) N/ l+ M6 a# i# _
! C& D( w6 h2 S% D
通过修改这几个地方的代码,就有希望实现此游戏的汉化。
- D5 @; {0 P2 m4 l4 U- }" K N% }% h' f% w
-------------------------------------------------------
/ z# A9 l1 F9 b' D2010.9.20 更新
6 M% _6 r* |+ r1 w" H; W6 P) j9 A) A3 _* w
最近又研究了一下这个游戏,又有了不少新的发现。
. k* ^- z- o4 o! X: ^我发现这个游戏用了不少opensource的东东。 . f3 o6 q5 ^! d$ |& Z" M$ O/ Z
在bin\encoding下面,我们可以找到一个叫cp1252.enc。 & G2 T* P; t) D; g, x' `( n1 ^0 j
在google上检索了一下,终于找到了这个东西的老家。
4 R( h( K8 p, t" ]在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。
0 d$ W! V9 j' U. ]" L' }) ~http://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/ 4 @4 u/ O e+ x% K
在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 - ?7 X8 Z* t. H$ r
关于这种脚本语言的介绍可以看这里 , t& B e" ~4 U
http://en.wikipedia.org/wiki/Tcl
8 C9 ]5 E; h+ N7 [: u: [& Q然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
; K5 L0 G3 M1 t( G( BCrystal Space的开源游戏开发包,具体可以参考以下网址。 * `% N- E9 \+ e" f ^/ h5 A% s
http://www.crystalspace3d.org/main/Main_Page
( x' ~' _, D4 Q综合以上的信息,也许可以找到汉化的方法。 * Y& t: k. \) f P
5 x4 H. ~# ~6 W
http://tmml.sourceforge.net/doc/tcl/encoding.html: b- [ O7 j) d$ W: j
http://tmml.sourceforge.net/doc/tcl/CEncoding.html! [+ s5 E/ F3 I, k, p
|