1편에 이어 2편의 한글화 테스트입니다. DVD로 발매된 소스넥스트의 XP 대응 일본어판으로 테스트해 봤습니다. 9X 버전은 제가 없어서 확인해 볼 방법이 없네요.

색상 지정을 잘못했는지 옅은 회색으로 글자가 나와야 하는데 보라색으로 나오는군요-_- 이건 뭐 다시 작업하면 되는 거고 일단 이렇게 한글 출력은 가능합니다. 저도 분석이 완벽하게 끝난 건 아니지만 제가 작업할 것도 아니고 하니 상세한 분석은 생략하고 간략하게나마 한글화 방법을 설명하겠습니다.

일단 이 사이트에서 BIOFAT과 ADT PACKER를 다운 받으세요. 바이오하자드에서 사용하는 파일들의 압축/재압축을 할 수 있는 툴입니다. 해당 툴 말고도 사이트 자체에 바이오하자드의 modification에 대한 정보가 많으니 참고하셔도 좋을 겁니다.


TIMViewer104b.rar


그리고 이 첨부 파일도 받습니다. ps1에서 사용하는 그래픽 포맷인 tim 파일을 bmp로 변환/역변환 할 수 있는 프로그램입니다. pc용 게임에 웬 ps1 툴이냐고요? ps1의 리소스를 거의 그대로 사용하기 때문에 그렇습니다. 바꿔 말하면 pc용 한글화 데이터를 ps1에 응용할 수 있다는 뜻이기도 합니다만 지금은 ps1 버전에 대한 것은 생략하겠습니다.





1. 폰트 추출 및 고유 코드 분석

그럼 설명에 들어가겠습니다. 일반적으로 유니코드를 사용하는 요즘 게임과는 달리 자체 폰트에다 고유 코드를 사용하는 게임이고 수정할 부분이 광범위하게 퍼져 있어서 한글화하기에 조금 까다롭습니다. 그러니 콘솔 게임 한글화에서 주로 사용되는 고유 코드에 할당된 일본어 폰트를 한글 폰트로 대치해서 사용하는 방법을 사용해 보겠습니다.

폰트는 ...\BIOHAZARD 2 PC\common\Data에 들어있는 font0.adt, font1.adt, font2.adt, font3.adt, font4.adt, font5.adt, font6.adt, font7.adt 입니다. 동일 파일명의 확장자가 tim으로 된 파일도 같은 내용의 폰트 파일이지만 실제로 사용하지는 않는 걸로 보입니다. 혹 게임 도중에 사용될지도 모를 일이니 adt 파일과 동일하게 수정하면 될 겁니다. 어쨌든 BIOFAT로 adt 파일의 압축을 풀면 다음과 같은 bmp 파일이 나옵니다.







그리고 아래는 tim 파일을 bmp로 변환한 겁니다.





파일 변환의 문제인지 tim 파일과 비교하면 adt는 하단 16픽셀이 잘려 있고 오른쪽 폰트의 일부가 잘려서 왼쪽으로 넘어가 있는 것을 알 수 있습니다. 그리고 1~7번까지는 동일한 폰트가 존재하는 걸로 봐서는 전부 로딩해 사용하지 않고 특정 지역마다 하나씩만 사용하는 것 같습니다. 이 부분은 작업하실 분이 직접 확인해 보세요 :)

폰트의 고유 코드는 1바이트와 2바이트를 혼용해 사용합니다. 숫자, 영문, 특수기호 등을 제외하면 520여자 정도 사용할 수 있습니다. 약간 모자른 감이 있지만 바이오하자드 정도의 텍스트 분량이면 소화할 수 있을 겁니다. 지역마다 다른 폰트를 로딩하는 거라면 대사에 맞춰 다르게 수정하면 되니 약간 더 여유가 있겠죠. 일단 1바이트 코드는 아래와 같습니다.


00=공백(띄어쓰기)
01=.
02=▶
03=┌
04=┘
05=(
06=)
07=╔
08=╝
09=“
0A=“
0B=▼
0C=0
0D=1
0E=2
0F=3
10=4
11=5
12=6
13=7
14=8
15=9
16=:
17=、
18=,
19=“
1A=!
1B=?
1C=!?
1D=A
1E=B
1F=C
20=D
21=E
22=F
23=G
24=H
25=I
26=J
27=K
28=L
29=M
2A=N
2B=O
2C=P
2D=Q
2E=R
2F=S
30=T
31=U
32=V
33=W
34=X
35=Y
36=Z
37=[
38=/
39=]
3A='
3B=-
3C=·
3D=a
3E=b
3F=c
40=d
41=e
42=f
43=g
44=h
45=i
46=j
47=k
48=l
49=m
4A=n
4B=o
4C=p
4D=q
4E=r
4F=s
50=t
51=u
52=v
53=w
54=x
55=y
56=z
57=あ
58=い
59=う
5A=え
5B=お
5C=か
5D=き
5E=く
5F=け
60=こ
61=さ
62=し
63=す
64=せ
65=そ
66=た
67=ち
68=つ
69=て
6A=と
6B=な
6C=に
6D=ぬ
6E=ね
6F=の
70=は
71=ひ
72=ふ
73=へ
74=ほ
75=ま
76=み
77=む
78=め
79=も
7A=や
7B=ゆ
7C=よ
7D=ら
7E=り
7F=る
80=れ
81=ろ
82=わ
83=を
84=ん
85=が
86=ぎ
87=ぐ
88=げ
89=ご
8A=ざ
8B=じ
8C=ず
8D=ぜ
8E=ぞ
8F=だ
90=ぢ
91=づ
92=で
93=ど
94=ば
95=び
96=ぶ
97=べ
98=ぼ
99=ぱ
9A=ぴ
9B=ぷ
9C=ぺ
9D=ぽ
9E=ぁ
9F=ぃ
A0=ぅ
A1=ぇ
A2=ぉ
A3=ゃ
A4=ゅ
A5=ょ
A6=っ
A7=ア
A8=イ
A9=ウ
AA=エ
AB=オ
AC=カ
AD=キ
AE=ク
AF=ケ
B0=コ
B1=サ
B2=シ
B3=ス
B4=セ
B5=ソ
B6=タ
B7=チ
B8=ツ
B9=テ
BA=ト
BB=ナ
BC=ニ
BD=ヌ
BE=ネ
BF=ノ
C0=ハ
C1=ヒ
C2=フ
C3=へ
C4=ホ
C5=マ
C6=ミ
C7=ム
C8=メ
C9=モ
CA=ヤ
CB=ユ
CC=ヨ
CD=ラ
CE=リ
CF=ル
D0=レ
D1=ロ
D2=ワ
D3=ヲ
D4=ン
D5=ガ
D6=ギ
D7=グ
D8=ゲ
D9=ゴ
DA=ザ
DB=ジ
DC=ズ
DD=ゼ
DE=ゾ
DF=ダ
E0=ヂ
E1=ヅ
E2=デ
E3=ド
E4=バ
E5=ビ
E6=ブ
E7=ベ
E8=ボ
E9=パ
EA=ピ
EB=プ
EC=ペ
ED=ポ
??=ァ  - 불확실
??=ィ  - 불확실
??=ゥ  - 불확실
F1=ェ
F2=ォ
F3=ャ
F4=ュ
F5=ョ
F6=ッ
??=ヴ  - 불확실



F7~FF는 제어코드로 보입니다. 1편의 경우, 이 부분에 2바이트 코드를 할당했었습니다.  불확실로 표기한 부분인 EE~F0는 2바이트 제어 코드입니다. 그 부분에 해당하는 문자는 2바이트로 처리되는 것 같습니다. 1바이트 문자들도 2바이트 값을 갖는 것 같은데 그 부분까지는 분석하지 않았습니다. 2편의 2바이트 코드는 아래와 같습니다.



EE10=L2
EE11=R2
.
.
.

EF01=形
.
.
.
EF9D=人
.
.
.
EFF7=間
.
.
.
F002=誰
.
.
.


폰트와 비교해 보면 알겠지만 뒷자리 값이 00~FF까지 순차적으로 증가하지 않습니다. 직접 대입해 보면서 노가다로 찾아야 하는데 찾기 귀찮은 관계로 이 부분도 작업하실 분의 몫으로 남겨 놓겠습니다ㅋ





2. 대사 추출 및 번역

고유 코드를 다 찾았으면 다음은 대사 파일입니다. 사실 대사 번역을 먼저 해야 글자 수를 추릴 수 있기 때문에 고유 코드 확인 후 가장 선행되어야 하는 작업이지요.

...\BIOHAZARD 2 PC\pl0\Rdt\ (레온)
...\BIOHAZARD 2 PC\pl1\Rdt\ (클레어)

폴더에 들어 있는 rdt 확장자 파일의 압축을 풀면 message 폴더에 대사가 들어 있습니다. 확장자 msg 파일을 고유 코드 테이블을 만들어 Translhextion 같은 프로그램을 이용하든 직접 프로그램을 작성하든 해서 대사를 추출하면 됩니다. 앞의 3바이트와 뒤의 4바이트는 제어 코드입니다. rtf 파일에 일본어 원문이 들어 있기는 한데 코드 변환용인지 일부 한자가 엉뚱하게 나오니 유의하세요. 아이템명이나 기타 지문은 실행 파일의 0x12E528~0x13E63F에 있습니다.

참고로 고유 코드 분석시 값이 애매한 부분이 있으면 초반부 대사에 의심되는 코드를 넣어서 맞게 나오는가 확인하는 방식으로 확인 못한 고유 코드를 찾는 방법도 있습니다.





3. 폰트 수정 및 재압축

대사 추출과 번역이 끝났으면 번역본에서 글자 수를 추려 폰트 파일을 한글로 수정합니다. 포토샵 등을 이용해 간격에 맞춰 수정하면 되겠죠.

수정 후 재압축 과정이 조금 까다로운데 잘 따라하세요.
http://z4.invisionfree.com/Resident_Evil_1_2_3/index.php?showtopic=687&st=0
이곳에 영문으로 된 설명도 있습니다.


adt의 압축을 풀면 아래와 같은 320x240 픽셀의 bmp 파일이 나옵니다. 원본 색상에 맞춰 한글로 폰트를 수정하고 오른쪽 그림처럼 분할해야 합니다. 참고로 저는 테스트 목적이기 때문에 일부만 한글로 수정했습니다.  




우측의 64 픽셀을 잘라내서 가로 256 픽셀로 만들고 세로 240 픽셀에 16 픽셀을 더해서 256x256 픽셀로 만듭니다. 이것을 그림으로 나타내면 아래와 같습니다.





앞서 설명했지만 adt 변환툴의 문제인지 하단 16 픽셀이 잘려 있는 공간을 만들어 준 건데요, 빈 부분은 tim 퍄일에서 가져오면 아래처럼 됩니다.





그리고 아까 잘라낸 64x240 부분을 또 잘라서 128x128 공간에 아래의 그림처럼 만들어 줍니다. (그냥 검은색 빈 공간이 아니니 유의하세요.)





이렇게 만든 두 개의 bmp 파일을 timviewer로 16bpp로 변환 후 tim 파일로 만듭니다. 변환된 두 tim 파일을 헥스 에디터로 열어서 앞 부분 20바이트를 잘라 내고 128x128 픽셀의 tim 파일의 헥스 데이터를 256x256 tim 파일 헥스 데이터에 끝에 붙여 넣고 저장합니다. 저장한 파일을 adt packer를 이용해 압축하면 끝입니다.





4. 대사 입력

이제 번역문을 msg 대사 파일에 입력하는 것만 남았습니다. 참고로 테스트용 폰트는 아래처럼 수정했습니다.

57 = あ = 쏘
58 = い = 지
59 = う = 마
5A = え = 임
5B = お = 마


オ    レ    は    人       間      だ 
AB   D0   70   EF9D   EFF7   8F

이런 원문을 '쏘지 마, 임마!' 로 고친다면 고유 코드에 맞춰서


쏘    지         마    ,     임    마    !
(あ) (い) (  ) (う) (,  ) (え) (お ) (!)
57    58    00   59   18   5A   5B   1A

이런 식으로 헥스값을 수정하면 되겠죠.
그리고 대사 앞에 있는 공백 수를 조절해서 대사를 화면 중앙에 맞추면 됩니다.



다른 대사도 이렇게 수정하면 됩니다만 ...이걸 전부 헥스 에디터로 수정한다면 말도 안 되는 일이겠고 Translhextion 처럼 테이블 기능이 있는 프로그램을 쓰거나 직접 고유 코드에 맞춘 입력툴을 작성해서 수정하면 됩니다.

그리고 이미지 자체에 텍스트가 들어간 경우는 adt나 tim 파일을 변환해 직접 그래픽을 수정하면 됩니다. 이러한 파일들도 작업하실 분이 직접 찾아보세요 :D

동영상 같은 경우는 mpeg1 파일이지만 붙박이 자막이라 opaque box로 자막 작업을  해야 할 것 같습니다.



-------------------------------------------------------------

이상 간략한(?) 바이오하자드 2 한글화 방법이었습다. 바이오하자드 3도 비슷한 방법으로 한글화 할 수 있으니 관심 있으신 분들은 시도해 보세요 :)






어때요, 참 쉽죠?



Posted by NSM53 Project