冒险解谜游戏中文网 ChinaAVG

标题: 英雄无敌四风之战争的汉化分析 [打印本页]

作者: jinxin8866    时间: 2010-3-15 20:37
标题: 英雄无敌四风之战争的汉化分析
以下是英雄无敌四风之战争的汉化分析:
) D3 c& x9 L' N, C) ?1 P, I: N) x
# R2 d9 C9 F9 v$ Q- E% i00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
: U) E9 m7 _; t8 b  t7 s  o# h00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
! V  r. q# i7 @. q2 \, C00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 % I$ v* Q, ]3 ]5 k
00 00 40 00 00 00 00 00 00 00 00 00 00 30 00* L4 ?! H& c8 [* H$ b$ R
90 F0 F0 54 00 00 00 00 00 00 00 00 F0 F0 03 : m. s; q- @9 T; O3 W( t# G
B0 F0 F0 F0 45 00 00 00 00 00 00 30 F0 DF 0F % e8 R9 B4 P: L( z& e) T
90 F0 F0 F0 EF 24 00 00 00 00 00 30 F0 BF 0D, _  C  f' ~5 ]1 b1 E
70 F0 EF F0 F0 EE 22 00 00 00 00 30 F0 BF 0B : j; C+ D3 e% b
70 F0 4F 9E F0 F0 EE 22 00 00 00 30 F0 AF 0B 0 w( |0 u' F/ M: @
70 F0 3F 04 99 F0 F0 EE 22 00 00 30 F0 7F 0A % h0 ?% N4 @7 t' H6 q, u9 l
70 F0 3F 03 00 99 F0 F0 EE 22 00 30 F0 7F 07 ! I+ C3 U/ M2 r' g
70 F0 3F 03 00 00 99 F0 F0 EE 22 30 F0 7F 07
0 q9 v% T& H$ b70 F0 3F 03 00 00 00 99 F0 F0 EE 62 F0 7F 07
. y8 s: v" E) H70 F0 3F 03 00 00 00 00 99 F0 F0 F0 F0 7F 07 ) F; U8 B9 }# q4 ~' @8 T  k
90 F0 3F 03 00 00 00 00 00 99 F0 F0 F0 7F 07 & k5 Q2 l- B( m4 U) X* I
B0 F0 3F 03 00 00 00 00 00 00 99 F0 F0 7F 07  9 `- u- n, p& b+ R3 M$ Z1 J
D0 9B 1F 03 00 00 00 00 00 00 00 89 AF 1F 07 : ]4 }3 S  V) T$ Y' ]- b
10 0D 09 01 00 00 00 00 00 00 00 00 08 0A 01
2 n6 Y2 _* K7 }0 `6 B; y$ K00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
; v! f, V" m1 s7 ?$ ]8 Z00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7 @( e4 u' t. r: e* T4 W
这是本人从内存中导出N的点阵字库,一个字节表示一个点,数值越大,颜色越深, / Q  L. i$ n$ Z& h3 B

  _4 f; j4 s$ H/ @  f) _0071BD50  /$  51                    push ecx5 w  ^  k( H6 e0 C
0071BD51  |.  53                    push ebx
. a; y$ Q' p2 b; G, l2 X; x0071BD52  |.  55                    push ebp
& m5 f1 o* }5 Z0071BD53  |.  8B6C24 1C             mov ebp,dword ptr ss:[esp+1C]
- r6 T9 ?: X9 r) P+ R6 F) p* O0071BD57  |.  894C24 08             mov dword ptr ss:[esp+8],ecx
! _2 d. c: K" }& L0071BD5B  |.  B3 01                 mov bl,1
  V, e$ _) v  H' O' \0071BD5D  |.  8A45 00               mov al,byte ptr ss:[ebp]
, j  _' b4 d) l% M( g0 K3 |2 z+ D1 @" O0071BD60  |.  84C0                  test al,al) T  x: e. u- j' y) B- u$ m
0071BD62  |.  74 69                 je short heroes4.0071BDCD
- d* _+ v7 C- f% z) K0071BD64  |.  56                    push esi
& S; E1 O( j3 B  x' I5 P% _0071BD65  |.  57                    push edi
1 L7 w1 E. c" D' N) E# h5 p& [0071BD66  |.  8B7C24 1C             mov edi,dword ptr ss:[esp+1C]
3 _( ]- k1 u' ~7 x* ?3 r0071BD6A  |.  EB 04                 jmp short heroes4.0071BD70
' y) O! K& G  }3 x1 N) N- l1 p0071BD6C  |>  8B4C24 10             /mov ecx,dword ptr ss:[esp+10]
9 R% ~4 D( Z( v, G3 v0071BD70  |>  8B51 08                mov edx,dword ptr ds:[ecx+8]
% ~: }# Z: c$ _( i# L6 V; P* X  ^0071BD73  |.  25 FF000000           |and eax,0FF$ K! s6 T" V3 r" p
0071BD78  |.  2BC2                  |sub eax,edx
( @$ x  v$ H6 |; r0071BD7A  |.  78 05                 |js short heroes4.0071BD817 Z( t1 ~4 \. |( H! p( ]
0071BD7C  |.  3B41 14               |cmp eax,dword ptr ds:[ecx+14]
6 L" r* U$ o! w6 Z0071BD7F  |.  7C 02                 |jl short heroes4.0071BD83
: L8 t; K- |/ ?2 d! U: b4 }! B0071BD81  |>  33C0                  |xor eax,eax- H/ A8 u# w8 }$ ?
0071BD83  |>  8B49 18               |mov ecx,dword ptr ds:[ecx+18]6 r. U  Q9 K7 E) {& }3 p4 v
0071BD86  |.  8D1480                |lea edx,dword ptr ds:[eax+eax*4]        ;  字符编码基地址存到edx9 C: D% x4 _) s8 n! M
0071BD89  |.  84DB                  |test bl,bl5 Z- j# I4 x. b3 o7 k+ N
0071BD8B  |.  8D0450                |lea eax,dword ptr ds:[eax+edx*2]) D2 U1 L+ `, k. T2 Q4 r
0071BD8E  |.  8D3481                |lea esi,dword ptr ds:[ecx+eax*4]
9 P# W, Q( {$ G) n" p; A  B0071BD91  |.  75 03                 |jnz short heroes4.0071BD96
9 y4 m- g9 n. G0071BD93  |.  037E 14               |add edi,dword ptr ds:[esi+14]- m- }* r& K: ?. M4 Z! w" ]
0071BD96  |>  8B5424 30             |mov edx,dword ptr ss:[esp+30]& W: m+ f/ m3 Q' @
0071BD9A  |.  8B4424 2C             |mov eax,dword ptr ss:[esp+2C]
- Z" s& T+ T2 a, I" S; B0071BD9E  |.  8B4C24 28             |mov ecx,dword ptr ss:[esp+28]
" d0 Q7 H4 G; e# U2 O+ a' N. G0071BDA2  |.  52                    |push edx                                ; /Arg6
: A6 d5 D) F% N* C0071BDA3  |.  8B5424 24             |mov edx,dword ptr ss:[esp+24]           ; |. P7 [+ q1 B+ `) O$ \  l+ q
0071BDA7  |.  50                    |push eax                                ; |Arg5
. h9 Z/ Z( d% q' i! d( B0071BDA8  |.  8B4424 20             |mov eax,dword ptr ss:[esp+20]           ; |, `4 q) B$ o2 i* m% {
0071BDAC  |.  51                    |push ecx                                ; |Arg4
/ f% O% J* i7 u( d6 x0071BDAD  |.  52                    |push edx                                ; |Arg3
- @" g$ D3 U% X- M' t0071BDAE  |.  57                    |push edi                                ; |Arg2
; T3 m; i. t" j0 D3 S- O0071BDAF  |.  50                    |push eax                                ; |Arg19 N# U$ A/ L! }3 w# q2 Y. \- h) D! a
0071BDB0  |.  8BCE                  |mov ecx,esi                             ; |
2 W: ?* F4 B6 `0 s4 N+ U( W( Q$ [4 }0071BDB2  |.  32DB                  |xor bl,bl                               ; |* r$ N5 J# \/ T1 P0 ^1 F
0071BDB4  |.  E8 67FAFFFF           |call heroes4.0071B820                   ; \字库读取函数/ N) `4 h  G# c
0071BDB9  |.  8B4E 18               |mov ecx,dword ptr ds:[esi+18]
8 _2 v. P+ V2 y$ f- |0071BDBC  |.  8B46 04               |mov eax,dword ptr ds:[esi+4]) g9 x# D( N8 K" p# X; O. r" I
0071BDBF  |.  03C8                  |add ecx,eax
/ g, n  L! e+ c3 R+ _; g" b+ U0071BDC1  |.  8A45 01               |mov al,byte ptr ss:[ebp+1]
) ?2 N# R3 u. e! Q6 ~0071BDC4  |.  03F9                  |add edi,ecx( Q: v: }0 B- m7 M5 m( V+ b$ q
0071BDC6  |.  45                    |inc ebp2 \, _. S$ \; O% }
0071BDC7  |.  84C0                  |test al,al
5 [& ~' S- U0 g( {0071BDC9  |.^ 75 A1                 \jnz short heroes4.0071BD6C
1 G9 @  t$ v% r0071BDCB  |.  5F                    pop edi1 \- n4 [8 ?" _* _) d4 C- I
0071BDCC  |.  5E                    pop esi
$ D0 `; F# y9 ?- J# `7 g) r# D0071BDCD  |>  5D                    pop ebp7 {! T. w" [5 J
0071BDCE  |.  5B                    pop ebx
* @- q1 ^' [$ d# I! H6 h! s  z0071BDCF  |.  59                    pop ecx
7 ?7 G; e3 g4 e+ I8 W  F+ v0071BDD0  \.  C2 1C00               retn 1C
$ S0 F8 m8 Q; V3 C
. M) f8 R3 T9 T1 l* Y. t  ^edx为字符编码基地址,每个字符占2C个字节,
  O# z3 p3 l6 v4 y" Redx+4表示字宽
8 E" n# s! m/ z4 X% _edx+8表示字高+ g* b; N6 |1 w: a+ O/ k
edx+10表示该字符点阵在内存的地址,% p! q* a4 z. O, r4 [: @2 }
edx+14表示该字符前面的间距) T9 L+ {; J  g0 ?" _
edx+18表示该字符后面的间距
1 `  P' X7 ~7 v3 ^+ f8 L; i" k6 m1 o5 _
字库文件位于data目录下的heroes4.h4r,可用H4ResEx解包器打开,打开之的文件名为font.Small Fonts5,font.Small Fonts7,
" c7 k4 R4 m5 [8 V但是字库文件的内容与导出点阵对不上,还有待继续分析。。。。。。。。。。。。。。。。
作者: shane007    时间: 2010-3-15 20:42
哇,又来了一位懂汇编的高手。关注中。。。
( ?! \' T5 ~% ^% a! N, ]对了,楼主,你不妨把字库文件什么的发上来,大家也可以帮你看看。
作者: jinxin8866    时间: 2010-3-15 20:46
接下来的任务:
$ C0 P; N( u$ p, F: u1、扩充中文字库
0 ^6 y' O  q# S" u2、扩充中文编码表5 U. e) d4 o) I2 q* ?4 S+ J
3、修改字符读取函数,支持双字节读取
作者: jinxin8866    时间: 2010-3-15 20:52
以下是解压出来的字库文件:
作者: jinxin8866    时间: 2010-3-15 21:01
本游戏的字库是不等宽的点阵字库,一个点用一个字节表示,本人对字库文件不是很了解,希望各位帮我分析一下。
作者: shane007    时间: 2010-3-15 21:05
我感觉有点类似断剑1的字库,你可以看看以下帖子% b  a/ ?: a. Z/ `8 ~+ n0 n, l* E

8 ~. r7 M. g. _: r# Y% x  w【断剑1汉化项目】字体资源文件彻底解说5 H- h1 i& H/ d- W
https://www.chinaavg.com/read.php?tid=189590 W; u4 Y" z$ A  V
- W7 D8 w! a, Q/ v* D& ^8 ^
【断剑1汉化项目】中文字库设计
  [* ]3 F) G! u6 G, e( `1 Rhttps://www.chinaavg.com/read.php?tid=18975
作者: shane007    时间: 2010-3-15 21:22
你的字体的头部有一些信息,应该是字符的高度,宽度等信息。+ q+ ^) A# S4 x( X' ^8 Y
然后下面是连续存放的一连串字符,每个字符都是n个字节。
0 f7 G. u* S  X  |1 G% _0xF0是有色点,其他的颜色,如边框,估计是游戏动态生成的。) D  s: D: R8 `3 F
就像断剑那样。
作者: jinxin8866    时间: 2010-3-16 11:07
本人用CrystalTile打开了font.Small Fonts7,宽度、高度调整为8*15,可以很清楚的看到好几个大写字母的图片,其中0F表示字体颜色,F0表示阴影颜色,每个字模前面标有该字模的宽度,高度,文件头部的信息搞不清楚
作者: shane007    时间: 2010-3-16 11:45
是这样的吗?
作者: jinxin8866    时间: 2010-3-16 16:51
是的,字符是不等宽的,经过调整大写字母都能看清,其他的就看不清楚了,不知道怎么回事
作者: jinxin8866    时间: 2010-4-24 06:54
本人的第一个汉化作品终于出炉了,庆祝一下!!!!!!!!!!!!!
作者: jinxin8866    时间: 2010-4-24 06:59
标题: H4mod中文版
下载地址如下:(解压出来后放在游戏目录下就可以了)
作者: shane007    时间: 2010-4-24 07:08
热烈祝贺楼主!
3 o! p) f: h( R; k4 G6 A另外请楼主在有时间的时候把它的汉化分析补充完整。% ]' N( F: H4 E- h6 u
字库结构分析,汇编代码修改等等,谢谢!
作者: 夜雨    时间: 2010-4-24 07:44
LZ辛苦了
作者: cx2005    时间: 2010-4-24 09:15
不支持中文地图,中文地图一放就去就游戏崩溃。
作者: aids0079    时间: 2010-4-24 19:31
疾风战场不是有中文版了吗?
作者: jinxin8866    时间: 2010-4-24 21:17
疾风战场有的是繁体中文版,本人是根据英文版汉化成简体中文版,读取简体中文的地图不会产生乱码
作者: shane007    时间: 2010-4-24 21:25
引用第16楼jinxin8866于2010-04-24 21:17发表的 : " L" O% N6 o/ c5 V8 D+ G2 w" l
疾风战场有的是繁体中文版,本人是根据英文版汉化成简体中文版,读取简体中文的地图不会产生乱码

) l; l" L: ^" D4 M( b/ G" N* i3 ]. e- Z! {9 Y  Y
" l2 m  y; P, R: B5 @
jinxin8866,希望把静物2的XCPK格式再研究一下,谢谢了!




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2