本帖最后由 shane007 于 2023-8-23 16:24 编辑
8 ?3 {# f# d: \; M
8 r3 ^! ?$ g: s" u( e( N多年前Odair版本让我看是否能汉化,当时水平有限,暂时未能解决。
6 E# K9 C& Z/ M$ v这一波,我感觉可以解决这个游戏的汉化问题了。游戏可以用dxwnd窗口化,随后用OD附加进程即可调试。
; g2 G( u! K: k, }4 P* D/ d3 e2 u$ Q0 {; p$ w( Q
这是一款DirectDraw游戏,代码如下。
! w0 M2 g! i- }8 R3 J* C- .text:004234B0 push 0 ; pUnkOuter& p7 Q7 z0 K* f3 H& I
* j- [1 y1 X+ I' p" N' s9 {- .text:004234B2 push offset lpDD ; lplpDD
0 x1 F- n. V# m- Q8 E U) S+ M - , Q8 ^2 S( q! R r6 Q/ _
- .text:004234B7 push 0 ; lpGUID- J% u, r) v& V y5 E2 c
+ Z8 m! J, O- |" V' c% t- .text:004234B9 mov dword_458E98, 00 v; `* Z; Y( T' ~, }$ h
- 6 M1 }% E+ l( ], O+ r3 x O: @, Q# q
- .text:004234C3 call DirectDrawCreate
复制代码
. N4 z# h, x5 i) E选了游戏开头主角点马桶出现的那句对话,下内存断点,在以下地方断下。) [. H- Y+ J7 J" G. f" `; t8 h
- 0041EA60 |. 885437 FF |mov byte ptr [edi+esi-1], dl
复制代码 ' k6 M1 x8 q& Q" z- v
8 D8 ?4 e% Z! Y7 S+ h I在ida pro中看到函数原型如下,a2,a3猜测是高度和颜色。" Y4 V! V- s7 D5 H! d: ^& X
- signed int __cdecl sub_41E960(const char *a1, unsigned int a2, unsigned int a3)
复制代码 5 c( x9 V3 t/ l- ]! U% m) I& ?
& J5 g( a. b+ H* F看了一下调用的地方,有19处,那这个游戏应该都是只用这一个显示函数了。# L7 d6 G) F4 J5 s( L6 V; a
/ s& R6 f9 v, O% X9 y
1 j% {7 B5 U- R; m" G
w0 f8 H5 W- _- k/ D. L |