最近看了一下纪念品 Keepsake这个游戏。 2 q3 e) h q( I. u# d/ ?* W
发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。
4 \% x( p" b e2 m5 i3 c+ S字库在caligula和system,各为256张单独的字符图片。 % u& S! ^2 B; L& H- ~' O0 ~5 a
我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。 t5 j: m+ E3 ~2 D# Y7 R7 M
抓图如下 " i5 S* y# [& L; {
* e I+ l: c+ d; _
2 e% r' N) ~! P& H c E用下内存断点的方法,找到了对话选择画面的文本显示函数 + i( p: H2 a H$ t$ N) _ P
抓图如下 9 W% t4 S8 ]2 Q. s- A
0 r0 @: a4 [* ]8 c$ q4 V+ u
* O) \( @- J- {通过修改这几个地方的代码,就有希望实现此游戏的汉化。 & b' b* M7 _2 k/ V7 ~* }
6 N+ `7 F0 @7 Q, N" a! B2 Q* ?, i% o------------------------------------------------------- 8 C$ F% H6 s( ?+ I9 Q& o, R
2010.9.20 更新 + h+ ?% L* H: D$ G2 m
& U$ v7 b% _/ i+ t! Z3 {最近又研究了一下这个游戏,又有了不少新的发现。 / v- ]' t6 P0 M9 Z
我发现这个游戏用了不少opensource的东东。
2 |$ f! |7 M7 {1 l8 V1 j在bin\encoding下面,我们可以找到一个叫cp1252.enc。
- u7 G5 R9 k( t. m: M( g% }在google上检索了一下,终于找到了这个东西的老家。 % h! G$ C$ v: ~+ S J m/ X7 T
在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。
# [3 [3 V% e; `* Ohttp://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/
- m+ s+ i* D1 C- x. _4 m在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 5 F- V8 ~; a; b" b9 C1 h
关于这种脚本语言的介绍可以看这里
a1 g$ |8 {* M2 i. o. C, fhttp://en.wikipedia.org/wiki/Tcl 9 h9 G3 M, J$ c; N9 z, g% d
然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
. p* T' ~! H. A1 P. ^+ wCrystal Space的开源游戏开发包,具体可以参考以下网址。 6 R/ `) L3 J! T# Y
http://www.crystalspace3d.org/main/Main_Page
0 O$ p1 E: z6 h$ |3 `4 O综合以上的信息,也许可以找到汉化的方法。 2 y8 n$ L* I& ^" g7 N ?
! |- ]- B( `4 r8 c5 b. {http://tmml.sourceforge.net/doc/tcl/encoding.html
( `8 ~: z. O1 R$ M, zhttp://tmml.sourceforge.net/doc/tcl/CEncoding.html* t, ?. ^% q3 ~
|