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

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

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

[建议] 【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 编辑
' C9 F( o: I( a; G1 x2 t, c- E# i; L
我用代理dll的方式,让这个游戏窗口化了。: R, w+ y5 W. C* b. z/ y. m
随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。5 ~3 W5 R7 U9 `  W
在以下地方断下。4 Y/ A) S' `. l& S6 v! L

, E6 T! S! I2 u% k
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,01
    & V) c  m2 ]# T" I4 {9 ^& P# \
  2. 地址004096F5
复制代码

7 Q& T" m: K  k% f' D( e6 b( M8 W* M$ j& D* t5 l
随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,
* m8 Z0 r+ c7 Z- U) `真正的字幕显示函数需要追到上一层,后续再继续分析( C( k8 i7 B$ M: q
( E) `1 ?6 V& C1 Z# o1 Y7 k- x' ]
  1. $ m6 r5 b! X. ]9 G' n
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)+ m/ N# p7 u- d) H. a+ L2 m
  3. {
    5 |# o9 L4 O" Y9 }4 J$ f2 }
  4.   _DWORD *v2; // eax
    : e$ N' l* {& y5 p. Q

  5. " N) r+ O  @8 R
  6.   if ( !dword_5D9B50 )
    2 T7 \* B$ l3 W( J; Y7 x2 H
  7.   {& y: B  w, |1 `9 w: x" Q
  8.     if ( !a2 )
    ( V. `$ z) [8 j- m0 t
  9.       goto LABEL_7;4 v8 \+ o' d. j: H- _7 l
  10.     if ( strlen(a2) >= 0x80 )
    # U7 u3 u* [  E. W0 E
  11.     {
    : X% \8 a/ `2 \* u! X9 e
  12.       sub_51AEC6("ASSERT\n", a1);8 E5 T/ v/ s& c
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");
    $ L1 J: C' }4 d! O( j. F" H1 o
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");- [) m: p* s* A9 M5 C7 }6 H
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");2 _( R- K) C) i) _
  16.     }( S# g$ W) }$ L1 J" r, w& o# D+ e
  17.   }, b# `9 T- [: s+ d7 ?! n
  18.   if ( a2 )6 q# C1 L, T; C  _
  19.   {1 _; @2 K: M0 }1 ]- F
  20.     strcpy((char *)&unk_5D3370, a2);- q  Q) H7 q) Y7 D9 f2 e, a3 }2 u
  21.     v2 = (_DWORD *)dword_5D3E6C;
    / b+ E4 U" d5 X
  22.     byte_5D33F0 = 1;4 c% p$ V1 e% b) e
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;
    % C$ ^  G# o: K
  24.     v2[2] = 0;
    2 B: D( B5 v9 d# X9 o3 @% w6 U
  25.     v2[4] = 0x100000;3 _6 k6 Y' C! Z& x, E+ C
  26.     v2[3] = 0;+ N& M5 w8 c6 M! `  w0 G
  27.     v2[5] = 786432;- |* ^) J8 I# ^6 w
  28.     return;
    1 ?. g* i% o3 l! o, c; t2 g; T
  29.   }
    4 {' b; Y2 E9 n  H- E
  30. LABEL_7:- t1 n8 I; n5 E: Z: }% F
  31.   byte_5D33F0 = 0;
    7 u2 U! X( ~; @. ^
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------
    ; R4 A0 j  u2 p6 E: Z. [
  2. .text:004096ED                 align 10h
    2 }2 Y. I: l! ?5 T3 H
  3. .text:004096F09 U( c: r! t) f# r8 D% L4 [. C
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j
    4 x' {. q% O6 i8 ?% X- d9 T
  5. .text:004096F0                                         ; sub_409670+8A↓j9 s* s# k, [5 W% s0 W: E. b
  6. .text:004096F0                 mov     cl, [eax]2 i1 T6 T) c8 b5 U
  7. .text:004096F2                 mov     [edx+eax], cl
    ) }1 |0 p, k: b7 E
  8. .text:004096F5                 add     eax, 1% E7 O& `9 w" d0 ?
  9. .text:004096F8                 test    cl, cl
    % T/ k" o1 l8 b* H- C
  10. .text:004096FA                 jnz     short loc_4096F0" l" k# a+ ]2 x# R$ B
  11. .text:004096FC                 mov     eax, dword_5D3E6C
    * `! I# |" C1 P& V
  12. .text:00409701                 mov     byte_5D33F0, 1# W4 Q5 ^) }2 [. ^
  13. .text:00409708                 mov     byte ptr [eax+4], 1; E! u6 ~9 q5 p1 z
  14. .text:0040970C                 mov     dword ptr [eax+8], 0
    & O# Y' E% a0 G. D' I( q% L1 @; n* q# e) Q
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h+ R6 x3 b) ]# h; T
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 0
    9 u. V. m* [7 K9 O
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h- l! L, g& y- L( G/ P% F
  18. .text:00409728                 retn+ B" Z8 }1 q8 q6 i  V2 j
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码

. v# ~6 F; ^) w6 z- u- E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好1 很差劲很差劲
回复

使用道具 举报

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

使用道具 举报

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

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