冒险解谜游戏中文网 ChinaAVG

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

作者: jinxin8866    时间: 2010-3-15 20:37
标题: 英雄无敌四风之战争的汉化分析
以下是英雄无敌四风之战争的汉化分析:
0 k9 I" p: \$ @5 M. b, g4 P' l/ ]( B7 G
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00; `& H4 V$ ~4 P
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 / j9 _! W( Z9 A; G, Y4 I
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 {9 C2 _/ v& E& u
00 00 40 00 00 00 00 00 00 00 00 00 00 30 00  ^0 g" L8 \* M' B4 u
90 F0 F0 54 00 00 00 00 00 00 00 00 F0 F0 03 6 b6 M% W3 |8 |; E7 h
B0 F0 F0 F0 45 00 00 00 00 00 00 30 F0 DF 0F
2 Z* x0 ^9 ~2 W" |90 F0 F0 F0 EF 24 00 00 00 00 00 30 F0 BF 0D0 c& O5 p% [) @) z: m
70 F0 EF F0 F0 EE 22 00 00 00 00 30 F0 BF 0B ) ?, u  ]" X  D* t$ D
70 F0 4F 9E F0 F0 EE 22 00 00 00 30 F0 AF 0B ! v6 I6 e" F3 D% z
70 F0 3F 04 99 F0 F0 EE 22 00 00 30 F0 7F 0A 8 t+ H/ R8 h7 O/ v
70 F0 3F 03 00 99 F0 F0 EE 22 00 30 F0 7F 07 5 u/ ]: `! p  Z0 X7 f$ W- P3 Y
70 F0 3F 03 00 00 99 F0 F0 EE 22 30 F0 7F 07 & f5 S1 n9 @7 p9 M4 r& H
70 F0 3F 03 00 00 00 99 F0 F0 EE 62 F0 7F 07 / ?! ~9 v0 M5 W+ v! l9 s' G0 y! F
70 F0 3F 03 00 00 00 00 99 F0 F0 F0 F0 7F 07 2 {' U7 Y/ u5 I9 N; z3 K1 Q
90 F0 3F 03 00 00 00 00 00 99 F0 F0 F0 7F 07 0 Z: ]0 B/ @3 w1 J( \
B0 F0 3F 03 00 00 00 00 00 00 99 F0 F0 7F 07  $ x7 B8 {6 F7 e& K! \8 p
D0 9B 1F 03 00 00 00 00 00 00 00 89 AF 1F 07 , {3 |# r- C  ]- ]4 c: _
10 0D 09 01 00 00 00 00 00 00 00 00 08 0A 01 / I$ U) R+ |% P4 ]# b( }8 |9 b
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
3 m+ B8 d! b; G8 q( K$ ]00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3 ^  k: ^9 O# @5 n, C这是本人从内存中导出N的点阵字库,一个字节表示一个点,数值越大,颜色越深,
# V2 |1 Z, u7 ^* g+ O: `$ Q9 V% J4 O  X: E  ?# I( s% s
0071BD50  /$  51                    push ecx; L# a* c/ C# @* T/ X* [
0071BD51  |.  53                    push ebx; |& b  ~( K: z2 c: H/ o: o+ w5 L
0071BD52  |.  55                    push ebp+ w; L3 j: y5 E! @
0071BD53  |.  8B6C24 1C             mov ebp,dword ptr ss:[esp+1C]
. \6 k4 _# Q6 h0071BD57  |.  894C24 08             mov dword ptr ss:[esp+8],ecx
4 r5 K1 u4 v6 z/ [* b4 j+ A' `0071BD5B  |.  B3 01                 mov bl,1. r# R  k" `2 ?: z$ q9 [
0071BD5D  |.  8A45 00               mov al,byte ptr ss:[ebp]/ p3 O% {$ g% N& S* z) C
0071BD60  |.  84C0                  test al,al
! w) a' X7 d" ?& F  c' s0071BD62  |.  74 69                 je short heroes4.0071BDCD: @5 A/ W5 t) u
0071BD64  |.  56                    push esi) J; [/ [% d- }3 U( |4 d) b% l# H
0071BD65  |.  57                    push edi9 y/ K/ q7 C# o  C. g
0071BD66  |.  8B7C24 1C             mov edi,dword ptr ss:[esp+1C]
  x( k: A" b9 B: {$ d) e0071BD6A  |.  EB 04                 jmp short heroes4.0071BD70
  x4 Y  u) f4 W5 q: o& [0071BD6C  |>  8B4C24 10             /mov ecx,dword ptr ss:[esp+10]% r  U* F% l4 D
0071BD70  |>  8B51 08                mov edx,dword ptr ds:[ecx+8]% W2 c- {; g- i% u5 w1 z
0071BD73  |.  25 FF000000           |and eax,0FF
4 E5 q9 w. m# \* ^) r0071BD78  |.  2BC2                  |sub eax,edx" t8 w* `+ A  J  r6 x; a0 g* p/ o
0071BD7A  |.  78 05                 |js short heroes4.0071BD81
/ U1 L; ~- j* ~  y6 b0071BD7C  |.  3B41 14               |cmp eax,dword ptr ds:[ecx+14]! _0 Q1 [' L3 r) V( k% a
0071BD7F  |.  7C 02                 |jl short heroes4.0071BD83; [7 l9 V9 k. w) Q( }% Q
0071BD81  |>  33C0                  |xor eax,eax
; |$ e6 {5 b8 t- T" \0071BD83  |>  8B49 18               |mov ecx,dword ptr ds:[ecx+18]
2 i/ h0 D0 L, z/ Z1 h4 t1 m) E0071BD86  |.  8D1480                |lea edx,dword ptr ds:[eax+eax*4]        ;  字符编码基地址存到edx
  u# Q4 N  L( r1 b1 z6 u# {; i) C0071BD89  |.  84DB                  |test bl,bl
, e0 G! ^% z8 j* W0071BD8B  |.  8D0450                |lea eax,dword ptr ds:[eax+edx*2]
! [; m$ A6 J  `; T! a3 x4 ~0071BD8E  |.  8D3481                |lea esi,dword ptr ds:[ecx+eax*4]) [6 M  J4 K" T3 l4 \8 l7 H
0071BD91  |.  75 03                 |jnz short heroes4.0071BD96
  d% M' x  F; M. r0 N( {0071BD93  |.  037E 14               |add edi,dword ptr ds:[esi+14]
% F+ p3 t5 S+ x& L/ B0 k0071BD96  |>  8B5424 30             |mov edx,dword ptr ss:[esp+30]
" I7 V  P1 ]& Q- b! {0071BD9A  |.  8B4424 2C             |mov eax,dword ptr ss:[esp+2C]) j2 `  C9 u5 [
0071BD9E  |.  8B4C24 28             |mov ecx,dword ptr ss:[esp+28]3 J3 p0 S2 ~- u9 p
0071BDA2  |.  52                    |push edx                                ; /Arg69 @4 b9 X( K8 u- e/ B
0071BDA3  |.  8B5424 24             |mov edx,dword ptr ss:[esp+24]           ; |
  t: p1 y7 }7 u  \/ A" F* r5 s0071BDA7  |.  50                    |push eax                                ; |Arg5
. C) L1 p5 E6 S+ F0071BDA8  |.  8B4424 20             |mov eax,dword ptr ss:[esp+20]           ; |3 m) M" J( H/ p# x4 B" S
0071BDAC  |.  51                    |push ecx                                ; |Arg4- R7 }1 _, Z) u; |, z
0071BDAD  |.  52                    |push edx                                ; |Arg37 ?. \8 m$ {# c5 r& `
0071BDAE  |.  57                    |push edi                                ; |Arg2" Z7 P, b- X3 o& L
0071BDAF  |.  50                    |push eax                                ; |Arg1
# X8 d) r9 o0 ^  _( l0071BDB0  |.  8BCE                  |mov ecx,esi                             ; |( v3 R4 ~8 A: x( j7 x  I, I
0071BDB2  |.  32DB                  |xor bl,bl                               ; |# j8 r7 E, i$ c
0071BDB4  |.  E8 67FAFFFF           |call heroes4.0071B820                   ; \字库读取函数
* m& X! y8 A9 d0071BDB9  |.  8B4E 18               |mov ecx,dword ptr ds:[esi+18]5 b& d; Q# m1 J8 }* q6 y: L2 i) \) R
0071BDBC  |.  8B46 04               |mov eax,dword ptr ds:[esi+4]/ `/ b) D; L2 x
0071BDBF  |.  03C8                  |add ecx,eax
1 `: e1 \. z" w0 z& c& k0071BDC1  |.  8A45 01               |mov al,byte ptr ss:[ebp+1]/ O- a! d2 _/ N1 R5 E( r) J  ]( g
0071BDC4  |.  03F9                  |add edi,ecx9 x+ {4 g2 a& L1 e- _$ I8 L8 h
0071BDC6  |.  45                    |inc ebp3 l/ N2 i. K1 U/ s2 e+ c$ V
0071BDC7  |.  84C0                  |test al,al
/ n# b, r1 E. U/ i# I. L9 {0071BDC9  |.^ 75 A1                 \jnz short heroes4.0071BD6C
: j8 j3 F3 N" i) S, b/ L- \0071BDCB  |.  5F                    pop edi
  c9 \2 n% [8 c0071BDCC  |.  5E                    pop esi
+ p0 k, J" w+ Z% g0 n# K0071BDCD  |>  5D                    pop ebp
' D" O2 P! l; D! c. u& E0071BDCE  |.  5B                    pop ebx
7 I8 z2 K& ~( Q4 a9 B. L  a7 c: D0071BDCF  |.  59                    pop ecx* P4 x+ z( Y& Z/ A0 T) y
0071BDD0  \.  C2 1C00               retn 1C
$ _, g# |$ x5 x4 M2 {+ J1 z7 ?
% R- `3 H6 {- L* ?edx为字符编码基地址,每个字符占2C个字节,
6 @9 E+ d5 ^) Redx+4表示字宽1 b1 g. }/ \5 @) E* m
edx+8表示字高) o/ O* k2 T' z  b  {
edx+10表示该字符点阵在内存的地址,/ V: m2 S+ A! R
edx+14表示该字符前面的间距! x/ ~0 C- M% p# z8 n
edx+18表示该字符后面的间距) b5 S+ Y  y9 H/ C$ Q5 t& C; y3 f- J

1 }; B% V9 g# N( F9 i, s字库文件位于data目录下的heroes4.h4r,可用H4ResEx解包器打开,打开之的文件名为font.Small Fonts5,font.Small Fonts7,
$ l  v' i2 P! Y但是字库文件的内容与导出点阵对不上,还有待继续分析。。。。。。。。。。。。。。。。
作者: shane007    时间: 2010-3-15 20:42
哇,又来了一位懂汇编的高手。关注中。。。1 H3 `. `% Q; j( G
对了,楼主,你不妨把字库文件什么的发上来,大家也可以帮你看看。
作者: jinxin8866    时间: 2010-3-15 20:46
接下来的任务:
- q9 }4 x$ W1 q% R1、扩充中文字库
( ]( C' d) X. b( [5 s9 K6 i$ m. a: C' `2 L2、扩充中文编码表
% L. Q' q9 x( v: F6 W! {2 u$ E3、修改字符读取函数,支持双字节读取
作者: jinxin8866    时间: 2010-3-15 20:52
以下是解压出来的字库文件:
作者: jinxin8866    时间: 2010-3-15 21:01
本游戏的字库是不等宽的点阵字库,一个点用一个字节表示,本人对字库文件不是很了解,希望各位帮我分析一下。
作者: shane007    时间: 2010-3-15 21:05
我感觉有点类似断剑1的字库,你可以看看以下帖子
) E# @/ Y' J5 s7 J2 _* U2 |% b7 N! D3 ?4 f. b# p& d/ H1 q2 Q
【断剑1汉化项目】字体资源文件彻底解说
  O0 @& y& L; ?) y5 |https://www.chinaavg.com/read.php?tid=18959$ w% P$ g) {1 H7 e+ w

$ U6 y, `; y" K( P, R1 o0 N) O【断剑1汉化项目】中文字库设计
1 l( ]5 Z- Q4 T) k+ Q2 `8 t* jhttps://www.chinaavg.com/read.php?tid=18975
作者: shane007    时间: 2010-3-15 21:22
你的字体的头部有一些信息,应该是字符的高度,宽度等信息。
: o6 g4 Q4 E+ ?5 a  K/ N( q& y6 P然后下面是连续存放的一连串字符,每个字符都是n个字节。
) p' D, v* a. R9 e& p; {/ L0xF0是有色点,其他的颜色,如边框,估计是游戏动态生成的。
# }$ U! S( D' K$ _  g就像断剑那样。
作者: 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
热烈祝贺楼主!
" f. V( |8 u+ `( A3 W* P另外请楼主在有时间的时候把它的汉化分析补充完整。5 A; _* ^* [+ y0 j9 h1 J1 D& N5 ~
字库结构分析,汇编代码修改等等,谢谢!
作者: 夜雨    时间: 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发表的 : 6 `' d/ _4 B* g( h/ k
疾风战场有的是繁体中文版,本人是根据英文版汉化成简体中文版,读取简体中文的地图不会产生乱码
) v+ E# k) J; l8 q, P7 w6 P% K
1 n; @5 f) V8 [
0 g" P* L, j9 b9 o0 M' E
jinxin8866,希望把静物2的XCPK格式再研究一下,谢谢了!




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