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

建议 【Directx9游戏汉化 #1】 修道院:导演剪辑版(The Abbey: Director's cut) 字幕...

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

[建议] 【Directx9游戏汉化 #1】 修道院:导演剪辑版(The Abbey: Director's cut) 字幕...

跳转到指定楼层
楼主
发表于 2023-8-23 14:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

【Directx9游戏汉化 #1】 修道院:导演剪辑版(The Abbey: Director's cut) 字幕...

以下这个本论坛的下载贴中,由于有个字符串在中文系统中不能正常显示,导致游戏不能正常 运行。
6 \8 i+ t# M6 R/ o8 m& a' R修道院:导演剪辑版(The Abbey: Director's cut), l3 X5 O* E1 S- B- g1 ?% E) V
https://www.chinaavg.com/forum.php?mod=viewthread&tid=147967) w4 H  v# p4 @4 w- ]) d
9 _! Y8 \' e# R2 P2 ?
具体信息可以参考Messages.log。修改正确后的字符串为Tomas。
7 a. a; G1 [6 V8 a- p1 m+ V0 [修改处
) Z5 t( H" X& I《1》以下文件的内容8 `3 J2 `" ~+ {
\The Abbey Directors Cut\English\Data\Game\Game.xmb
1 }; g* {  `. A8 {6 a: M《2》所有游戏的文件和目录名,只要含有那个字符串的都要修改为Tomas+ m  F# N! W' v' y# j2 }
    比如\English\Data\Models\Tomas
) E" X6 V/ ^; P0 A' I% E# z3 h, l6 q3 c! y1 l$ T% J
用ida pro 进行简单分析后,确定游戏是directx9的游戏,
0 N1 R9 T9 J6 C; a
  1. .text:004F8D3B                 push    20h             ; SDKVersion; ?6 Z; c9 u( \5 }8 q
  2. .text:004F8D3D                 mov     esi, ecx9 V* n% L6 b: H& a) o
  3. .text:004F8D3F                 call    Direct3DCreate9
复制代码

; C! {8 B0 z+ \5 S" I3 z/ v0 c. P/ H% |+ Q% N9 U2 P
& ^% O/ R' G1 a/ R; S& e1 o: H
播放动画的时候,好像用了direct draw
: S- ?  S  p1 O: S
  1. .text:004F4200 ; int __thiscall CVideo::Create(CVideo *__hidden this)
    9 I( K- n0 |+ V. i7 W( o1 Q
  2. .text:004F4200                 public ?Create@CVideo@@QAEHXZ
    ! }8 \  ^. \: e1 H) B
  3. .text:004F4200 ?Create@CVideo@@QAEHXZ proc near        ; CODE XREF: CSystem::Create(HINSTANCE__ *,int,char *,char *,CWorld *,char const *)+380↑p
    8 D. j0 D- V; u3 [1 v
  4. .text:004F4200                                         ; DATA XREF: .rdata:off_5C6668↓o
    - M( K5 D# z- }
  5. .text:004F4200                 push    esi6 [" Y* j* Z, q- e3 P5 I
  6. .text:004F4201                 push    edi5 y7 ^0 c9 h6 a$ h9 v! H, l
  7. .text:004F4202                 mov     esi, ecx
    3 J( ~. T' x0 c, `4 W# l
  8. .text:004F4204                 push    0               ; pUnkOuter* p' a- Y$ S% Q  X" b
  9. .text:004F4206                 lea     edi, [esi+54h]
    $ U; K' U* W$ q. W
  10. .text:004F4209                 push    edi             ; lplpDD9 o4 g1 ^( S, r
  11. .text:004F420A                 push    0               ; lpGUID
    % |9 ?1 C2 e4 [$ G7 ?3 B$ K6 M
  12. .text:004F420C                 mov     byte ptr [esi+79h], 05 @2 j2 j8 q: n: e  F2 R& R6 O( r
  13. .text:004F4210                 call    DirectDrawCreate
复制代码

, ]# z& Q2 y- }% m0 e
9 f8 f6 h. E5 x& D) J2 T9 O* E" J$ P, t+ f3 o3 A8 S  k& n
本游戏可以窗口化,比较容易调试。4 U( z# G! y/ N" j
找一句画面有的字符串the son of ,找到显示函数。& }' K/ X; v* T7 a% v
以后我们用自己的函数替换它即可。
% k' G, s6 l7 P5 @# J! ?( f  ~9 K4 h+ W* H
对话字幕断点处( j% T% c6 [3 F4 _' o: n/ R8 q
004B5AF3  |> /8A08          /mov     cl, byte ptr [eax]
! y2 n# U+ i% l  g" v9 l: m) z+ `; V& T; Z( N- ~- M
5 T: w" E, P, W0 C
char __thiscall CFadingText::Set
0 J5 D1 Z7 b# F" R& h8 h(CFadingText *this, char *a2, int a3, int a4, bool a5, bool a6), V- {+ }: u4 G% |! i

9 k, B4 _9 Q1 ~/ K查了以下调用它的地方,有10多个,看来这个游戏所有地方的字幕应该都是调用这个显示函数了,
  B2 E" X% g' x, Z$ p
# e) a, _" V; N# c( n( Y以下是一部分
- P1 L, ?" G0 X: N
  1. CGLCLayer::Render+97,   L6 a% W: E) ]0 E  D, C& }' `
  2. CGameInterface::ShowSentence+2C, 3 _1 Q  K4 U$ N$ U' {/ N2 c
  3. CGameInterface::CloseDiary+1A,
    + r0 P6 m- s0 W: v  x  M" M. B% r) U# L
  4. CGameInterface::SetDiaryText+6A,
    8 i. b( i: b4 K. t4 J$ K$ r$ F4 \: p
  5. CGameInterface::OpenMainMenu+17, & w# k1 j$ @4 B) K
  6. CGameInterface::AddMenu+67, + s* ]/ l) ?4 e
  7. CGameInterface::OnMenuPressed+0AB, M)
    , ?& X- |7 [2 R9 |3 w3 i
  8. TheAbbey.CFadingText::Set
复制代码

8 M# z1 N7 h6 L% T8 Q/ |! C, N: o
; J/ q$ }- j/ k# O! E: t

7 h$ e, o5 ?$ m5 \8 M) W
( n- [1 J; t9 I. _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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