最近看了一下纪念品 Keepsake这个游戏。
" J5 H% w. _5 O9 s4 y/ J9 ^5 D7 K) h发现这个游戏使用的是\res\interface\1024x768\font 目录下面的2个图片字库。 % C, e9 h4 n/ ` @7 G0 i
字库在caligula和system,各为256张单独的字符图片。 % _8 g& @# U0 q n1 D3 g. E
我用OD在\bin\keepsake.dll 里找到了程序读取图片字库的函数。 , |3 {/ h4 E8 ~. {
抓图如下 1 S% U8 g7 {- i5 d) d
. f, }% t% ?4 \, c$ D9 X- A" g) V, D, H1 j3 i
用下内存断点的方法,找到了对话选择画面的文本显示函数 . U6 ?( |* N. p/ d5 B
抓图如下 6 b# C+ f! M/ U0 v# [6 Y
; }' E" G" X6 x" v3 @ I3 S# }4 N r, n
通过修改这几个地方的代码,就有希望实现此游戏的汉化。 % ~; @5 i2 N! Y+ ?/ \/ T: U: }
8 J S2 C9 P8 c a$ k/ P/ Q
------------------------------------------------------- ( _" {3 ^* g7 c0 J, [8 t
2010.9.20 更新 # f4 j& f1 \1 s- W1 k3 S6 C
# _7 x4 z/ k4 C( ~
最近又研究了一下这个游戏,又有了不少新的发现。
( e" \7 _; M4 I; ^我发现这个游戏用了不少opensource的东东。
5 p* s* J S' G: }- w8 f0 @在bin\encoding下面,我们可以找到一个叫cp1252.enc。 # k y7 ?) @& {4 n+ q0 |" {' W
在google上检索了一下,终于找到了这个东西的老家。 6 e+ ~0 E w- y) {. e% J
在这里还可以找到简体中文的编码文件gb2312.enc,这是一个线索。 ; o( F, C. H- J ]
http://www.opensource.apple.com/source/tcl/tcl-3.1/tcl/library/encoding/
- e( k9 Z2 T/ Y" i' b6 c5 e在res\scripts下面有好多.tcl的文件,我查了一下,这是一种脚本文件。
, Z) {6 d7 J! F# v* N' B& l关于这种脚本语言的介绍可以看这里
9 P! k9 b8 b0 b% a8 [http://en.wikipedia.org/wiki/Tcl ! q' x, W! p2 ]' [
然后,我根据\bin下面的好多DLL的版本信息,发现这个游戏使用了一个叫做 8 O+ P3 s7 [. N% S
Crystal Space的开源游戏开发包,具体可以参考以下网址。
+ X: l1 W- a' ~# Jhttp://www.crystalspace3d.org/main/Main_Page
L# Z! T# p) A$ p+ n2 M* a综合以上的信息,也许可以找到汉化的方法。
0 N* z/ V- y+ p8 F/ A; ~1 b% L8 q* O3 i- q
http://tmml.sourceforge.net/doc/tcl/encoding.html: M* d, ?' c3 ?3 f! C
http://tmml.sourceforge.net/doc/tcl/CEncoding.html" _% e7 h- @3 @2 {( ]$ T$ f, a
|