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

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

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

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

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

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

以下这个本论坛的下载贴中,由于有个字符串在中文系统中不能正常显示,导致游戏不能正常 运行。# A) M( }  y. @; G  m. N' ?9 W
修道院:导演剪辑版(The Abbey: Director's cut); w' |, Z& U- X) H1 K
https://www.chinaavg.com/forum.php?mod=viewthread&tid=147967$ `: F, C- C( E5 N

5 _/ V3 g# r4 Y. n0 l& q9 J具体信息可以参考Messages.log。修改正确后的字符串为Tomas。% q4 f0 w1 u9 l5 t
修改处2 _. |! |3 r! z0 M$ L$ f6 W
《1》以下文件的内容' _0 q1 y( K; Y# f
\The Abbey Directors Cut\English\Data\Game\Game.xmb" `1 [9 R; y# r( _" }
《2》所有游戏的文件和目录名,只要含有那个字符串的都要修改为Tomas
. d! G8 m4 p/ E    比如\English\Data\Models\Tomas: G5 j3 B2 Z" B0 m  E% J
& H1 B) W$ @/ N! t, g
用ida pro 进行简单分析后,确定游戏是directx9的游戏,6 Y* Z5 N8 p! [; H  i8 ?
  1. .text:004F8D3B                 push    20h             ; SDKVersion/ ^5 {2 k( R3 A  Z9 O2 X7 [
  2. .text:004F8D3D                 mov     esi, ecx
    $ Y/ ^9 H% \; D% m$ ^* J. \0 A1 J
  3. .text:004F8D3F                 call    Direct3DCreate9
复制代码

$ `6 u* S& O5 L- q" A. |8 ~0 |) C$ Q. c! F0 L) c
$ N. o4 t0 ~# y! i( V
播放动画的时候,好像用了direct draw, L/ i/ y; \7 z; z
  1. .text:004F4200 ; int __thiscall CVideo::Create(CVideo *__hidden this)$ n* V; i2 n. y* q2 H
  2. .text:004F4200                 public ?Create@CVideo@@QAEHXZ8 j  I7 ]( N8 N: t, \8 ^9 y
  3. .text:004F4200 ?Create@CVideo@@QAEHXZ proc near        ; CODE XREF: CSystem::Create(HINSTANCE__ *,int,char *,char *,CWorld *,char const *)+380↑p
    9 ]' W# D% R4 ?' }
  4. .text:004F4200                                         ; DATA XREF: .rdata:off_5C6668↓o- i: u; F$ y1 {  b' X
  5. .text:004F4200                 push    esi
    8 p# D' `% O. ^
  6. .text:004F4201                 push    edi! ^$ i1 G& P6 @) U- G4 Z7 @
  7. .text:004F4202                 mov     esi, ecx$ u& A/ u( s6 |
  8. .text:004F4204                 push    0               ; pUnkOuter3 y2 [& R2 z! [/ D2 x
  9. .text:004F4206                 lea     edi, [esi+54h]- }/ [5 r2 ?3 D2 p+ w0 R" K
  10. .text:004F4209                 push    edi             ; lplpDD* d. V9 i4 }9 N
  11. .text:004F420A                 push    0               ; lpGUID
    % x+ N1 }0 T5 o1 s# N: n6 y
  12. .text:004F420C                 mov     byte ptr [esi+79h], 0
    " i- q3 W, Z+ e# Y% b. y
  13. .text:004F4210                 call    DirectDrawCreate
复制代码
* J4 u+ N* n7 Z; b0 Q

- o7 X  f; I3 w0 J3 B2 [* d: T' L( d" l9 w& D( D
本游戏可以窗口化,比较容易调试。
$ v' P1 m% U6 N: E0 m找一句画面有的字符串the son of ,找到显示函数。
9 ?- K& g* @+ h6 R; g2 }以后我们用自己的函数替换它即可。$ D2 H) e0 o, s; o2 U0 Q9 r
! f$ C- q9 o0 f0 N
对话字幕断点处
: [7 m/ Z8 w  c7 D, T- F004B5AF3  |> /8A08          /mov     cl, byte ptr [eax]2 |2 o$ E0 ~7 Y* t, n+ p

8 k0 _+ i. c; N5 d4 g1 n; l7 h
3 l' c' l' x- s8 C# k9 A% rchar __thiscall CFadingText::Set
& H; v' D# c9 D: h4 O(CFadingText *this, char *a2, int a3, int a4, bool a5, bool a6)
, y+ [- P" q% ]# t& p. R- _- D9 a3 _" p1 l- v
查了以下调用它的地方,有10多个,看来这个游戏所有地方的字幕应该都是调用这个显示函数了,) z0 \2 K" z4 i/ n3 {4 N
% X" e, u  x$ P7 @6 K
以下是一部分
- G5 p$ W9 K. N/ P, y; x
  1. CGLCLayer::Render+97, 6 M3 O2 Y; u! {$ C6 Y, c
  2. CGameInterface::ShowSentence+2C, , R) p  H* m* r$ {6 ?9 @; i) K9 B
  3. CGameInterface::CloseDiary+1A, 1 f3 u9 q5 X+ `! f5 F  j4 y3 t: G7 o
  4. CGameInterface::SetDiaryText+6A,
      {* r2 g  o4 U# f' A
  5. CGameInterface::OpenMainMenu+17,
    2 F8 h0 |: F/ L8 C0 }
  6. CGameInterface::AddMenu+67, / p7 q8 X2 H2 p* Z
  7. CGameInterface::OnMenuPressed+0AB, M)& l. C) U. V* Y8 T5 L6 ^1 X
  8. TheAbbey.CFadingText::Set
复制代码
% M6 v9 p! K& A1 e3 C5 R
& N* _. a" j, M( O% U
  j$ E1 P( F- o. k: f4 p

9 d1 U9 X: S0 [; l% ~2 s7 f: a. [
" e1 s3 k3 d4 K3 u7 E6 [9 w
分享到:  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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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