设为首页收藏本站官方微博

【汉化资料】为无字幕游戏添加中文字幕的新思路

[复制链接]
查看: 1417|回复: 2
打印 上一主题 下一主题

【汉化资料】为无字幕游戏添加中文字幕的新思路

跳转到指定楼层
楼主
发表于 2009-3-21 06:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

【汉化资料】为无字幕游戏添加中文字幕的新思路

有一些AVG没有字幕,比如天生罪犯,旧版的东方快车谋杀案。
2 a+ X# ^1 m4 d- Y4 V# h: A+ ~最近想出来一个为这些文件添加中文字幕的思路。+ z" |* {! T( u% Q+ T

( N7 b0 [% q2 _4 v9 d' K这些AVG虽然不显示字幕,但是会播放语音文件。. q) }. C+ ^$ q, O6 z( @  c9 [( }
我的思路是用OD在内存里寻找语音文件名,然后下内存断点,游戏在读取语音文件的时候会被断下来,往下走的话肯定会调用播放语音文件的函数,可以用NOP大法来确认。4 `2 _" f2 w$ j) Y1 ?

; [+ _- K4 l, U( H+ l所谓NOP大法,就是把某个CALL改为NOP语句,如果语音文件不被播放了,那么这个CALL肯定和语音文件播放有关,再按F7追进去用NOP大法找就行。直到找到最关键的那个播放语音文件的函数。! [* J/ u# z7 c8 ?& f- m
% `7 ?  b0 R8 M" l" V
找到以后,在某个寄存器里应该有一个语音文件名,我们可以把它看作一个字幕ID,在调用播放语音文件的函数前用JMP方法插入一段我们自己的代码。调用exttextouw等函数就可以输出字幕ID。
( O% G3 I0 i4 s& q# Y
/ H. S3 w) b* g1 w: c- v1 K& y最后在外部用HOOK方法,在exttextouw函数内把字幕ID替换为中文字幕即可。
4 C& m2 K- w/ G6 `( S* E; L2 n3 s8 R) D, e
局限性4 ]. X1 H% r4 T2 P  J$ m
只能适用于对话字模,不播放语音文件的字幕,如物品名就无法用此法。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2009-3-21 07:49 | 只看该作者
还有一些问题。$ O$ r: T4 A# m3 l7 b3 m, y3 T
添加中文字幕的话(当然对一些喜欢看字幕游戏来说是好消息)( W, g, D: G; `2 K& V. K
大小会不会影响呢?
" J/ k: X+ L; X: j  @, G( f还有。
) p% ~* g( y7 l; R' L1 E目前HOOK有没有突破呢?毕竟一些人都在用别的系统平台。比如LINUX  WIN7 VISTA之类的。
回复 支持 反对

使用道具 举报

板凳
发表于 2009-3-21 07:59 | 只看该作者
Introduction* j: }# P) }8 E  ~* |% x
In the Microsoft® Windows™ operating system, a hook is a mechanism by which a function can intercept events (messages, mouse actions, keystrokes) before they reach an application. The function can act on events and, in some cases, modify or discard them. Functions that receive events are called filter functions and are classified according to the type of event they intercept. For example, a filter function might want to receive all keyboard or mouse events. For Windows to call a filter function, the filter function must be installed—that is, attached—to a Windows hook (for example, to a keyboard hook). Attaching one or more filter functions to a hook is known as setting a hook. If a hook has more than one filter function attached, Windows maintains a chain of filter functions. The most recently installed function is at the beginning of the chain, and the least recently installed function is at the end.
3 m9 i1 E( S- _2 N5 K! X  J& K1 }, [5 u2 a4 B
When a hook has one or more filter functions attached and an event occurs that triggers the hook, Windows calls the first filter function in the filter function chain. This action is known as calling the hook. For example, if a filter function is attached to the CBT hook and an event that triggers the hook occurs (for example, a window is about to be created), Windows calls the CBT hook by calling the first function in the filter function chain.2 z! D9 ^: Y0 ~1 s; D

; V7 R; G, r- r6 h其他平台的用不了,如果用WIN模拟器还是Win平台就没问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表