最近又想到一个汉化的新思路,就是显示函数的移花接木法。
3 J* f+ g" f5 N% {. `+ {* {! f7 U6 p0 F3 c6 f$ [
对于一些采用图片字库的游戏,目前的所有汉化方法几乎都失效,因为自己构造一个中文的图片字库目前阶段几乎是不可能的。所以就有了以下这个想法。 8 A7 a; D) [7 @% o. b+ c/ r( m. z
' D9 [ {+ f8 Z; {' @% V3 }; x- e
具体思路如下
- M D- C# [# E: [/ X5 `; O! S* y$ g
1.自己编写一个调用ExtTextOutW来显示字符串的试验小程序。
1 X+ ]' v5 [8 F; u2 _/ W* W在窗口里输出一个中文字符串。 ' P" H% l2 y, y' e9 i
2.用OD进行分析,找到并分析清楚调用ExtTextOutW函数的汇编代码段。 ' V# B$ }, a4 m1 o* L8 n
3.在要汉化的游戏里用OD找到调用显示函数的地方。 @) }" ~4 d3 K; ?# n
4.在要汉化的游戏里找到一段空白的代码段,如果空白的代码段不够长的话,要寻找不使用的函数,把它清空。 H/ f$ I4 P. K3 H+ C2 g
5.在空白的代码段出插入ExtTextOutW函数的汇编代码段 $ ?# A0 {( v* }* A8 ]
6.在游戏里调用显示函数的地方进行修改,使其跳转到ExtTextOutW函数的汇编代码段,并且使字幕和显示位置被正确传递。 / B, u# z; `7 `9 B5 z3 W3 K9 s, x
7.这样的话就实现了显示函数的移花接木 * T7 r! z% a6 I4 c0 S+ s
% e, N, C$ c# x% {4 s+ h, ~ q用这种方法,也许以前许多被认为不可能汉化的游戏将成为汉化可能,比如疯人院。 2 e Y: K$ g0 _! g1 Q- J
从理论上来说,这种方法可以汉化一切游戏。目前只是一个思路,尚需试验验证。 |