本帖最后由 shane007 于 2023-8-23 16:24 编辑
1 g% c. g( u+ B4 }9 F! u
* W5 ~: H o$ T. F0 ?6 g, ~5 Z多年前Odair版本让我看是否能汉化,当时水平有限,暂时未能解决。
; l7 l2 S5 t" j' @, ?1 S这一波,我感觉可以解决这个游戏的汉化问题了。游戏可以用dxwnd窗口化,随后用OD附加进程即可调试。
- P2 H5 y6 _$ ~; }4 b
3 W" l/ R; M4 p9 P% f这是一款DirectDraw游戏,代码如下。3 \- i6 O. J6 o& ?6 h! c& P
- .text:004234B0 push 0 ; pUnkOuter/ z( b2 H" ?. }; F# U: [
- 6 M, `0 K$ {4 k! z, a5 W; {; `
- .text:004234B2 push offset lpDD ; lplpDD& Y5 ]% c; k- ]9 C1 L2 l
- 3 p+ B4 m8 |3 e
- .text:004234B7 push 0 ; lpGUID
5 w! v2 h& R' a p C9 ]
8 ~2 I$ L2 f: M# E, Q. a2 E( @* Z J- .text:004234B9 mov dword_458E98, 0
3 N. z5 C$ v& q w8 S, z, r2 ]
5 |# Z2 b' A! Q% N) Z/ J( Y& |- .text:004234C3 call DirectDrawCreate
复制代码 . @ r( M4 P$ @% j0 o
选了游戏开头主角点马桶出现的那句对话,下内存断点,在以下地方断下。3 h; B- |6 T F* H8 T
- 0041EA60 |. 885437 FF |mov byte ptr [edi+esi-1], dl
复制代码 2 n: u$ h2 P' n1 O
+ K) W& @ H+ W) w, E7 j- A* l$ i在ida pro中看到函数原型如下,a2,a3猜测是高度和颜色。6 _+ j7 h) q k. Y$ R
- signed int __cdecl sub_41E960(const char *a1, unsigned int a2, unsigned int a3)
复制代码 : t! t1 Z+ M& W, C8 C
7 b! D9 t5 }7 F" h I
看了一下调用的地方,有19处,那这个游戏应该都是只用这一个显示函数了。
' i$ S- I# O) y+ F c. p
S1 @: t8 B. J) U* U
. N9 ?: \% }8 G5 k7 v+ l* D& ^4 J
7 a, G9 s* S- Q |