本帖最后由 shane007 于 2023-8-23 16:24 编辑 ) ^; G/ d; g' G! C7 Q; `
, f' \$ Q p0 d9 P. v4 X! Q' h/ g- r多年前Odair版本让我看是否能汉化,当时水平有限,暂时未能解决。
3 {! b+ ^& t9 ]+ N; }" c3 m0 ?$ [0 K这一波,我感觉可以解决这个游戏的汉化问题了。游戏可以用dxwnd窗口化,随后用OD附加进程即可调试。
7 j* F, A' [& M1 i, B6 v# v, @5 v- F6 \/ X+ a) A) b; Z, \
这是一款DirectDraw游戏,代码如下。) O9 S- D" c8 d1 h, r$ m% x& i
- .text:004234B0 push 0 ; pUnkOuter
" y5 v1 V: r$ }& Y8 S: W6 {$ M - 0 j4 L( k4 I! c( g# ~
- .text:004234B2 push offset lpDD ; lplpDD3 F0 e8 r4 B# I" C/ b2 A2 H( A
- $ H# ], o! H8 w/ w
- .text:004234B7 push 0 ; lpGUID
i$ r8 P/ ]4 U! w
3 X9 h- k% L( T% C- \1 B; `- f- .text:004234B9 mov dword_458E98, 0) g( L& N# ~9 j1 o. O
- ) ~7 C% F, F, F
- .text:004234C3 call DirectDrawCreate
复制代码
" [7 M7 r5 L5 ~" Q, L( c! A3 p3 Z选了游戏开头主角点马桶出现的那句对话,下内存断点,在以下地方断下。
0 D& V$ }1 @! i ^9 Y- 0041EA60 |. 885437 FF |mov byte ptr [edi+esi-1], dl
复制代码
" T7 W, R4 [- M( Q7 V3 n/ s
1 Z% T# H( v* Y+ [在ida pro中看到函数原型如下,a2,a3猜测是高度和颜色。; [, q% k. J. D/ c: a& \! c$ M, ?
- signed int __cdecl sub_41E960(const char *a1, unsigned int a2, unsigned int a3)
复制代码
- q; e: ]; w4 m) ]: R @7 ?7 z* ]* V1 g0 m/ j6 K) q( X9 s8 v
看了一下调用的地方,有19处,那这个游戏应该都是只用这一个显示函数了。
9 Q/ @9 J- H; u/ S* A0 a
+ k+ X4 w- Q7 z4 ~4 |4 f6 p8 I8 [) M! K$ S4 g3 N
/ y4 @/ V* |+ B3 |( Y# J4 c |