最近看了一下纪念品 Keepsake这个游戏。 - b( u9 B9 s6 R; W" X" \# ~
发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。
8 U9 ]1 m S2 Z+ c, ~, G字库在caligula和system,各为256张单独的字符图片。
5 i: r0 x9 ^7 ^& D- f" ?. q, a我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。 4 Y, J8 \; W3 S$ W
抓图如下 T, u* M# g7 t( O7 @0 B! b- O
; Q/ P+ `7 s( R) W6 s5 \+ D, l Q
~- ^) @' o% C$ S用下内存断点的方法,找到了对话选择画面的文本显示函数
2 I0 r. `+ M+ _1 A抓图如下 ; j' F9 d+ L. \$ }- V" w! v) F
% D, M# O! v3 ` D- Y! X D: ]$ v
5 m+ w9 }# g9 k0 `
通过修改这几个地方的代码,就有希望实现此游戏的汉化。
, v7 G# C1 d9 v. e: l* A+ s2 Q' ~
9 u: r0 h4 [; j) N; Q------------------------------------------------------- + I8 B+ Y ?) F1 w4 M
2010.9.20 更新
& X* R4 j* x2 P" m4 ]1 Q; w0 K, j/ A9 R
最近又研究了一下这个游戏,又有了不少新的发现。 * F% w x+ u6 `3 k
我发现这个游戏用了不少opensource的东东。 * z& C( I% I* G3 P
在bin\encoding下面,我们可以找到一个叫cp1252.enc。 " \. E% [) r/ Q" o3 N w* d
在google上检索了一下,终于找到了这个东西的老家。 / b" ]2 P( u. X# V4 V4 f
在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。 . y, O$ ] d& l4 }
http://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/ { c, j0 R% w o1 p+ K5 K
在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。 5 |' i: F7 _) c# ^5 @7 @
关于这种脚本语言的介绍可以看这里
2 z* T3 V# Q6 Lhttp://en.wikipedia.org/wiki/Tcl
* b ]' {+ E1 t5 v6 P9 y然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做
6 b6 C5 @ r: o. Y2 d5 j8 fCrystal Space的开源游戏开发包,具体可以参考以下网址。 ; M4 P1 q& h! N' E% D, s
http://www.crystalspace3d.org/main/Main_Page
1 {' D2 H# }" E4 w/ ?综合以上的信息,也许可以找到汉化的方法。 ! B2 ]) H3 v/ {: e. S4 |% ]) H* h% ~
/ i" Q' w# L1 ^7 P! m5 q
http://tmml.sourceforge.net/doc/tcl/encoding.html, t( n( O2 ]6 j c% x6 ?9 o) j
http://tmml.sourceforge.net/doc/tcl/CEncoding.html0 N7 |* S; K7 d7 _; H$ l; O
|