本帖最后由 shane007 于 2023-8-23 16:24 编辑 % d. t) l6 f" E9 h* t9 ]8 M
8 v R9 B1 G/ h2 F
多年前Odair版本让我看是否能汉化,当时水平有限,暂时未能解决。
, B9 m9 \6 F7 ]这一波,我感觉可以解决这个游戏的汉化问题了。游戏可以用dxwnd窗口化,随后用OD附加进程即可调试。1 v! T, a4 _4 }& O! d
) _+ `- z+ m: e% z这是一款DirectDraw游戏,代码如下。
, A( ]7 m5 |. I7 @2 X/ L. _" H/ z: f9 n- .text:004234B0 push 0 ; pUnkOuter V, P5 y' P& L
3 F! x. s5 |. B- A5 h- .text:004234B2 push offset lpDD ; lplpDD& F5 f: j3 \4 h2 u' ?5 t
! T+ ~, D6 a: }6 U' B9 o) R- .text:004234B7 push 0 ; lpGUID1 _6 b9 \5 I- r- Z& K; ~
- 8 ^1 U# r% \9 d7 ]$ h
- .text:004234B9 mov dword_458E98, 0, W8 v9 j8 Q6 Y! ? D3 v
x- q& c: O3 V5 [8 I8 g2 D- .text:004234C3 call DirectDrawCreate
复制代码
5 C' j" A( }9 w) R; P' `选了游戏开头主角点马桶出现的那句对话,下内存断点,在以下地方断下。5 ~' z$ \. ]- r% {; H" _
- 0041EA60 |. 885437 FF |mov byte ptr [edi+esi-1], dl
复制代码
6 K' f$ w1 }" Y" B/ ~& b4 ?# j3 P+ L" [/ G. [6 ~ U7 d- \! V9 ]4 q$ Y/ V
在ida pro中看到函数原型如下,a2,a3猜测是高度和颜色。
8 s. A1 p* B5 E, ?0 v- signed int __cdecl sub_41E960(const char *a1, unsigned int a2, unsigned int a3)
复制代码 8 y* X/ A- ~3 f" ]6 q# s
* d) J; C" u/ H8 ?( d; A& o
看了一下调用的地方,有19处,那这个游戏应该都是只用这一个显示函数了。5 h/ k3 B$ d; V
$ j- r" C7 h8 m5 x" K5 }
9 H$ X8 p$ @' B) w
9 V. ^" T% j# e3 x( R A/ ~4 g5 W5 X |