冒险解谜游戏中文网 ChinaAVG

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

作者: shane007    时间: 2008-12-29 09:17
标题: 【汉化资料】汉化新思路----显示函数的移花接木
最近又想到一个汉化的新思路,就是显示函数的移花接木法。
5 E3 n; ~# C( G( ~; W6 y4 m. z3 W3 Y0 F' X5 n* c
对于一些采用图片字库的游戏,目前的所有汉化方法几乎都失效,因为自己构造一个中文的图片字库目前阶段几乎是不可能的。所以就有了以下这个想法。
, }$ w4 m' j; U' {5 {" u0 ]4 @5 @6 B) b- I9 x' U) j3 y4 i
具体思路如下
0 m. y8 i0 `9 @4 C/ Q* ~$ D% d: e& R+ [- _; N
1.自己编写一个调用ExtTextOutW来显示字符串的试验小程序。
* u/ X: \. t- a( L. ?( @在窗口里输出一个中文字符串。
* N* Y( E8 s8 T5 X2.用OD进行分析,找到并分析清楚调用ExtTextOutW函数的汇编代码段。
  a8 ^' g& s$ Z, h1 ~3.在要汉化的游戏里用OD找到调用显示函数的地方。
* A- k7 C3 r/ M) K5 [9 @( K1 n, e4.在要汉化的游戏里找到一段空白的代码段,如果空白的代码段不够长的话,要寻找不使用的函数,把它清空。 # C9 n; h* B" ?# i
5.在空白的代码段出插入ExtTextOutW函数的汇编代码段
9 ~* s5 x, Z4 f  [% {7 C6.在游戏里调用显示函数的地方进行修改,使其跳转到ExtTextOutW函数的汇编代码段,并且使字幕和显示位置被正确传递。
4 Q$ b. y2 `! ^6 y: u& Z) X7.这样的话就实现了显示函数的移花接木
3 G. o" e2 U. Z5 n
+ ]& y; W5 z3 A用这种方法,也许以前许多被认为不可能汉化的游戏将成为汉化可能,比如疯人院。
8 s8 c* L; Y! ]2 Y" i2 u从理论上来说,这种方法可以汉化一切游戏。目前只是一个思路,尚需试验验证。

作者: wqzss    时间: 2008-12-29 10:09
是吗?如果成功的话,有人会疯的。
作者: shane007    时间: 2008-12-29 11:49
引用第1楼wqzss于2008-12-29 10:09发表的 :   r" }+ U7 ~: @8 f# o
是吗?如果成功的话,有人会疯的。

% w& |. z- c& f" U, b& e$ f
' |3 L) E4 _% b0 F8 t. c5 `/ R8 M0 Q1 O具体的实现方法就要慢慢研究了。! \3 l/ h7 Z  Q. Z
不过可能性完全是有的。
作者: zhang336970    时间: 2008-12-29 18:06
来探讨一下。我觉得要因游戏而异。大方向没问题,主要是在一些细节处不好处理。
! u- @% a# c" \; M) y% E对于   “3.在要汉化的游戏里用OD找到调用显示函数的地方。”! f) U5 _; d. l' g! d, |: X
图片字库对应的都有个码表来标明每个字符的坐标。坐标用来标明字符的位置和宽高数据。( N6 {& |0 R7 [1 I# A/ F
游戏中再把坐标数据进行运算,满足显示的位置长度颜色等各种需要。到这里‘显示函数’已经是WIN32API或者DX的图片处理函数,已经和字符没有任何瓜葛了.所以在哪里跳不太好选。尤其位置颜色等数据分散的代码段。
4 w) ?" y1 e4 r6 t
7 M+ c' F# A8 Z( N4 U7 |
% W0 T0 v' E" ?! s+ M9 k8 X1 w% c另外,用ExtTextOutW前要先检查,没有的话必须要先在PE文件函数表里添加。还有速度匹配问题,文字是否会落后显示?
# y3 ]* R* @( A, k, K' ~" n8 P, ~6 e% v2 o
觉得如果能顺利找到图片字库 、编码表、文本, 直接扩充汉字库修改单字节倒还容易些。
作者: prefix    时间: 2008-12-30 01:13
OD调试全屏程序不难吗? [s:3]
作者: shane007    时间: 2009-1-5 20:58
引用第3楼zhang336970于2008-12-29 18:06发表的  :
( t7 y, {8 `5 Q/ C来探讨一下。我觉得要因游戏而异。大方向没问题,主要是在一些细节处不好处理。
2 L# {) \1 Z! x  k' a6 ~# O# o对于   “3.在要汉化的游戏里用OD找到调用显示函数的地方。”6 m6 E; o3 h6 c, p& l
图片字库对应的都有个码表来标明每个字符的坐标。坐标用来标明字符的位置和宽高数据。% m" Q: p4 I3 f
游戏中再把坐标数据进行运算,满足显示的位置长度颜色等各种需要。到这里‘显示函数’已经是WIN32API或者DX的图片处理函数,已经和字符没有任何瓜葛了.所以在哪里跳不太好选。尤其位置颜色等数据分散的代码段。
/ d; P+ s" D# Z2 c/ C& a$ b/ K
/ Z# K5 _: E- L7 X* C$ K.......

* j+ b1 U4 I1 L# z
" s& C- A: y: ~/ v! t9 h1 g! _确实因游戏而异。具体实现有很多技术细节要攻克。
% ]; m& b7 Z$ Z/ E7 [ExtTextOutW我觉得问题不大,没有的话可以加一个段。ExtTextOutW虽然速度不快,但毕竟不是3D动作游戏,夜就是用ExtTextOutW输出文本的。
' V1 k, \% Z1 j8 E) A& H0 f希望常来发表你的看法。
+ n& O+ k: U# o
) v9 |! R: s9 S: gto prefix' @) O6 _( w+ G3 Q8 `3 V: i
把游戏用工具窗口化后,用OD调试即可.
作者: firendless    时间: 2009-3-18 03:14
貌似你就是认死hook了....God....




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