最近又想到一个汉化的新思路,就是显示函数的移花接木法。
- I+ s0 Y( j; ~" [$ N% `; N7 C5 X/ t8 q* }1 w7 J
对于一些采用图片字库的游戏,目前的所有汉化方法几乎都失效,因为自己构造一个中文的图片字库目前阶段几乎是不可能的。所以就有了以下这个想法。
: k" M$ k: k! U+ _+ r
6 `; U1 N( S) r- {/ G& y' V1 T具体思路如下 7 X) v4 y1 e# Q, p v& n# I
+ T$ |. X2 w1 ^% k' G) \. h4 h ?1.自己编写一个调用ExtTextOutW来显示字符串的试验小程序。 # E' C/ O" |, N+ v
在窗口里输出一个中文字符串。 ) q) V1 k# h9 ]+ t
2.用OD进行分析,找到并分析清楚调用ExtTextOutW函数的汇编代码段。
4 D* z4 K0 C' I- z5 d3.在要汉化的游戏里用OD找到调用显示函数的地方。 3 d2 w2 e9 J r! s
4.在要汉化的游戏里找到一段空白的代码段,如果空白的代码段不够长的话,要寻找不使用的函数,把它清空。 1 G+ ?. I! P4 ?/ f' E: e; \
5.在空白的代码段出插入ExtTextOutW函数的汇编代码段
- @; m* }* z$ H) G! w0 F5 s" g6.在游戏里调用显示函数的地方进行修改,使其跳转到ExtTextOutW函数的汇编代码段,并且使字幕和显示位置被正确传递。
C1 W& R" q% s% a2 O, A3 e# K7.这样的话就实现了显示函数的移花接木 + h7 z- Z4 U4 o ]5 K! v% }
9 G$ Z1 O) n4 Y8 z( t( F
用这种方法,也许以前许多被认为不可能汉化的游戏将成为汉化可能,比如疯人院。 + R7 a C) S3 L& K
从理论上来说,这种方法可以汉化一切游戏。目前只是一个思路,尚需试验验证。 |