最近看了一下纪念品 Keepsake这个游戏。 1 ]4 M, C3 C: f& A0 n9 s
发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。
4 v- @+ n% m2 `! { E- U) `& _- ~字库在caligula和system,各为256张单独的字符图片。 * r0 w0 f6 C! A5 h8 M8 r
我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。 . r- V/ ]4 }9 j2 B8 J2 q
抓图如下 % L; Q) R5 n8 d8 ^ y# R1 z
- d5 j% {# J4 h3 [0 h
% m: q- ]7 T. B' q用下内存断点的方法,找到了对话选择画面的文本显示函数
# ~/ p4 w( M6 a8 P8 J' {/ V抓图如下 0 w/ W0 Z' Q. V) w! I7 m2 u" v
- g3 D( h" x Y: l
. S7 g9 [) n9 d# S9 d通过修改这几个地方的代码,就有希望实现此游戏的汉化。
5 Q5 i" C. `- q& r/ }* f
/ R. |7 g/ Z) i- Z2 b7 h) E------------------------------------------------------- 5 c0 K8 T2 [8 ]
2010.9.20 更新 : [5 b9 _, ]7 `' l3 J( s. O3 }3 a
* C- ]# s2 q# O* P
最近又研究了一下这个游戏,又有了不少新的发现。 % t/ f" U4 C4 L1 S+ D# x- {- o
我发现这个游戏用了不少opensource的东东。 , ?0 j! Y: }6 o
在bin\encoding下面,我们可以找到一个叫cp1252.enc。
+ ~* F5 S. y+ q4 y c( l! u在google上检索了一下,终于找到了这个东西的老家。
- y+ P$ A& x& G6 g& a/ C在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。 / ]& g7 c3 t9 Q' K2 U6 ?
http://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/
7 o$ ]( ^9 V" f J. m( i- a4 R在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。
+ K4 f! \% c9 z7 _6 b4 ?) E! M关于这种脚本语言的介绍可以看这里
) N) a9 i# t/ W& C3 ahttp://en.wikipedia.org/wiki/Tcl 7 Z" f0 ]; g1 D# u' j3 t
然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
/ _5 u9 @; T& t. @Crystal Space的开源游戏开发包,具体可以参考以下网址。
$ u, e# n0 @9 y! t) _" q2 d Q5 Nhttp://www.crystalspace3d.org/main/Main_Page
8 V6 z/ h% W0 Y$ X综合以上的信息,也许可以找到汉化的方法。
4 g6 P' S3 \4 K8 P
0 ~$ J1 |: z( Q& Chttp://tmml.sourceforge.net/doc/tcl/encoding.html
; y# d/ d* s) h% j* }http://tmml.sourceforge.net/doc/tcl/CEncoding.html
$ A2 [$ A, f) e# q( f$ A8 ], \% R% j$ f |