Class 1. ~한글화 강좌 - 초급 편~

 

 본 강좌는, 콘솔등의 에뮬레이터 게임롬의 한글화에 대해서 소개하고 있습니다. 기본적으로 하나의 롬파일로 구성되어있는 FC, MD, SFC,

GB, GBC, GBA등의 에뮬 게임들은 본 강좌에서 소개하는 방법으로 한글화가 가능합니다.

 단 각 롬파일의 특수한 구조 등으로 인하여 한글화가 힘든 롬파일들이 많이 존재하므로, 실제로 한글화 할 수 있는 게임은 비율상으로는 적습니다.

FC, GB, GBC 게임들은 주로 폰트가 부족하여 한글화가 힘든 경우가 많으며, MD의 경우는 특이한 롬 구조 때문에 한글화가 어려운 편입니다.

(실제로 한글화가 불가능한 롬파일은 거의 없지만, 한글화가 어려운 롬파일의 경우에는 엄청난 프로그래밍적 지식을 가지고 있어야만 간신히

한글화 할 수 있는 정도로 작업이 난해한 관계로 보통 작업을 하지 않습니다.) 그리고 GBA가 한글화하기 가장 쉬우며, 그렇기 때문에 가장 많은

아마추어 한글화 패치가 나온 기종이기도 합니다. GBA 롬파일 한글화에 대해서는 한글화 강좌의 처음 부분에 링크되어 있는 "새항아리"님의

한글화 강좌를 확인하시기 바랍니다.

 그리고 PC게임이나 PC98용 게임의 한글화 방법과는 많은 차이점이 있으니, 참고하시기 바랍니다.

 

 - 목 차 -

1. 한글화의 개념

2. 폰트를 찾아 수정하기

3. 고유번호표를 작성하기

4. 헥스 고치기

5. 그래픽을 수정하기

 

 

1. 한글화의 개념

  본 강좌에서 설명하는 "에뮬게임 한글화"의 기본적인 개념에 대해서 설명드리겠습니다. 거의 모든 게임들은 게임 상에 등장하는 그래픽이나 사운드

등을 여러 종류의 파일로 저장하여 게임 도중 불러오는 방식을 취하고 있습니다. 에뮬레이션 게임도 마찬가지로, 게임 도중에 각종 그래픽과 사운드 등을

불러오는데, 한글화에 관련된 "메시지"또한 "폰트"라는 형식으로 저장된 글자모양의 그림을 불러와서 화면에 표시해주는 것입니다. 일반적인 PC게임들은

이 폰트를 운영체제(윈도우즈 등)에서 사용하는 폰트를 직접 불러오거나, 폰트만 따로 하나의 파일로 만들어서 게임 폴더안에 넣어두는 경우가 많지만,

에뮬게임은 이 "폰트"가 그림파일의 형태로 롬파일 안에 저장되어 있습니다. 그래서 이 "폰트"를 한글로 바꿔주면 일단 게임내에서 한글이 출력됩니다.

그렇지만, 그것만으로는 한글화가 되지 않습니다. 글자는 한글로 바뀌었지만, 글자의 배열이 엉망이기 때문에 실제 외국어 대사(보통은 일본어나 영어)의

의미와 전혀 맞지 않을뿐더러 의미도 전혀 없는 외계어가 됩니다.  그래서 해당 폰트의 배열을 이해할 수 있도록 바꿔주어야 합니다. 이것이 바로

"헥스 고치기"입니다. 쉽게 말하자면 숫자와 영어를 타이핑하는 작업입니다만, 보통은 전용 툴을 많이 이용합니다. 이 작업에 대해서 설명하기 위해서는

"16진수"라는 것과 컴퓨터의 파일이 어떻게 구성되어 있는지에 대한 상당히 원론적인 지식을 알고 있어야 이해가 편합니다만... 뒷 부분에 가서 자세히

설명드리도록 하겠습니다.

 그 외에 흔히 말하는 "그래픽 한글화"가 있는데, 이것은 말 그대로 게임 내에서 등장하는 그래픽에 나오는 외국어를 우리나라 말로 바꿔주는 것입니다.

보통 RPG게임이나 SRPG게임 내에서 전투시에 커맨드라던가 캐릭터 이름 등을 그래픽으로 저장해놓은 경우가 있는데, 이런 때에는 그래픽을 수정해줘야

한글화가 가능합니다. 그 외에 게임 배경에 등장하는 간판 명이라던가, 기타등등 폰트를 불러오지 않고 화면에 표시되는 외국어를 한글로 바꾸려면,

그래픽 자체를 불러와서 한글로 수정해야 합니다. 그래픽 수정은 여러 가지 방법이 있는데, 저는 가장 기본적인 방법을 알려드리도록 하겠습니다.

 

 

2. 폰트를 찾아 수정하기

 일단 가장 처음에 할 작업은, 한글화 할 롬파일 안에서 폰트를 찾는 것입니다. 사용하는 툴은 일반적으로 YY-CHR [다운] 을 많이 사용합니다.

File로 들어가서 Open을 선택하여 롬파일을 불러옵니다. 본 강좌에서는 GBC용 "아르르의 모험"이라는 게임을 샘플로 사용하겠습니다.

 YY-CHR 실행화면입니다. 보시는 것과 같이, 좌측이 탐색창이고 우측이 편집창입니다. 위 아래 방향키나 PageUp, PageDown키를 누르면

좌측의 탐색창이 스크롤 됩니다. 탐색창에는 그래픽 뿐만 아니라 프로그래밍이나 압축된 이미지 등도 모두 표시되므로, 잘못 편집했을 경우는

게임이 실행이 안되거나 특정 부분에서 진행되지 않는 등의 치명적인 버그를 유발할 수 있으므로 폰트 부분만 잘 찾아서 편집하시기 바랍니다.

그리고 혹시 모를 불의의 사고를 대비하여 원본 파일은 꼭 안전한 장소에 백업을 해 두시기 바랍니다.

 일단 최초에 롬파일을 연 후에 PageUp, PageDown키를 눌러서 폰트를 찾습니다. 보통 FC, GB, GBC게임들 같은 경우는 그냥 스크롤하다 보면

거의 폰트를 찾을 수 있지만, MD나 SFC, GBA같은 기종의 롬파일은 폰트가 안 보이는 경우도 있으므로 좌측 하단의 "보기옵션"쪽의 설정을

변경해 가면서 찾아보시기 바랍니다. 게임에 따라 금방 찾을 수도 있지만, 찾는 데 몇 일이 걸릴 수도 있습니다.(혹은 아예 못 찾을수도...)

 좌측의 탐색창의 한 부분을 클릭하면 해당 부분이 확대되어 우측의 편집창에 표시됩니다.(클릭 안하면 좌측 끝 맨 위의 이미지를 표시합니다.

조그맣게 흰색 사각형으로 표시된 부분.) 표시된 이미지(폰트)를 지우고 새 폰트를 그려 넣습니다. 혹은 YY-CHR을 하나 더 띄워서 폰트 파일을

불러놓고 복사/붙혀넣기를 할 수도 있습니다. 직접 그리는 것보다는 빠르지만 의외로 번거롭습니다. 편집창 우측에 세로로 표시된 버튼들은

그리기 옵션으로 그다지 건드릴 일은 없습니다. 그냥 검은색 사각형으로 된 것만 눌러서 편집창에 드래그하면 한 번에 지울 수 있으니까 그럴 때만

사용하고, 보통때에는 맨 위에 있는 펜 모양의 버튼을 선택해서 폰트를 그립시다. 마우스 왼쪽 버튼을 누르면 점을 찍거나 줄을 긋거나 해서

폰트를 그릴 수 있고, 오른쪽 버튼을 누르면 편집창에 있는 색을 불러들일 수 있습니다.(한 번 해봅시다. 무슨 뜻인지 알 수 있을겁니다.)

 이렇게 해서 폰트를 수정하면 아래와 같이 됩니다.

 

 본 게임은 보시다시피 폰트가 적어서 "반조합"형식으로 한글화를 하고 있기 때문에 좌우로 분리되어 있는 폰트가 많이 있으므로 참고 바랍니다.

위와 같이 폰트를 수정하게 되면 본 게임에서는 아래와 같이 메시지가 변화합니다.

 

 좌측은 일본어판, 우측은 폰트만 한글로 바꾼 일본어판의 실행 화면입니다. 보시다시피 폰트를 한글로 바꾼 것만으로는 한글화가 되지 않습니다.

이 폰트의 배열을 우리나라 말로 알아들을 수 있도록 재 배열하는 작업이 바로 한글화 작업의 핵심입니다. 하지만 일단 이것으로 한글화 작업의

1단계인 폰트 확인 및 수정은 완료입니다.

 

 

3. 고유번호표를 작성하기.

 롬 안에서 폰트를 찾았고, 폰트를 수정해서 게임 내에서 한글이 제대로 출력되는 것을 확인했다면, 이제 고유번호표를 작성해야 합니다.

고유번호 란, 각 폰트 하나하나가 가지고 있는 "고유한 번호"입니다. 예를 들어, 우리나라 말로 "가"라는 글자의 고유번호가 0F라면,

게임 내에서 메시지를 표시하는 공간에 헥스로 0F를 입력하면 게임 내에서 "가"라는 글자가 표시되는 것입니다. 그렇기 때문에 모든 폰트의

고유번호를 알고 있어야 할 필요가 있습니다. 그래서 각 폰트에 해당하는 고유번호를 텍스트로 쳐서 적어넣어야 합니다. 이것이 바로

"고유번호 표"입니다. 일단은 고유번호를 찾는 것부터 시작하죠.

 고유번호를 찾을 때는 주로 "SearchR"(이하 서치알)를 사용합니다. [다운] 다른 툴을 이용해서 찾는 방법도 있는데, 저는 서치알 말고

다른 툴은 쓸 줄 몰라서 이것만 씁니다. 일단 프로그램을 실행시켜서 롬파일을 열어봅시다.

 

 

프로그램을 실행시킨 뒤에 1번을 누르면 보시는 것처럼 "Search Results" 라는 창이 뜹니다. 여기에서 2번에 표시된 "New Search"

클릭하면, "Search Option"창이 뜹니다. 여기에서 3번에 표시된 "Search String"란에 고유번호를 찾기 위한 알파벳을 타이핑하고,

OK버튼을 누르면 해당 고유번호의 나열이 뜨게 됩니다. 일단, 서치알에 대해서 지금까지 설명한 것은 프로그램의 사용법에 대한 것이므로

아직은 이해하기 힘들 것입니다. 그러면, 이제 저기에 무엇을 적어야 할 지 설명드리겠습니다.

 서치알은 게임 내에서 포함되어 있는 폰트의 고유번호를 "알파벳에 대입하여" 검색해주는 도구입니다. 그러므로, 영문판 롬파일에서는

손쉽게 고유번호를 찾을 수 있습니다. 하지만 우리가 한글화 하게 될 롬파일들은 주로 "일본어"판이 많습니다. 그러므로 여기서는 약간의

편법을 이용해서 고유번호를 찾아야 합니다. 아까의 YY-CHR 화면을 다시 봅시다.

 

 

 폰트의 첫 시작 부분이 あいうえお... 의 순서로 가고 있습니다. 이 폰트들의 배열을 알파벳에 대입해서 표로 만들어둡시다. 윈도우즈의

메모장같은 텍스트 입력 프로그램이나, 그냥 노트에다 적어도 좋습니다. 첫 번째 폰트를 A라고 정하고 표를 만들면

A = あ

B = い

C = う

   .

   .

   .

Z = は

 위와 같은 모양이 됩니다. 그러면 게임을 실행해서 저 A에서 Z사이에 있는 폰트들로만 구성된 대사의 부분을 찾아봅시다.

 

 보시는 것과 같이 밑줄 친 부분은 A에서 Z에 포함되는 폰트들로만 구성된 문자배열입니다. 이 정도 긴 문자열이라면 이 문자열로 찾은 고유번호는

거의 100% 정확하다고 생각할 수 있습니다.

 자, 이제 서치알을 실행시켜서 저 문자열에 해당하는 알파벳을 입력해 봅시다.

 

 

 밑줄친 부분의 TZUMJT라는 문자열이 들어간 고유번호의 배열은 단 한 건만 나왔습니다. 예상했던 대로, 단 한번에 고유번호를

찾았습니다. 자, 여기서 어드레스 부분을 클릭하고 동그라미를 쳐 놓은 View Result를 클릭하면 화면 위쪽 부분에 표시된 대로

해당 문자열이 위치한 주소로 이동하게 됩니다. 위의 이미지를 보면 と에 해당하는 알파벳T의 고유번호는 19, は에 해당하는 알파벳

Z의 고유번호는 1F... 등으로 고유번호를 알 수 있습니다. 이제 고유번호를 찾았으니, 이 고유번호를 기반으로 고유번호표를

작성하면 됩니다. 일단 윈도우즈의 보조프로그램에 들어있는 메모장 프로그램을 엽니다. 그리고 아래와 같이 고유번호를 적습니다.

03 = あ

04 = い

05 = う

   .

   .

   .

이런 식으로 고유번호를 적어나가면 됩니다. 중요한 것은, 이 고유번호표는 "16진수"로 적어야 한다는 점입니다.

 

『* 여기서 잠깐! 16진수와 헥스에 대해서..

 일단, 우리가 사용하는 숫자체계는 10진수라고 불리우고 있습니다. 숫자가 10이 되면 다음 자릿수로 넘어가는 숫자체계입니다. 하지만

16진수라는 것은, 숫자가 16이 넘어가면 다음 자릿수로 넘어가는 숫자의 체계를 의미합니다. 하지만 숫자는 0에서 9까지밖에 없으므로,

모자르는 숫자를 알파벳 A에서 F까지를 사용하기로 약속을 합니다. 그래서 16진수에서 9다음은 A, B, C, D, E, F가 되며, F 다음이 16진수의 10이 됩니다.

그리고 각각 10진수와 비교했을 때, A=10, B=11, C=12, D=13, E=14, F=15와 같게 됩니다.

헥스는 바로 이 16진수의 숫자체계를 의미하며, 컴퓨터의 모든 파일은 바로 이 16진수의 데이터의 모음으로 이루어져 있습니다. 그리고 이러한 16진수

자체를 "헥스"라고 합니다. 헥스는 모든 파일의 기본 단위이며, 16진수의 형태로 저장되어있다고 생각하면 이해하기 편하실겁니다.

 위의 그림에서 보다시피 09다음은 0A, 0B, 0C... 0F 다음이 10이 됩니다. 이것이 바로 16진수입니다. 이와 같이 고유번호를 적고, 모든 고유번호를

적은 후에는 저장을 할 때 확장자를 ~.TBL로 저장합니다. 이렇게 하면 테이블 표 즉, 고유번호표가 일단 완성됩니다. 하지만, 폰트 이외에도

각종 제어코드(대사 출력 중 줄바꿈, 폰트 색깔 변경, 캐릭터 얼굴 표시 등등...)들이 있으므로 게임 내의 대사들을 수정하면서 이러한 제어코드들이

어떤 것이 있는지 찾아내서 정리하는 작업또한 필요합니다. 하지만 일단 이것으로 고유번호표 작성 부분은 완료됩니다.

 

 

4. 헥스 고치기.

   일단 고유번호 표를 만들었으면, 게임 오프닝같이 금방 확인할 수 있는 부분의 대사를 고쳐서 고유번호가 맞는지 확인해야 합니다. 이 작업은

"헥스 에디터"종류는 무엇이든 사용할 수 있습니다만, 대사 입/출력 기능을 가지고 있는 "대사장(SPAD)"이라는 툴을 주로 사용합니다. [다운]

 대사장을 열어서 롬파일을 불러옵시다.

 파일을 연 뒤에 보시는 것과 같이 메뉴 중에 "대사"를 클릭하고 나오는 "Thingy 표 열기"를 선택해서, 앞에서 작성해 둔 고유번호 표를 불러옵니다.

혹시라도 테이블 표가 불러와지지 않을 경우는, 다른 이름으로 저장을 해서 인코딩 부분을 ANSI로 지정하고 저장하시기 바랍니다. 대사장은

유니코드를 지원하지 않습니다.

 그러면 보시는 것과 같이 "고유번호표 도구"라는 조그만 창이 뜨는데, 거기에서 "Thingy 보기 활성화" 옆에 체크박스에 체크를 해 주면, 우측에

해당 헥스에 대응되는 글자가 표시됩니다.(보라색 글씨) 좌측에 헥스가 표시된 곳을 클릭해서 16진수를 입력하는 것으로 해당 대사를 바꿀 수 있습니다.

일단은 대사가 있는 부분을 찾아야겠지요. 대사장의 찾기 기능을 이용해서, 대사가 있는 곳을 찾아봅시다.

 "Ctrl + F" 단축키를 누르면 보시는 것과 같이 "찾기" 창이 나옵니다. 보시는 것처럼 자료형식을 HEX로 바꿔주고, 헥스를 쳐 넣습니다. 미리 만들어둔

고유번호표를 보면서, 게임 내에서 등장하는 대사를 하나 골라서 그 대사에 대응하는 헥스를 입력합니다.(글자 하나하나 다 고유번호를 찾아야 되서

조금 귀찮습니다.) 헥스는 보통 4개에서 5개 정도만 입력하면 원하는 대사를 찾을 수 있습니다.(헥스는 숫자 하나로는 이루어지지 않습니다. 숫자든,

영문자든 2개씩 붙어다니기 때문에 8개에서 10개의 영문자와 숫자의 조합으로 이루어집니다.) 확인을 클릭하면 가장 일치하는 헥스가 위치한 주소 중

가장 가까운 곳으로 이동합니다. 그러면 우측의 보라색 글씨들의 문장을 보고, 찾고자 하는 대사가 맞는지 확인합니다. 찾고자 하는 대사가 맞다면

테스트를 위해 일단 헥스를 고쳐봅시다.

 보시는 것과 같이 주황색으로 표시된 부분이 헥스를 고친 부분입니다. 헥스를 고친 후에 저장을 하면 변경 사항이 저장됩니다. 이제 다시 게임을 열어서

해당 대사가 바뀌었는지 확인해 보면 됩니다. 이런 방식으로 미리 적어놓은 고유번호가 맞는지, 제어코드는 어떤 것들이 있는지 확인해 나갑시다.

제어코드들은 줄바꿈이나 대사종료 코드, 혹은 위에 "얼굴10"이라고 적혀있는 것처럼 대사장에 그래픽을 표현하거나 텍스트의 색깔을 바꾸는 것들도

있습니다. 폰트가 많으면 패치할 때는 편하지만, 처음에 고유번호 표 만들고 한자정리 하기가 힘들지요.(그래도 폰트가 많은 게 좋습니다.)

 이렇게 고유번호표를 완성한 후에는, 대사를 뽑아서 번역을 한 후에 앞에서 테스트 한 것과 마찬가지로 패치를 하면 됩니다. 일단은 헥스를 고치는

방법은 이것만 알면 다 할 수 있습니다.

 이번 예제에 사용한 게임은 샘플용이라서 그냥 헥스를 키보드로 타이핑해서 패치를 했지만, 이것은 아주 기본적인 방식일 뿐입니다. 보통 한글화 팀은

전용툴을 사용하거나, 나름대로의 방식으로 패치를 합니다. 중급강좌에서 대사 입/출력 기능과 함께  조금 더 편하게 패치하는 방법을 소개해 드리도록

하겠습니다.

 

 

5. 그래픽을 수정하기.

 솔직히 그래픽 수정같은 경우는 따로 설명할 필요가 없을 정도로 간단합니다. 인터넷의 아바타같은 도트작업을 해 보신 분이라면 수월하게 작업을

하실 수 있습니다. 도트 작업 경험이 없어도 수정하는 것 자체는 간단합니다. 이미지를 찾아서 폰트를 수정하는 요령과 똑같이 수정하면 되는 것입니다.

물론, 그래픽이기 때문에 손이 더 많이 가긴 합니다. 지금부터 간단한 그래픽 수정 예제를 보여드리겠습니다. 일단은 YY-CHR을 실행시킵니다.

 YY-CHR을 실행시켜서 화면을 스크롤 시키면서 수정해야 할 이미지를 찾았습니다. 하지만 순서가 뒤죽박죽이라서 알아보기 힘듭니다.

롬파일 내에서 빈 공간을 최소화하기 위해서 하나의 이미지를 조각조각 잘라서 따로따로 저장해 놓은 것입니다. 그래서 이렇게 뒤죽박죽으로

보이는 것입니다.

 

 원래 이미지는 보시는 것과 같습니다.(하단의 "라이센스" 부분은 제가 과거에 수정해 놓은 부분입니다.) 그러면, 이 이미지를 어떻게

수정해야 할까요? 여러 가지 방법이 있는데, 다른 분들은 주로 "수정"이나, "크리스탈 타일"이라는 프로그램을 사용한다고 합니다.

하지만 저는 그 프로그램들을 사용할 줄 모르므로, "타일 레이어 프로"라는 프로그램을 사용하겠습니다. [다운] 고전적인 타일에디터인

NAGA와 유사한 스타일의 툴이지만, 그래픽만 편집하기에는 편리한 기능이 있습니다. 일단, 타일 레이어 프로를 실행시켜 봅시다.

 창이 여러 개 뜨고 복잡해 보이지만, 우리가 주목해야 할 부분은 밑줄이 쳐진 "Tile Arranger"입니다. 타일을 어레인지 한다는군요. 이 녀석은 말하자면

퍼즐맞추기를 생각하면 됩니다. 좌측의 타일 창에서 타일을 한 조각씩 드래그 & 드롭으로 Tile Arranger 창으로 옮겨놓으면 그 위치에 타일이 고정됩니다.

타일 자체가 이동한 게 아니고, 타일은 그대로 있는데 각각의 조각들의 위치만 잠시 바꿔주는 것입니다. 일단 한 번 해 봅시다.

 보시는 것처럼 마치 퍼즐을 맞추듯이 타일 조각을 하나하나 옮겨서 우측의 Tile Arranger 창에 드래그 & 드롭 해주면 제대로 된 이미지를 볼 수 있습니다.

이거 옮기는 데만 무려 20분이 넘게 걸렸습니다. ㅠ_ㅜ 이 상태에서 그래픽을 수정하는데, 수정하는 방법은 타일 하나를 클릭하면 하단의 "Tile Editer"

클릭한 이미지가 확대되어 나타납니다. Tile Arranger창에서 이미지 수정되는 거 확인하시면서 조금씩 그래픽을 수정하시면 됩니다.

 나름대로의 요령이 필요하고 많은 시간을 필요로 하지만, 일단은 이런 방법이 있다는 것만 알아두세요. 그리고 그래픽 수정에 대해서 더 자세히

알고 싶으신 분은 한식구라는 사이트(현재는 네이버 카페)에 문의하시기 바랍니다. 저도 그래픽 수정에 대해서 그렇게 자세히는 몰라서요. ^^;;;

 

 

 일단, 초급강좌는 이 정도에서 마치고 중급 강좌에서 다시 만나도록 하겠습니다. 중급 강좌에서는 대사장을 이용한 대사 입/출력과 포인터의 활용 등에

대해서 알아보도록 하겠습니다. 강좌에 대한 문의사항이나 궁금한 점이 있으시면 자유게시판을 통해 문의하시기 바랍니다. 그럼 다음 시간에 만나요~ ^^