PC98이 PC이고 그 당시에는 도스를 사용했으므로 도스 명령어를 알아두면 여러가지로 유용한 일이 많으므로 몇가지 소개하겠습니다.


1) DIR, COPY, DEL, CD, MD

도스에서 파일 관리할 때 많이 사용하는 명령어들입니다.


DIR은 현재 경로 또는 지정한 경로의 파일 목록을 보여주는 명령어입니다.

사용방법은 DIR [옵션] 경로


자주 쓰이는 옵션으로는 다음과 같은 것들이 있습니다.


/W : 한 줄에 4~5개의 파일 단위로 표시합니다.

/P : 파일명만 표시합니다. 파일 목록을 만들 때는 유용.

/A : 숨겨진 속성이나 시스템 속성의 파일까지도 표시하게 합니다.

/S : 하위 디렉토리까지 표시합니다.



COPY는 파일을 복사하는 명령으로 많이 쓰입니다.

사용방법은 COPY [옵션] 경로1 [옵션] 경로2


자주 쓰이는 옵션으로는 /B가 있는데 파일을 바이너리 방식으로 처리한다는 의미입니다.


COPY 명령은 +를 사용해서 여러개의 파일을 하나로 병합할 수도 있는데 그때 사용합니다.


특별한 사용방법으로 다음과 같은 것이 있습니다.


COPY CON 파일명

키보드로 입력한 내용을 파일로 복사해서 파일을 생성시켜 줍니다.

키보드 입력을 종료할 때는 ^Z(Ctrl+Z)를 누르고 엔터를 누르면 됩니다.


COPY 파일명 CON

파일 내용을 화면에 표시시켜 줍니다.



DEL은 파일을 지우는 기능입니다.


CD는 경로를 이동시켜 주는 기능으로 드라이브를 바꿀 때는 CD를 사용하지 않고 A: B: C: 등으로 드라이브명을 입력하면 됩니다.


MD는 디렉토리를 생성시켜 주는 기능입니다.



2) FORMAT

말 그대로 디스크를 포멧시켜주는 기능입니다. 여기서는 FDI, HDI 등의 디스크 이미지 파일을 포멧시키는 용도로 쓰이게 됩니다만...


사용방법은 FORMAT 드라이브명 [옵션]


자주 쓰이는 옵션에는 다음이 있습니다.

/E : 하드디스크를 포멧할 때 사용됩니다.

/S : 포멧 후에 시스템을 인스톨 시킵니다.



3) ECHO

ECHO는 메세지를 표시시키는 역할을 합니다.

일반적으로 명령 프롬프트에서 보다는 배치파일에서 많이 쓰입니다.


ECHO onECHO OFF를 통해서 배치파일 상에서 명령어 입력 내용의 출력 여부를 결정할 수 있습니다.


ECHO OFF라는 명령어를 사용한 것 자체를 표시하고 싶지 않을 경우는 @ECHO OFF 와 같이 쓸 수 있고 개별 명령어마다 @를 앞에 붙이면 해당 명령어 입력이 표시되지 않게 됩니다.



4) 리다이렉션

각종 명령어 실행시의 출력내용을 특정한 장치로 보내는 기능입니다.


자세한 설명은 생략하고 간단한 예를 들자면...


DIR > A.TXT

DIR의 출력 내용을 A.TXT로 보냅니다. 파일이 이미 존재할 경우 기존 파일에 출력 내용을 덮어 씁니다.


DIR >> A.TXT

DIR의 출력 내용을 A.TXT로 보내되 A.TXT가 이미 존재할 경우 원래 내용의 뒤에다 출력 내요을 추가시킵니다.



5) 자동실행 디스크 만들기


FDI의 경우는 보통 자동실행이 되도록 되어 있으므로 관계없지만 HDI의 경우는 자동적으로 게임이 실행되지 않을 수 있습니다.


그럴경우 해당 HDI의 루트 디렉토리에 AUTOEXEC.BAT를 작성해 주어야 합니다.


방법은 간단하게 COPY CON을 이용해서 프롬프트상에서 작성해 줄 수도 있지만, 외부에서 메모장 등으로 작성한 후 disk explorer 등의 프로그램을 이용해서 집어 넣어주면 됩니다.


간단한 예를 들어보지요. ELLE이란 게임의 autoexec.bat 파일 내용입니다.


[AUTOEXEC.BAT]

set prompt=$P$G

echo off

cls

type readme.txt

echo This is an adult game, you must have over 18 years to play it.

echo press a key to continue

pause

cd elle

call elle.bat

cd ..


중요한 것만 살펴보면 cd elle로 elle 디렉토리로 이동하고 elle.bat를 실행시킵니다.


이게 전부입니다.



그 밖에, 메모리 부족으로 실행이 안되는 경우가 존재할 수 있습니다.


그럴 경우를 위해서 CONFIG.SYS를 작성해 줍니다.


예를 들면 다음과 같습니다.


[CONFIG.SYS]

device=himem.sys

dos=high,umb


himem.sys는 XMS를 사용할 수 있게 해주는 드라이버입니다.

dos=high,umb는 도스가 차지하는 영역을 하이메모리로 올려서 기본 메모리를 확보하기 위한 명령입니다.


himem.sys의 경우는 HDI 형태로 된 자동실행이 되는 게임들의 HDI 파일을 열어보면 쉽게 구할 수 있으므로 그걸 가져다 쓰면 됩니다.



6) 그 밖에...

disk explorer 등으로 열려지 않는 경우가 있습니다.


주로 FDI 형태로 된 것들인데 이것들은 자체 프로텍트가 걸려 있으므로 에뮬상에서 실행한 후에 열 수도 있고, 그게 안될 경우는 포기하면 편합니다.


ELF사 게임의 경우는 인스톨 실행파일이 들어있는 디스크를 제외하면 에뮬상에서도 디스크 내용을 볼 수 없으며 인스톨 시에는 각 디스크마다 읽기전용 체크를 해주지 않으면 인스톨이 되지 않습니다.

(읽기전용 체크는 에뮬상에서 FDI 파일을 넣을 시에 읽기전용으로 열기를 체크해 주면 됩니다.)


하드디스크 인스톨을 지원하지 않는 게임의 경우는 어떤 방법으로도 디스크 내용을 볼 수 없는 경우가 많습니다. 이럴 경우는 역시 포기하면 편해집니다.



pc98 게임에 관한 정보를 찾아보고 싶다면 http://pc98library.tistory.com 이란 곳을 추천합니다.



그리고, 가끔가다 FDI나 HDI가 아닌 경우들이 있습니다. 이 경우는 vfic란 유틸리티를 사용해서 fdi로 변환해줄 수 있습니다. 이 유틸은 검색을 통해서 구할 수 있습니다.


또한 아예 디스크 이미지 형태가 아닌 경우도 존재합니다.


이 경우는 지금까지 언급한 내용들을 활용해서 HDI 이미지 파일을 생성한 후(시스템까지 넣어줘야 부팅이 됩니다.) disk explorer 등으로 집어넣어준 후에 autoexec.bat를 작성해 주면 됩니다.


'한글화 강좌' 카테고리의 다른 글

#04 대사파일 분석 예제  (0) 2012.09.26
#03 대사파일 분석  (0) 2012.09.17
#02 한글화를 위한 준비와 과정...  (0) 2012.09.11
#01 HDI 파일을 생성해보자.  (0) 2012.09.10
이번에는 대사파일 분석에 관한 몇 개의 예제를 들도록 하겠습니다.


우선, Moonchild사의 쾌락의 정의 스크립트를 분석해 보겠습니다.

쾌락의 정의 스크립트 파일은 확장자가 SC로 파일을 열어보면 다음과 같습니다.

위에서 보다시피 텍스트 파일로 되어 있습니다.


대사는 Shift-JIS 코드를 사용하고 있으며, 제어코드 +가 메세지 표시, "가 선택지 시작, '과 ( 등이 선택지 대사, >가 선택지 갯수, #과 $ 등이 해당 선택지를 눌렀을 경우 파일 내에서 이동할 오프셋 주소값을 나타낸다는 것을 알 수 있었습니다.

(즉, 포인터입니다.)


그리고, 포인터가 파일 중간에 위치해 있으므로 대사 길이를 변경할 때마다 오프셋 값들을 모두 바꿔줘야 하는 불편함이 있습니다.

(이건, 프로그램을 돌려서 재조정을 해주는 것이 효율적입니다.)



다음은, Lovegun사의 Ace of Spades라는 게임의 스크립트 파일입니다.


파일 확장자는 S로 열어보면 다음과 같습니다.

분석을 해본 결과...

처음에 나오는 2바이트는 헤더 크기(4바이트)를 제외한 데이터 전체 크기값을 나타냈고, 다음 2바이트는 전체 줄 수를 나타냈습니다.


그 다음부터 괴상한 문자들로 도배가 되어있는데, 이건 Shift-JIS 코드에 특정한 공식을 대입해서 변환시킨 형태입니다.

(Shift-JIS값 81 40이 21 21로, 81 41이 22 21로 바뀌거나 하는 식...)


각 대사는 00으로 구분하고 있으며 파일 끝부분은 B1 0D로 표시하고 있습니다.


저 코드 부분의 변환을 제외하곤 그리 한글화하기 어려운 편은 아닙니다.



다음은, Mugen에서 제작한 호니스위퍼라는 게임의 스크립트 파일입니다.


Mugen에서 내놓은 호니스위퍼 시리즈는 TGL사의 파랜드스토리 시리즈에서 사용한 시스템을 그대로 사용하고 있기 때문에 스크립트 구조도 동일합니다. 파일 확장자는 MSG로 열어보면 다음과 같습니다.

얼핏 보면 무척 복잡해 보이지만 사실은 간단한 구조입니다.


에디터 상에서 00값을 0D 0A로 일괄변환을 시켜주면 다음과 같이 됩니다.

텍스트 파일이네요?


대사는 Shift-JIS 코드로 되어있고, 대사 앞에 있는 ja, he 등은 게임상에서 각 캐릭터의 이름으로 대체되어 표시됩니다.

k는 해당 줄이 해당 대사창에서 마지막 줄이라는 의미입니다.


또한, 반각문자를 사용할 수 있고, 대사 길이 변경이 용이합니다.


대사를 수정한 후, 0D 0A를 다시 00으로 바꿔주면 되겠습니다.

(뭐, 그냥 헥스창 상태에서 수정해도 됩니다만...)



마지막으로, Parsley사의 RE-NO라는 게임의 스크립트 파일입니다.


파일 확장자는 TXB로 스크립트 파일을 모아놓은 아카이브 형태입니다. 열어보면 다음과 같습니다.

앞에 헤더가 있는데 512(200h)바이트로 되어 있습니다. 첫번째 바이트는 첫번째 텍스트 블록의 시작 오프셋을 나타냅니다. 그 다음 4바이트마다 다음 텍스트 블록의 시작 오프셋을 나타내는데 00 00 00 00이 아닌 마지막 오프셋 값은 파일 끝의 오프셋을 의미합니다.


IBM PC 계열은 숫자 데이터를 저장할 때에 역순으로 저장합니다. 때문에 00 00 02 00으로 저장되어야 할 값이00 02 00 00으로 저장이 됩니다.

각종 포인터 관련한 수정 시에 이 점을 주의할 필요가 있습니다.


위에서 바이트값을 표시할 때 쓰인 것은 16진수인데, 16진수는 2진수 표기를 축약시켜 놓았다고 보면 됩니다.

1바이트당 00h~FFh(0~255)의 값을 표현할 수 있습니다. 오프셋값의 16진수 표현은 윈도우 내장 계산기의 기능을 이용하면 편리합니다.


뭐, 이에 대한 설명은 이정도로 하고...


FLZ0이라는 부분이 있는데 이건 해당 블록의 데이터가 압축되어 있다는 의미입니다. 이 게임에서는 LZ계열 압축을 사용하고 있습니다.

그 다음 2바이트는 압축을 해제했을 시의 블록 크기를 의미하고, 다음 2바이트는 압축된 상태의 블록 크기를 의미합니다.


데이터가 압축되었기 때문에 중간중간 알아먹을 수 있는 것도 있지만 대부분은 알아먹을 수가 없습니다.


이것의 압축을 해제한 상태를 보기로 합시다.

압축을 풀면 다음과 같이 됩니다.

압축을 푸니까 대사가 Shift-JIS 형태로 되어있는 것을 알 수 있습니다.


각 텍스트 블록은 역시 헤더를 가지고 있으며, 헤더의 첫번째 2바이트는 전체 줄 수를 의미하고 그 다음부터 줄수*2만큼 각 줄의 시작 오프셋값이 나열되어 있습니다.(이 오프셋값은 각 텍스트 블록의 시작위치를 0으로 하는 상대좌표값입니다.)


각 줄의 대사는 00으로 끝나도록 되어 있습니다.


압축이 되어있는 것을 제외하면 그리 복잡한 구조는 아니라고 볼 수 있습니다.



이상으로 열거해 보았고... 이 게임에서 쓰인 압축에 대해 간단히 알아보면...


LZ계열 압축은 사전을 통한 압축입니다. 파일을 읽으면서 사전에 없는 데이터는 사전에 등록시키고 사전에 데이터가 있을 경우는 사전에 있는 데이터 중에서 가장 긴 형태를 찾아서 그 데이터의 오프셋과 길이 값으로 대치시켜서 압축을 시키는 방식입니다.


LZ계열 압축은 수 많은 변형이 있는데 이 게임에서 사용된 것은 포인터와 데이터의 구분에 플래그값을 사용하는 LZSS라는 방식입니다.



LZSS 방식은 데이터의 첫 바이트가 항상 00 또는 FF로 시작합니다. 왜냐하면 처음에는 사전이 비어서 사전으로부터의 참조를 할 수 없기 때문입니다.


00 또는 FF는 사전을 참조하는 포인터가 없이 데이터로만 구성되어 있음을 의미합니다.


플래그값은 1바이트로, 총 8비트로 되어있기 때문에 플래그값 다음에 올 수 있는건 포인터와 데이터를 합쳐서 8개 까지입니다.


데이터는 1바이트, 포인터는 2바이트로 구성되어 있습니다.


플래그값의 각 비트값을 체크하여 1일 경우 데이터, 0일 경우 포인터(또는 그 반대...)로 인식하여 데이터를 읽게 됩니다.


포인터의 구조를 분석하면 사전상에서의 오프셋 값을 표시하는 데 12비트, 복사해 올 길이를 표시하는 데 4비트를 사용하고 있습니다.


오프셋 값에 12비트를 사용하고 있으므로 총 0~4095까지의 값을 사용할 수 있어 사전의 최대 크기는 4096바이트가 됩니다.

길이값에 4비트를 사용하고 있으므로 총 15개까지 지정할 수 있을 것 같지만 압축 효율상 최소 3바이트 일때만 포인터 형태로 변환하므로 실제로는 3~18바이트를 의미합니다.


사전은 압축되지 않은 데이터가 발견될 때마다 데이터가 추가되며, 사전에 데이터가 가득 찼을 경우에는 사전의 시작 오프셋의 포인터가 앞으로 이동하게 됩니다. 그리고 시작 오프셋 이전의 데이터는 의미를 잃게 되며 새로 변경된 오프셋이 사전의 시작 오프셋인 0으로 설정됩니다.



뭐, 설명은 대충 이정도로 하겠습니다.



이것으로, 한글화 강좌는 여기서 마무리 짓도록 하겠습니다.


만약 범용툴을 사용해서 한글화를 할 경우라면 크리스탈 타일2를 써보세요. 대사장보다 사용하기 편리한 것 같습니다.(한식구 카페에 가면 구할 수 있습니다.)


'한글화 강좌' 카테고리의 다른 글

#05 자주 쓰이는 도스 명령어 일람  (0) 2012.10.04
#03 대사파일 분석  (0) 2012.09.17
#02 한글화를 위한 준비와 과정...  (0) 2012.09.11
#01 HDI 파일을 생성해보자.  (0) 2012.09.10

이번에는 대사파일 분석에 대해 다루겠습니다.


대사파일 분석에 있어서 다음의 사항들을 체크해야 합니다.



1) Shift-JIS 코드를 사용하는가?

일본게임에서는 일본어 표시를 위해서 Shift-JIS 코드를 사용합니다.


순수하게 Shift-JIS만 사용하는 경우도 있지만 일부만 Shift-JIS를 사용하는 경우가 많고, 알아보기 힘든 형태로 변형시켜 사용하는 경우도 있습니다.


순수한 Shift-JIS만 사용하는 경우는 대부분 포인터를 사용하고 있고, 오히려 Shift-JIS처럼 보이지 않는 경우가 포인터를 사용하지 않을 가능성이 높습니다.


일부만 Shift-JIS를 사용하는 경우는 자주 쓰이는 문자를 1바이트 코드로 대체시켜 사용하는 경우가 많습니다.


이 1바이트 코드는 1바이트 카타카나 영역을 사용하는 경우가 많고 보통 제어코드 영역을 피해서 사용되고 있습니다.



2) 텍스트 파일인가?

여기서 말하는 텍스트 파일이란 일반 문서 편집기로 편집해도 문제가 생기지 않는 경우를 말합니다.


이 경우는 대부분 포인터를 사용하지 않으며 제어코드도 사용되지 않거나 인간이 이해할 수 있는 영단어로 되어있는 경우가 많습니다.


대부분의 경우 수정하기 용이하지만 대사창에 한번에 표시 가능한 문자의 숫가 적을 경우는 줄을 나누거나 해야 하는데 그 작업이 용이하지 않아서 한글화에 어려움을 겪을 수도 있습니다.



3) 포인터가 사용되는가?

대사의 시작 위치나 특정 위치로의 분기를 위해 포인터가 사용되는 경우가 있습니다.


포인터는 보통 대사파일의 맨 앞이나 맨 끝에 위치하는 경우가 많지만, 대사파일 중간 중간에 제어코드 형태로 특정 주소로 분기하는 형태로 존재할 수도 있습니다.


포인터는 대사파일 시작위치를 0으로 하는 경우가 있을 수 있고 헤더를 제외한 실제 대사영역을 0으로 하는 경우가 존재할 수 있습니다.


대사 위치를 가리키는 포인터도 있지만 특정 대사블록으로의 분기를 위한 주소를 가질 수도 있습니다.



4) 압축이나 암호화가 되어있는가?

아카이브 파일 중에는 암호화가 되어있는 경우가 있습니다.


암호화를 위해서 비트연산(Shift, Rotate, Xor 등...)이 사용되는 경우가 많습니다.


대사파일에서는 Shift-JIS를 특정한 계산식으로 변형시킨 경우가 존재할 수 있습니다.


압축이 쓰일 수도 있는데 LZ 형식이나 RLE 형식의 압축이 흔히 쓰입니다.



5) 반각문자를 지원하는가?

일본 게임 상당수는 반각문자를 지원하지 않습니다.


왜냐하면 반각문자 영역을 제어코드로 사용하는 경우가 적지 않기 때문입니다.


그러나 일부 경우에서 자유롭게, 또는 제한적으로 반각문자를 사용할 수 있는 것들이 존재합니다.



6) 대사파일 크기에 제한은 없는가?

옛날 컴퓨터들은 사용 가능한 메모리가 넉넉치 않아서 대사파일이 일정 크기를 넘으면 오류가 나는 경우가 있습니다.


파일 하나당 크기 제한이 있을 수도 있지만 두개 파일을 동시에 로드하는 경우는 두개 파일을 합친 크기가 제한 크기를 넘을 경우 에러가 발생할 수도 있습니다.


이 메모리 크게 제한 때문에 파일을 수십, 수백개로 나누거나 많이 쓰이는 글자를 1바이트 코드로 대체하거나 하는 게임들이 많이 존재합니다.


물론, 윈도우의 경우는 메모리 제약을 받지 않으므로 관계 없는 사항입니다만...

(피아캐롯1 같은 경우도 pc98용 버젼은 대사파일 크기에 제약이 있었지만 윈도우용은 그딴거 없었습니다.)



7) 아카이브 형태로 되어있는가?

아카이브(=여러 파일들을 하나로 묶어놓은 형태) 형태인 경우가 있습니다.


모든 파일들을 아카이브로 묶어놓은 경우도 있지만 텍스트 파일만 따로 모아서 묶어놓은 형태도 존재합니다.


이 경우는 아카이브 안에 각 텍스트 블록에 대한 포인터가 존재하고 개별 블록별로 대사 포인터가 존재할 수 있으므로 대사 포인터가 상대주소가 될 가능성이 높습니다.


잘 알려진 아카이브 형식은 Grapholic이나 Susie 같은 프로그램으로 해제가 가능하며, 아카이브를 해제한 형태로 실행 가능한 경우도 적지 않습니다.(ELF사를 비롯한 몇몇 회사 게임들이 아카이브를 해제한 형태의 실행방식을 지원합니다.)



8) 대사길이 변경이 용이한가?

텍스트 파일 형태의 경우 대부분 용이한 편이고 텍스트 파일 형태가 아니더라도 포인터가 사용되지 않는 경우는 대사 길이 변경이 용이한 편이지만 그런 경우가 많지는 않습니다.


포인터가 사용되는 경우나 특정 주소로 분기하는 제어코드가 쓰이는 경우는 대사길이 변경이 쉽지 않습니다.




이상으로 알아보았는데 대사파일 분석을 위해서는 텍스트 에디터보다는 헥사 에디터를 주로 사용하게 됩니다.


왜냐하면 대부분의 대사 파일은 텍스트 파일 형태가 아니므로 대사파일 구조를 분석하려면 헥사 에디터로 대사와 제어코드를 분리하고 포인터 구조를 분석하는 과정을 거쳐야 하기 때문입니다.


특히, 위에서 언급한 특정 주소로 분기하는 제어코드 형태의 경우는 많은 시행착오를 통해서 패턴을 분석할 필요가 있습니다.

(실행파일을 역어셈블 해서 대사 처리 과정을 분석하는 것이 좋겠지만 그것도 녹록한 작업은 아니니...)


또한, 프로텍트가 걸려서 disk explorer 같은 프로그램으로 디스크 이미지 파일을 열 수 없는 경우가 있습니다.


이 경우는 파일 단위로 작업하기 곤란하므로 작업 난이도가 더 올라간다고 할 수 있습니다.



이상으로 마치겠고...


다음번에는 대사파일 분석과정의 실제 예를 들어서 설명하도록 하겠습니다.


한글화를 하기 위해서는 다음과 같은 준비가 필요합니다.

(여기서는 일본어 게임 한글화만 다루겠습니다.)



1.게임상에서 사용되는 폰트를 분석하여 적절하게 수정


에뮬레이터에서 돌아가는 게임들 상당수는 이 과정을 거쳐야 한글 표시가 가능합니다.


왜냐하면 한글 폰트를 기본적으로 지원하지 않기 때문에...


게임에 따라 폰트수 제한이 있어 모든 한글을 표시하기 어려운 경우도 있지만 PC98의 경우는 폰트수 제한이 없습니다.


게다가 에뮬레이터 상에서 BMP 형태의 폰트를 지원하기 때문에 수정도 용이합니다.



2.수정한 폰트의 Shift-JIS상 코드값과 한글코드값을 매칭시킨다.


흔히, 고유번호표 작성이나 폰트 테이블 작성이라고 합니다.


한글 코드를 게임상에서 기본적으로 지원하지 않기 때문에 일본어 코드와 한글 코드를 매칭시키는 작업이 필요합니다.


알맹이는 일본어 코드인데 표시는 한글 폰트가 표시되기 때문에 변환 작업이 필요한 것입니다.


PC98용 한글 폰트의 경우는 Shift-JIS 코드 889Fh부터 한글을 매칭시키는 형태와 8A40h부터 한글을 매칭시키는 형태의 2가지가 존재합니다.

(자세한 것은 http://ko.wikipedia.org/wiki/Shift_JIS 를 참고하세요.)


전자는, http://hyunxx.tistory.com 에 가면 폰트와 고유번호표를 구할 수 있습니다.


후자는, pc98용 드래곤나이트4 한글화나 하급생 한글화에 사용된 폰트입니다.


전자쪽이 좀 더 다양한 폰트를 사용할 수 있습니다.


후자쪽은 단지, 일본어 코드와 한글 코드간의 변환을 용이하게 하기 위한 형태라서 미흡한 면이 있습니다.



3.대사를 수정하기 위한 툴을 준비한다.


범용 툴로는 대사장이나 크리스탈 스크립트, 크리스탈 타일2 같은 것들이 있습니다.(한식구 카페에 가면 구할 수 있습니다.)


하지만, 범용 툴은 여러가지로 불편한 점들이 있기 때문에 작업 능률을 위해서는 전용 툴을 제작하는 것이 낫습니다.


전용 툴을 제작하려면 우선 대사 구조를 완벽히 분석해야 합니다.


게임에 따라 간단한 것들도 있지만 엄청 복잡한 것들도 있습니다.


이것에 대해서는 다음 기회에 따로 설명하도록 하겠습니다.



4.대사를 수정한다.


위에서 언급했듯이 전용툴을 만드는 게 낫습니다.


대사 수정용 프로그램 같은건 대단한 지식을 필요로 하지 않습니다.


제어코드와 대사를 분리해주고, 포인터가 있다면 포인터 값을 자동으로 계산해주고, 폰트 테이블에 따라 일본어 코드와 한글 코드를 상호 변환시켜주는 것이 하는 일의 전부입니다.


범용 툴을 쓰면 제어코드와 대사를 어느정도 구분할 수 있고, 일본어 코드와 한글 코드의 상호변환을 자동으로 해주지만, 포인터 값을 자동으로 갱신해 주지는 않습니다.


어쨌거나 대사를 수정해서 게임상에 반영시켜 주면 됩니다.


pc98의 경우는 파일 단위로 수정이 가능하기 때문에 disk explorer 같은 프로그램을 사용해서 파일 단위로 업데이트 시킬 수 있습니다.

(fdi 형태의 게임의 경우는 프로텍트가 걸려서 그게 불가능한 경우도 있습니다.)


그리고, 가능하다면 그래픽도 수정하면 좋겠습니다만 그래픽 데이터 분석은 그리 녹록한게 아닙니다.


기존에 툴이 존재한다면 그걸 활용하면 좋고 그렇지 않다면 포기하는게 편합니다.



5.게임상에서 테스트를 한다.


대사를 수정했으면 잘 돌아가는지 테스트를 해야 합니다.


이 과정에서 정말 할 일이 많아집니다.


왜냐하면 게임상에서는 각 줄당 표시가능한 문자수 제한이 있습니다. 이걸 넘어가면 이상하게 표시될 수 있습니다.


또, 번역할 때는 발견 못한 오타를 테스트를 하면서 발견할 수도 있습니다.


또한, 대사 표시창의 수평 한계와 수직 한계를 활용하면 대사 길이를 줄이는 것도 가능합니다.

(대사가 수평 한계를 벗어나 다음줄로 내려갈 경우 맨 앞에 공백이 있으면 보기에 안좋으므로 그 공백을 제거해주면 대사 길이를 줄일 수 있습니다.)



이상입니다.


다음번에는 대사 분석에 대해서 다루겠습니다.


'한글화 강좌' 카테고리의 다른 글

#05 자주 쓰이는 도스 명령어 일람  (0) 2012.10.04
#04 대사파일 분석 예제  (0) 2012.09.26
#03 대사파일 분석  (0) 2012.09.17
#01 HDI 파일을 생성해보자.  (0) 2012.09.10

앞으로 pc98용 게임 한글화에 대한 강좌를 연재할 생각입니다.


그 첫번쨰로...


pc98용 하드 디스크 이미지인 HDI 파일을 임의로 생성해서 초기화 시키는 방법에 대해 알아보겠습니다.




Anex86 에뮬레이터입니다. Neko Project도 이미지 생성 기능이 있지만 일단은 Anex86을 기준으로 설명하겠습니다.


빈 hdi를 생성하기 위해 HDD쪽의 이미지생성 버튼을 누릅니다.



디스크 정보 아래에 있는 콤보박스를 누르면 기본적으로 지원하는 hdi 사이즈가 나옵니다.


이 중에서 골라서 해도 되겠지만 임의의 크기로 만들기 위해 user를 선택합니다.

(Neko의 경우는 기본적으로 제공하는 사이즈가 더 다양하지만 임의의 사이즈로 설정하는 기능은 없는 것 같더군요.)



user를 선택하면 세부적으로 설정할 수 있게 활성화가 됩니다.


이 중에서 고쳐야 하는건 트랙 부분입니다. 나머지는 건드릴 필요가 없어요.

(기본 제공하는 사이즈를 기준으로 사이즈를 변경시키는 것이 편리합니다.)


트랙의 값을 변경해서 용량을 변경시킬 수 있습니다.



트랙 값을 220으로 설정해서 7.3M 정도로 크기를 설정했습니다.


파일 이름을 임의로 a.hdi로 입력합니다.(아무 이름이나 넣어도 무방합니다.)


이 상태에서 생성 버튼을 누르면 이미지 생성이 됩니다.


하지만, 이 상태에서는 쓸 수가 없으므로 포멧을 해줘야 합니다.


그러므로 닫기 버튼을 눌러 원래의 창으로 돌아옵니다.



pc98용 도스를 FDD에 삽입해 줍니다.(이곳 자료실에도 올라와 있습니다.)


... 버튼을 눌러서 도스가 들어있는 fdi 파일을 선택해서 삽입해 주면 됩니다.


준비가 되었으면 시작 버튼을 누릅니다.



부팅이 되고 날짜를 물어보는데 무시하고 엔터를 두번 누르면 프롬프트가 나옵니다.


그 상태에서 위와 같이 입력합니다.


format c: /e /s 는 C로 설정된 하드디스크를 포멧(/e)하면서 시스템(/s)까지 넣는다는 의미입니다.



포멧 화면이 나오는데 그냥 엔터를 몇번 쳐줍니다.



그럼, 정말 포멧을 할거냐고 물어보는데 역시 엔터를 쳐줍니다.


그럼, 진행바가 표시되면서 포멧이 됩니다.


그 후에 또 물어보는게 있는데 무시하고 계속 엔터를 쳐주면 포멧이 끝나게 됩니다.



포멧을 마치면 프롬프트 상태로 돌아오는데 이 상태에서는 아직 하드디스크를 인식할 수 없으므로 실행창을 닫고 재부팅을 해줘야 합니다.



초기화면으로 돌아와서 시작 버튼을 누릅니다.



날짜를 물어오는데 무시하고 엔터를 두번 눌러주면 프롬프트 상태가 됩니다.


그 상태에서 dir을 쳐서 디스크 상태를 확인해 봅니다.


이제, 사용가능한 상태가 되었음을 알 수 있습니다.




이 상태에서 도스 명령어를 써서 작업을 하거나 아니면 anxdiet나 disk explorer 같은 외부 프로그램을 써서 파일을 hdi 안에 넣거나 빼는 것이 가능합니다.


이걸 알아두면 fdi 형태로 된 게임들을 hdi로 만들 수 있습니다.



ps.위에 보면 하드디스크가 A로 설정된 것을 알 수 있습니다.


플로피로 부팅했을 때는 하드디스크가 C로 시작하지만 하드디스크로 부팅하면 A로 시작하므로 주의해야 합니다.


하드디스크로 부팅한 뒤에 플로피에 디스크를 넣으면 플로피 디스크 드라이브 값이 각각 B와 C가 됩니다.


만약, 하드디스크 2개를 넣은 채로 부팅을 하면 A와 B는 하드디스크가 되고 플로피는 C와 D가 됩니다.


'한글화 강좌' 카테고리의 다른 글

#05 자주 쓰이는 도스 명령어 일람  (0) 2012.10.04
#04 대사파일 분석 예제  (0) 2012.09.26
#03 대사파일 분석  (0) 2012.09.17
#02 한글화를 위한 준비와 과정...  (0) 2012.09.11

+ Recent posts