本帖最后由 shane007 于 2023-8-23 16:24 编辑 % |9 f/ {7 i: W( T8 Q- a
6 v+ @, v/ C; U: v/ T
多年前Odair版本让我看是否能汉化,当时水平有限,暂时未能解决。
# N! d# {! i: ], V这一波,我感觉可以解决这个游戏的汉化问题了。游戏可以用dxwnd窗口化,随后用OD附加进程即可调试。0 z0 g- }0 l2 P+ y$ E5 Z; \3 ]
o! B6 T- A9 d) A3 @5 w. q这是一款DirectDraw游戏,代码如下。' ]( T. C# G6 D% ~( R. ?
- .text:004234B0 push 0 ; pUnkOuter
1 T+ c9 r0 A$ a/ z% r5 M, H - 9 j t) h% a& `2 m) a9 m% a" z
- .text:004234B2 push offset lpDD ; lplpDD E& P% U$ T, {. r Q
- ! A" J( `9 W- l
- .text:004234B7 push 0 ; lpGUID% B. ]& d. s7 h+ s1 y
- # l1 o6 T3 S4 s% u- {
- .text:004234B9 mov dword_458E98, 0+ [2 y& Y. U2 ` E2 u. K
/ d: p* s9 }" s- h& }+ `- .text:004234C3 call DirectDrawCreate
复制代码
/ y, `: f/ c9 u, ]' P# X n( Y选了游戏开头主角点马桶出现的那句对话,下内存断点,在以下地方断下。/ ?- T, [! \* V4 j# Z* D" e0 T2 A0 w
- 0041EA60 |. 885437 FF |mov byte ptr [edi+esi-1], dl
复制代码
0 ]7 h' H! t" h4 b8 w$ r3 @2 F' Z( j
在ida pro中看到函数原型如下,a2,a3猜测是高度和颜色。
! V! G7 ]0 C5 |8 O- signed int __cdecl sub_41E960(const char *a1, unsigned int a2, unsigned int a3)
复制代码
1 M3 |2 p# O' k9 t, @# U4 G6 z; [
看了一下调用的地方,有19处,那这个游戏应该都是只用这一个显示函数了。
- a! o' ?/ B3 i# D$ p) w) q0 v) {
+ J6 @ N+ P# o; R/ U0 a& j+ C- A
$ { q7 s r* Q6 k5 b
|