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

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

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

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

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

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

以下这个本论坛的下载贴中,由于有个字符串在中文系统中不能正常显示,导致游戏不能正常 运行。/ E! R( }3 H# B6 f% w
修道院:导演剪辑版(The Abbey: Director's cut)5 A  l, g& f! v4 L( k5 r' s, x+ W
https://www.chinaavg.com/forum.php?mod=viewthread&tid=147967
) S9 v7 A+ V5 Z# O- r# d$ q2 R  h" s) L5 r
具体信息可以参考Messages.log。修改正确后的字符串为Tomas。7 `9 E, I7 L: E) u$ S- U
修改处
; {- M! v) T. u2 E! j2 v/ W4 o《1》以下文件的内容
' u$ ^0 l9 O4 q\The Abbey Directors Cut\English\Data\Game\Game.xmb
0 Z* B* S& j  H% P$ o) T4 q《2》所有游戏的文件和目录名,只要含有那个字符串的都要修改为Tomas
0 B5 c9 }- S, S8 [. Z) N3 Q    比如\English\Data\Models\Tomas$ o2 U: [3 N1 k% Z

2 m' @5 u/ ?* T4 i用ida pro 进行简单分析后,确定游戏是directx9的游戏,+ q0 X3 T6 {; K& ?7 E# c& i
  1. .text:004F8D3B                 push    20h             ; SDKVersion) c& u  B5 e7 D: W1 h% X0 g
  2. .text:004F8D3D                 mov     esi, ecx! a: J4 W! s! Z7 n' {
  3. .text:004F8D3F                 call    Direct3DCreate9
复制代码
$ u+ U0 ^+ h' d0 a+ r

2 \! M. I$ y9 M6 S* @2 P# l9 m2 `, @7 y1 B; b( F  J
播放动画的时候,好像用了direct draw- z, a/ f, d7 J$ `, _$ Z+ M0 x" g
  1. .text:004F4200 ; int __thiscall CVideo::Create(CVideo *__hidden this)( ^6 _1 f" [& O/ [* `
  2. .text:004F4200                 public ?Create@CVideo@@QAEHXZ% Q/ d+ U( }4 p% i' h; D6 u
  3. .text:004F4200 ?Create@CVideo@@QAEHXZ proc near        ; CODE XREF: CSystem::Create(HINSTANCE__ *,int,char *,char *,CWorld *,char const *)+380↑p* A% u1 T) S% _: F
  4. .text:004F4200                                         ; DATA XREF: .rdata:off_5C6668↓o
    1 v6 ^6 M$ R+ l% `% g2 }  w( q
  5. .text:004F4200                 push    esi
    ; s2 u5 _9 A( C. Q- I( }
  6. .text:004F4201                 push    edi6 b3 \7 a& v7 [( n. R: _
  7. .text:004F4202                 mov     esi, ecx* U, ]  u3 z) R- Q2 d" K
  8. .text:004F4204                 push    0               ; pUnkOuter7 p# i! A% P, R% \
  9. .text:004F4206                 lea     edi, [esi+54h]
    3 }) G9 a( X6 G1 _
  10. .text:004F4209                 push    edi             ; lplpDD
    ) W1 b) q: B' V& B
  11. .text:004F420A                 push    0               ; lpGUID
    3 [' o6 [3 u' G+ O
  12. .text:004F420C                 mov     byte ptr [esi+79h], 0$ o) D1 [6 P: V5 k
  13. .text:004F4210                 call    DirectDrawCreate
复制代码

3 O- X( u& g2 H3 |4 ^( r/ P
+ z7 `/ `/ k& t- B0 g6 l0 g' t# R2 ~/ H
& z/ R7 j- d( y本游戏可以窗口化,比较容易调试。# w" ^; S8 D# U- Z! m
找一句画面有的字符串the son of ,找到显示函数。
, g; Q  {  L1 B6 k以后我们用自己的函数替换它即可。  w5 s" M; J4 A8 j) {6 k+ G9 z  R
5 }5 J3 _8 i2 ]# n( G) p% A0 x
对话字幕断点处) e( I% x; E* s
004B5AF3  |> /8A08          /mov     cl, byte ptr [eax], h7 S# x7 z+ z# M* S0 Y

' M8 @6 e; G7 n
9 y3 E' [! q: r  Z, k/ Pchar __thiscall CFadingText::Set) @3 @# x: e9 W$ `' |& d+ T
(CFadingText *this, char *a2, int a3, int a4, bool a5, bool a6)9 Y7 H2 I# V7 z8 W  n

& i: C& I1 \) Z& d& H4 f. r& O查了以下调用它的地方,有10多个,看来这个游戏所有地方的字幕应该都是调用这个显示函数了,
1 ?$ J8 K' n8 q! ^" t, y6 J4 F6 t
以下是一部分: S0 e( s7 c: I9 g/ F4 {  I
  1. CGLCLayer::Render+97, ) ?- k3 h. H4 `/ I) f! ~5 _9 Y
  2. CGameInterface::ShowSentence+2C, ; L4 E8 U8 M5 \1 K. j, L. [
  3. CGameInterface::CloseDiary+1A,
    % p3 i1 ]* U! N4 M( s9 w
  4. CGameInterface::SetDiaryText+6A,
    # T% m3 a% c; v$ @; B
  5. CGameInterface::OpenMainMenu+17, . ~. Y2 l; l* P) g0 E
  6. CGameInterface::AddMenu+67, ) g+ T' I% i/ S  z
  7. CGameInterface::OnMenuPressed+0AB, M)# J: U8 O* T; w
  8. TheAbbey.CFadingText::Set
复制代码

3 M8 r2 f, j. B2 Q6 r  o, U* }% Z5 A/ t! u

0 }  u9 @# K' w" Q! o( V, u  c) Y5 L. H
; J* ~& M/ M, I3 j. A5 l. ?" H& W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好1 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2025-4-14 09:33 | 只看该作者
学习学习一下
回复 支持 反对

使用道具 举报

高级模式
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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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