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

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

[复制链接]
查看: 286|回复: 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 编辑
3 K' V" _. P  L" K. ?" @
9 u7 z9 Q+ E. R: i+ g1 ]我用代理dll的方式,让这个游戏窗口化了。
( p/ l+ x* b( z7 x# w8 Y) Y1 S% q+ w随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。$ f* B. j8 ?- e+ F# M6 L: I  v1 B- r
在以下地方断下。6 s. q7 V+ {1 |) e2 R
! r8 l8 F1 z3 y. O) t5 l& I' j, d, h2 E
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,015 M' n+ x7 \  L7 ^
  2. 地址004096F5
复制代码

! l1 S& n% x: I6 l; g! N. G, Z3 u$ Z& n" z
随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,
/ u* A3 |/ s$ x1 ^1 K5 f/ D! Z8 p真正的字幕显示函数需要追到上一层,后续再继续分析2 @1 \0 P( x# I& V
0 i7 E; G- B# ~, F  j
  1.   e/ p! T7 f" [1 O3 J
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)' {1 P) v6 i3 E: ?0 W0 ~
  3. {  l. c0 L' c+ s9 [8 B$ ?
  4.   _DWORD *v2; // eax  D, M# A, ?7 c! h' b

  5. 3 D. h$ y7 ~, \$ L0 D4 L* o
  6.   if ( !dword_5D9B50 )
    ! B3 ^3 D  L- X
  7.   {- O# C. i2 o( W& @4 d, ~; v+ {" A
  8.     if ( !a2 )
    # J8 P$ @6 Y& m1 T0 l5 P6 P( k
  9.       goto LABEL_7;6 u6 T' h& ^" y9 o- Z1 K) G
  10.     if ( strlen(a2) >= 0x80 )* d, |. u- l" `( q' k) V+ X0 r- s
  11.     {) r8 C) P7 n' R; _1 _) h1 o7 E
  12.       sub_51AEC6("ASSERT\n", a1);
    ! A5 A2 G- m) W9 a- \( E
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");
    5 t, W) n& C3 D! U1 p
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");  f' J4 ~$ G3 f8 ^8 q1 m
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");
    * s8 Q+ ~, [9 X5 o& O
  16.     }2 c4 @0 }8 ]* c, [2 Z
  17.   }. |4 w$ v, a( D+ o: Y
  18.   if ( a2 )# n# n( d! n6 b0 R9 {, g
  19.   {: \" m9 b' w" d; T" }$ O
  20.     strcpy((char *)&unk_5D3370, a2);
    $ l* k1 M1 D  z" b7 d% x1 a
  21.     v2 = (_DWORD *)dword_5D3E6C;
    ( H& V8 @: S& A; I& {/ T# n
  22.     byte_5D33F0 = 1;: a0 c( p% g4 B1 W% j: e% U
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;
    . n1 C- D5 B! [  M! H, `
  24.     v2[2] = 0;
    5 s; p9 `% Y$ ]  R
  25.     v2[4] = 0x100000;
    + Y- j0 r* U, @8 {% z
  26.     v2[3] = 0;
    8 u* }& Q+ c+ H: Q# @
  27.     v2[5] = 786432;: y* U) R0 v1 S2 b
  28.     return;& [" D; s3 M5 f; u: r$ v
  29.   }
    ! e& K; M  T/ l# z* E( Y' E! u- p
  30. LABEL_7:% o) _) @- B9 F) D9 r' w
  31.   byte_5D33F0 = 0;7 U! p/ `- q  \( `1 e- ~9 w- Y
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------
    8 E' U0 I% u+ n) Q
  2. .text:004096ED                 align 10h$ E! o" {; d" d& n! v
  3. .text:004096F06 _  s; H, _# r8 s7 F0 g, I3 Q$ i
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j
    ) y- N  X6 D1 i) m3 R
  5. .text:004096F0                                         ; sub_409670+8A↓j3 W, o7 k: q3 }- e( @
  6. .text:004096F0                 mov     cl, [eax]) E( H- W! _# z3 S& A) M
  7. .text:004096F2                 mov     [edx+eax], cl
    . b  b3 q, l% E4 y. ^$ B1 g- A& A
  8. .text:004096F5                 add     eax, 13 ]* U6 d3 E5 X) C  t& }$ S
  9. .text:004096F8                 test    cl, cl7 Y* n+ Y4 P! |5 e5 w1 B
  10. .text:004096FA                 jnz     short loc_4096F0; }+ w) B; d- ?/ W  C' y) Y9 v
  11. .text:004096FC                 mov     eax, dword_5D3E6C* v9 P! u5 H2 H
  12. .text:00409701                 mov     byte_5D33F0, 1; l  E2 x2 B6 f, F$ U
  13. .text:00409708                 mov     byte ptr [eax+4], 1
    9 G" h! C1 Q# ~0 d. m; i
  14. .text:0040970C                 mov     dword ptr [eax+8], 0( {' |" d* p+ S1 b
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h
    0 |9 l0 s8 z5 e' `" B( e$ _, k2 u& b3 V
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 00 e, Y; \, H' W8 ^$ v5 N- [* T
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h) p  ]# v* G5 G3 D! u& P' b
  18. .text:00409728                 retn
    " v4 C" G/ `- T0 }4 J* r" ^5 w
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码

0 p! Y# Y; j2 L$ d
分享到:  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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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