冒险解谜游戏中文网 ChinaAVG

标题: 【汉化资料】汉化新思路----显示函数的移花接木 [打印本页]

作者: shane007    时间: 2008-12-29 09:17
标题: 【汉化资料】汉化新思路----显示函数的移花接木
最近又想到一个汉化的新思路,就是显示函数的移花接木法。 2 V; R5 s0 q0 M3 S5 j/ x8 J. F
$ P2 B6 w3 ?4 D) z' ~7 ~3 K% T3 z
对于一些采用图片字库的游戏,目前的所有汉化方法几乎都失效,因为自己构造一个中文的图片字库目前阶段几乎是不可能的。所以就有了以下这个想法。 3 L- K5 @! G$ G# s7 R" k, b. P' I4 O
% ?5 n7 u0 k' r; l* ^
具体思路如下   {0 n4 M. a# G+ p1 y/ f

% a$ f) k" ^' i9 k& D; N0 j1.自己编写一个调用ExtTextOutW来显示字符串的试验小程序。 $ O! V1 t: N( ?/ G$ n: N
在窗口里输出一个中文字符串。
. M/ `+ C, m; y2.用OD进行分析,找到并分析清楚调用ExtTextOutW函数的汇编代码段。
& ]/ V3 L0 f) A9 i+ U; r3.在要汉化的游戏里用OD找到调用显示函数的地方。
7 X9 e# O' D/ o% Y: q( u4.在要汉化的游戏里找到一段空白的代码段,如果空白的代码段不够长的话,要寻找不使用的函数,把它清空。 # f9 |6 K0 N+ F6 F
5.在空白的代码段出插入ExtTextOutW函数的汇编代码段 : K( \0 q0 q5 u' n+ V, a+ m
6.在游戏里调用显示函数的地方进行修改,使其跳转到ExtTextOutW函数的汇编代码段,并且使字幕和显示位置被正确传递。   w4 p& K" l3 j: S
7.这样的话就实现了显示函数的移花接木 % h# g$ u5 r6 }3 z8 X

+ ?2 A0 p9 J9 W. Y* R4 ^/ @. N用这种方法,也许以前许多被认为不可能汉化的游戏将成为汉化可能,比如疯人院。
3 q6 {% f7 O; P从理论上来说,这种方法可以汉化一切游戏。目前只是一个思路,尚需试验验证。

作者: wqzss    时间: 2008-12-29 10:09
是吗?如果成功的话,有人会疯的。
作者: shane007    时间: 2008-12-29 11:49
引用第1楼wqzss于2008-12-29 10:09发表的 :
# @7 c0 k2 s0 |是吗?如果成功的话,有人会疯的。
- G! _+ i* t5 ?
6 I$ K* U! l( F# x2 d
具体的实现方法就要慢慢研究了。
/ m: `2 p' v. G) O$ l  N  S不过可能性完全是有的。
作者: zhang336970    时间: 2008-12-29 18:06
来探讨一下。我觉得要因游戏而异。大方向没问题,主要是在一些细节处不好处理。) J0 g5 v8 [% _% n. A" U0 s
对于   “3.在要汉化的游戏里用OD找到调用显示函数的地方。”
" c6 z! {$ i# S3 t7 |( N' h图片字库对应的都有个码表来标明每个字符的坐标。坐标用来标明字符的位置和宽高数据。
6 u1 t( A! F' K+ l游戏中再把坐标数据进行运算,满足显示的位置长度颜色等各种需要。到这里‘显示函数’已经是WIN32API或者DX的图片处理函数,已经和字符没有任何瓜葛了.所以在哪里跳不太好选。尤其位置颜色等数据分散的代码段。
, H8 ?7 \5 @5 x3 `3 R9 r( B/ g) K6 ]4 Z+ p) G5 u- t

+ |" p0 ?7 n: V; |4 Q另外,用ExtTextOutW前要先检查,没有的话必须要先在PE文件函数表里添加。还有速度匹配问题,文字是否会落后显示?
0 i3 s2 p/ x) P; N
7 J- |. U" M* n8 a觉得如果能顺利找到图片字库 、编码表、文本, 直接扩充汉字库修改单字节倒还容易些。
作者: prefix    时间: 2008-12-30 01:13
OD调试全屏程序不难吗? [s:3]
作者: shane007    时间: 2009-1-5 20:58
引用第3楼zhang336970于2008-12-29 18:06发表的  :
7 d7 a, }! X5 k+ @. x, @# H0 P来探讨一下。我觉得要因游戏而异。大方向没问题,主要是在一些细节处不好处理。
4 ?; t3 o- H, ]9 t3 f对于   “3.在要汉化的游戏里用OD找到调用显示函数的地方。”7 L3 f+ T; W) R1 T- q( Z& p
图片字库对应的都有个码表来标明每个字符的坐标。坐标用来标明字符的位置和宽高数据。
! w7 ]) ^7 l  S游戏中再把坐标数据进行运算,满足显示的位置长度颜色等各种需要。到这里‘显示函数’已经是WIN32API或者DX的图片处理函数,已经和字符没有任何瓜葛了.所以在哪里跳不太好选。尤其位置颜色等数据分散的代码段。
$ u- i. ]$ \# T7 ?( d  P9 ]
1 p6 K+ W$ m: V, a6 g.......

4 p# f+ f% R( y. R8 T- z6 y, n% {" G
确实因游戏而异。具体实现有很多技术细节要攻克。
3 W& j2 d' u0 oExtTextOutW我觉得问题不大,没有的话可以加一个段。ExtTextOutW虽然速度不快,但毕竟不是3D动作游戏,夜就是用ExtTextOutW输出文本的。
5 g3 \( _: f% [$ Y4 f: }% ?/ b希望常来发表你的看法。
* {5 \! f" \: f! o' a
. u. a* H% _) [& Q: b; L0 Z& Lto prefix# @2 j# o" l5 a8 p: {- T
把游戏用工具窗口化后,用OD调试即可.
作者: firendless    时间: 2009-3-18 03:14
貌似你就是认死hook了....God....




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2