设为首页收藏本站官方微博

【汉化资料】疯人院(汉化分析)(发现字符串显示函数)

[复制链接]
查看: 2197|回复: 8
打印 上一主题 下一主题

【汉化资料】疯人院(汉化分析)(发现字符串显示函数)

跳转到指定楼层
楼主
发表于 2009-1-11 15:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

【汉化资料】疯人院(汉化分析)(发现字符串显示函数)

最近想对疯人院这个游戏进行一些汉化分析。希望能想办法解决这个大家盼望已久的游戏的汉化问猓由于本人对汇编的经验尚浅,不太可能在短时间内解决,不过会不断更新阶段性的成果? & c7 Y6 Q- m% n" B3 q; n7 a

/ Q  M/ u3 x# {1 i* ]/ I下面说一下发现字符串显示函数的过程:
# A8 {1 ~6 Q- j, p% _首先在通用游戏窗口化工具中加入这个游戏的主文件,然后运行游戏,游戏正常运行。 . j2 n; g1 E% l% x0 T
退出游戏,用OD载入以后,游戏也可以正常运行。
+ H  v! d0 N, M我找了一个比较简单的字符串,比如,New Game,用OD在内存中寻找,很容易就找到了。 * ]/ j0 F8 ], d0 Q% K" S# a
在这个字符串上下内存断点。然后把鼠标放到New Game按钮上,游戏被断下,仔细一看,New Game这个字符串就躺在寄存器ESI里,断下的地方就是字符串显示函数。
! l0 X) r1 e& h5 W+ @; S( v# ?, |2 H! [( w
字符串显示函数如下: ; y5 @  Y' X/ [/ x. _5 p
004357C0 /$ 56 push esi ; 字符串显示函数 * a' l: J) {6 V4 ^
004357C1 |. 8B7424 08 mov esi, dword ptr [esp+8] : M5 f2 X1 v& C% J+ |6 g! S, d
004357C5 |. 57 push edi & h5 v; r1 L- s9 \- r; [0 n
004357C6 |. 33FF xor edi, edi
3 {6 ]$ A8 z! T& f8 S$ f004357C8 |. 85F6 test esi, esi
" y4 f5 J0 e) a9 l) a004357CA |. 74 3E je short 0043580A
2 [, U8 z7 [. _$ w+ g) }1 p3 G004357CC |. 8A06 mov al, byte ptr [esi] ------〉在这一行被断下
" y8 O2 A& r/ `, L
004357CE |. 84C0 test al, al
$ k" R& \" d: m8 p) m3 ?1 i004357D0 |. 74 38 je short 0043580A
( e& h' E2 P- n004357D2 |> 25 FF000000 /and eax, 0FF
9 C- D! w% \, H9 C' f) M2 Q1 C004357D7 |. 50 |push eax
9 O4 B$ J. u; `  K/ B004357D8 |. A1 88764500 |mov eax, dword ptr [457688]
8 |- P/ z* I7 ^004357DD |. 50 |push eax
2 N5 [. N" z9 c5 F+ }  [) d3 y004357DE |. E8 3DD0FFFF |call 00432820 ; 3 Q" R+ U0 N# h( e& h" \( Q8 l
004357E3 |. 33C9 |xor ecx, ecx 9 a$ s9 Z9 D  k) N. z0 K' y
004357E5 |. 33D2 |xor edx, edx
; u3 {, i7 _" Z2 Q004357E7 |. 66:8B48 08 |mov cx, word ptr [eax+8]
5 A' j& @3 z! c6 ~' `6 ~# {0 Y004357EB |. 66:8B50 0E |mov dx, word ptr [eax+E] 7 H/ V! [6 X* e* A7 s
004357EF |. A1 80914500 |mov eax, dword ptr [459180] / A/ n  ]+ B' ]: A# d4 \; f+ u
004357F4 |. 03CA |add ecx, edx ; f: t3 Q. }) e* [5 y
004357F6 |. 25 FF000000 |and eax, 0FF 4 ^2 C% J9 l& n1 W: l
004357FB |. 83C4 08 |add esp, 8 & r4 z& t$ s3 w, h$ V- x1 `
004357FE |. 2BC8 |sub ecx, eax ' _" N  }, z& R0 Q1 }2 E9 x8 D
00435800 |. 8A46 01 |mov al, byte ptr [esi+1]
( ?# c; c3 V% I1 r5 v) l+ x00435803 |. 03F9 |add edi, ecx # e* o: a! [( I0 n
00435805 |. 46 |inc esi                                      指向下一个字符
* i( x* v3 ~6 z! g! S
00435806 |. 84C0 |test al, al
  [" z# `7 L# E" D% l' M00435808 |.^ 75 C8 \jnz short 004357D2      
循环
" T. J7 ^& j0 s  F7 }0 y
0043580A |> 8BC7 mov eax, edi
! {$ b2 m! D2 ^# I! p9 x& u" R' F2 @0043580C |. 5F pop edi
! V- F4 s, F/ S' V3 ~0043580D |. 5E pop esi
2 V6 P0 u& s3 b/ K3 S0043580E \. C3 retn
9 V9 u+ ^2 I$ v3 p

3 A3 z. R1 Q+ Y* |5 q0 N& d-------------------------------------------------------------------- + d% S2 b7 ]8 N. u+ ~
2009.1.11 第一次更新 , v0 O) I+ P1 h7 C+ l
这个游戏的文本在Data\RES.000文件里,老外早就开发好了文本编辑器。   {* D1 A+ m6 M! C+ O" E; y3 i4 T
最大的问题是字库问题,游戏中使用的是一种自定义的图片格式字库,还不是点阵的。 ' }, D! {+ }, j% k0 t+ p) c
要自己追加中文图片格式字库几乎不可能。
1 M+ l( x2 }3 x' s. S2 z2 V  f7 L& g, t  M所以要汉化这个游戏的唯一方法就是显示函数的移花接木法了。研究中。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
 楼主| 发表于 2009-1-11 23:14 | 只看该作者
不知道habit是怎么改的,是不是在这个显示函数处进行跳转的?
$ _& H8 w/ `3 d. H, R' q+ t我觉得只要改对地方就能解决这个游戏的汉化问题了.
回复 支持 反对

使用道具 举报

板凳
发表于 2009-1-12 11:02 | 只看该作者
回头找到了放上来
回复 支持 反对

使用道具 举报

地板
发表于 2009-1-13 13:08 | 只看该作者
没找到可用的了, 看看附件有没帮助吧.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2009-1-13 21:37 | 只看该作者
引用第3楼habit于2009-01-13 13:08发表的  :
7 J$ g5 |3 m' ^没找到可用的了, 看看附件有没帮助吧.
/ `7 e3 d" O9 R  t$ S
谢谢了,能说说你的思路吗?) R% \+ u) E# H
可能是装了新的DirectX,疯人院暂时没法启动了。
, U+ W+ o4 _* m! |  S' aDLL是在exe里调用还是把DLL的汇编代码插到exe里?/ [0 t1 H# [7 v/ B: J" K; K1 d4 t
知不知道字幕坐标放在哪里?你的程序能把字显示在原来的地方吗?
回复 支持 反对

使用道具 举报

6#
发表于 2009-1-14 11:53 | 只看该作者
是显示在原来的地方,能显示汉字时只改了主程序,没加那个DLL,可能附件中有一个是。0 a6 Y3 a2 Q3 w, v% r
DLL是后加的想改闪烁问题,好象需要DrectX5.0,找不到,也没完成。
8 N! l$ o; K6 n; D我的游戏可能也是DX的原因也运行不了了。
回复 支持 反对

使用道具 举报

7#
发表于 2009-1-14 13:17 | 只看该作者
坐标应该在这两个地址:) \; J+ O! \! V" J
459148 45914a X Y
回复 支持 反对

使用道具 举报

8#
发表于 2009-1-14 19:57 | 只看该作者
我找到一个DX5 SDK的下载地址:
8 Z7 E- ]: a# }2 L$ Dhttp://www.xs4all.nl/~m2mxs/dx5sdk.zip
! j7 B- n# F8 t; @" k; }
4 x5 M' d# o/ t2 {9 P加油啊二位!
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2009-1-14 21:12 | 只看该作者
引用第7楼幽魂于2009-01-14 19:57发表的 : # v9 I' U8 |+ }6 k% P/ s0 [" v- v
我找到一个DX5 SDK的下载地址:
9 D0 u: l; |( F: a) h  ihttp://www.xs4all.nl/~m2mxs/dx5sdk.zip
' Q0 q0 T. C4 s! z$ H
, |2 M% x* x5 e/ B3 h加油啊二位!
* \: J! r( M5 _% H$ A0 W- s* l( _( h8 I
+ N5 e/ |4 e0 ]+ s7 {
谢谢了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表