本帖最后由 shane007 于 2023-8-23 16:24 编辑
: X$ y) C8 A6 q$ K1 y' B
3 o$ `( l# H8 d- L9 M& J7 k多年前Odair版本让我看是否能汉化,当时水平有限,暂时未能解决。9 }$ V( G) s7 J1 U
这一波,我感觉可以解决这个游戏的汉化问题了。游戏可以用dxwnd窗口化,随后用OD附加进程即可调试。% l& f( k1 P# Y# \6 P2 F" S
+ g1 Q7 R, S+ U9 T这是一款DirectDraw游戏,代码如下。9 v; i! V* |) J5 B+ m$ Z1 ~/ u$ _
- .text:004234B0 push 0 ; pUnkOuter
3 p- @, _2 @* H* Z& W; |) p - 5 V; K1 o0 o; a- t* F; ~
- .text:004234B2 push offset lpDD ; lplpDD0 R Q3 U. J& ?6 ]
- . X$ D+ t. g4 y2 O7 q: b& g
- .text:004234B7 push 0 ; lpGUID6 g: F( o# q# G/ c, r
- , P/ P+ e3 D: q6 I3 s
- .text:004234B9 mov dword_458E98, 0* ]: i- s" E" s& D0 |& ~
- + n: S- W" V3 _3 E3 n& h: C
- .text:004234C3 call DirectDrawCreate
复制代码 ) a7 L. ]' X1 H* V6 Y r; M( r& a
选了游戏开头主角点马桶出现的那句对话,下内存断点,在以下地方断下。
. U/ R& ?* }$ N" |4 |- 0041EA60 |. 885437 FF |mov byte ptr [edi+esi-1], dl
复制代码 0 K1 ?" I( _) Q4 d2 o4 G
3 F& j9 A' N: H/ |6 I; [4 m- l
在ida pro中看到函数原型如下,a2,a3猜测是高度和颜色。8 m' K' q O% P9 }4 h7 p7 h4 S
- signed int __cdecl sub_41E960(const char *a1, unsigned int a2, unsigned int a3)
复制代码
. e' l6 d. ]! {! _) q' B/ W' A- H$ O$ T2 Y; @
看了一下调用的地方,有19处,那这个游戏应该都是只用这一个显示函数了。/ S$ u& F3 H& ?( i
( b- U5 p" V: F0 H* f! q+ L# w& `2 t5 J
5 _9 Z( `: `- N' a8 }
|