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

建议 【Directx9游戏汉化 #7】莫嘉娜船长与金海龟(Captain Morgane and the Golden Turt...

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

[建议] 【Directx9游戏汉化 #7】莫嘉娜船长与金海龟(Captain Morgane and the Golden Turt...

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

【Directx9游戏汉化 #7】莫嘉娜船长与金海龟(Captain Morgane and the Golden Turt...

本帖最后由 shane007 于 2023-8-26 16:14 编辑
( G8 ]7 S  a! z! D+ J8 i3 J
8 w5 D1 B: E& G0 [我用代理dll的方式,让这个游戏窗口化了。) R7 k, ?' E% z3 u6 ]8 ?( v
随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。- R7 F* W$ R+ r3 Z
在以下地方断下。4 N7 y% y) B. L) p7 F

" X7 R8 z/ L2 {4 G
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,01
    0 r. h- W& ?5 ^# w: }; c
  2. 地址004096F5
复制代码

* U: C' {5 w6 `  a* Q5 J. {# k# h, |/ ^& K  M9 h
随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,1 W/ t4 O( |: `* j$ e
真正的字幕显示函数需要追到上一层,后续再继续分析# \$ _% s5 B; a; ]4 j* \: W
" f' J2 J  o7 p  M, Y2 w3 N8 y4 }
  1. % y6 V. U" i! h& m! Y
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)
    : Y+ }8 g8 l2 ]& B$ s, I: U
  3. {
    9 q& Q6 H% n# B9 s
  4.   _DWORD *v2; // eax& T7 H% {& Q% ^3 \0 F: i7 G  }* f
  5. / y5 C* E' L0 D  a1 K7 j$ p
  6.   if ( !dword_5D9B50 )
    + s4 ~& |: C: }8 Z
  7.   {- c6 j3 j) b5 {5 k
  8.     if ( !a2 )$ [5 V, Y+ Z  o; O
  9.       goto LABEL_7;7 M; I6 h* z+ t$ q* b' ]$ @
  10.     if ( strlen(a2) >= 0x80 )
    % j+ ?: \, N( E
  11.     {
    " i- T( Q8 ]( U3 q
  12.       sub_51AEC6("ASSERT\n", a1);
    1 D+ N8 O  V, a
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");5 y2 |8 H) d/ M/ b7 ]& }
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");
    2 f+ q, i5 i6 A1 o4 C  k+ b9 {
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");
    1 r: g+ q, l/ j4 i  Q$ Y
  16.     }
    & f9 P' e( M' I: m* y3 }' O
  17.   }
    + e; S, {( y7 @  w- @& t
  18.   if ( a2 )
    + ^, d5 E! N( d# c4 w
  19.   {
    4 A. {* s& ?3 e
  20.     strcpy((char *)&unk_5D3370, a2);
    4 B2 S4 W* b, L: r4 O5 B
  21.     v2 = (_DWORD *)dword_5D3E6C;
    ( F6 @5 S$ @. _
  22.     byte_5D33F0 = 1;
    # f: M' w4 e6 g% W( e5 R1 j- i
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;
    : ^" A3 Q) K8 N4 Y6 U
  24.     v2[2] = 0;
    % y5 a/ J3 N2 j% D: E! b( Z8 s
  25.     v2[4] = 0x100000;
    : t+ v; E5 Y( R, o. D$ _+ Y
  26.     v2[3] = 0;
    3 P6 S- C2 K$ |- {% H
  27.     v2[5] = 786432;
    # Y" }: K1 }7 T* V
  28.     return;9 J( I0 z( e4 f  D' f6 Y5 l
  29.   }: Q: k% X! t* R
  30. LABEL_7:
    9 c( U* k6 Q. n! [
  31.   byte_5D33F0 = 0;
    9 D! Y  V& j* t1 U7 \
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------
    ( M5 D- u+ R4 ?; }
  2. .text:004096ED                 align 10h: w7 A/ N+ `5 n& y9 f  s
  3. .text:004096F0
    - D. d. g* u. D7 \2 _/ o: k+ P) ?
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j
    ! k' {& G* z" U- B
  5. .text:004096F0                                         ; sub_409670+8A↓j
    ' S( _, J3 J3 w
  6. .text:004096F0                 mov     cl, [eax]4 x0 W& F/ }. B' l' b/ A
  7. .text:004096F2                 mov     [edx+eax], cl/ u! e5 o; F* G1 k' J
  8. .text:004096F5                 add     eax, 1
    , v/ ]9 g/ _1 b0 P- \1 Q
  9. .text:004096F8                 test    cl, cl& p2 v. K: k- |3 P* F& y& A
  10. .text:004096FA                 jnz     short loc_4096F08 g9 I( S6 C- _, f- A
  11. .text:004096FC                 mov     eax, dword_5D3E6C
    . ^. n" p  C, O; R2 e# [) a2 Z
  12. .text:00409701                 mov     byte_5D33F0, 1- V, r' J6 }  Q( C5 M/ Z- D+ L
  13. .text:00409708                 mov     byte ptr [eax+4], 1
    * v: `- d! C) v/ v* w( W7 o
  14. .text:0040970C                 mov     dword ptr [eax+8], 0
    $ {: _" {/ C; ^4 a/ X5 `, I
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h" ]( S! D3 W, v4 |, L% S; t( N
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 0% }8 {9 r. O, m0 j$ Y6 N% y
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h; t) p  r. U/ h0 R( g2 ~
  18. .text:00409728                 retn: r5 ~) j6 Q! u% @
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码
& g' i- \: G8 E. [
分享到:  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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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