[게임 한글화 강좌]제 3장 - 게임 분석하기 2편[게임 한글화 강좌]제 3장 - 게임 분석하기 2편

Posted at 2011. 4. 1. 14:30 | Posted in 이전 카테고리/한글화 강좌 시즌 1


본 강좌의 무단 스크랩을 금지합니다.
문의사항은 댓글 또는 mingi2007@gmail.com 으로 메일 주십시오.


3장은 드디어 실전 강좌입니다.

우선 필요한 준비물은 아래와 같습니다.

한글화 프로그램 CrystalTile 2
테스트를 위한 게임기 또는 에뮬레이터
한글화 하려는 게임의 롬 파일
가장 중요한 끈기와 열정

이외에도 필요한 것은 많지만 분석시에는 기본적으로 위에 4가지가 필요합니다.

준비물을 준비하셨다면 일단 크리스탈 타일 2를 실행해봅시다.
 

크리스탈 타일 2 실행 화면


크리스탈 타일은 중국에서 중문화를 위해 만들어진 프로그램으로 롬 파일의 분석에 아주 유용합니다.
크리스탈 타일 2에서는 여러가지 표준 파일 타입 자동읽기, 에뮬레이터와의 연동기능 , ASM 뷰어, LZ77압축 등의 다양한 기능을 지원하고 있습니다.

우선 데이터를 여러가지 모드로 볼 수 있는데 헥스 모드와 그래픽 모드가 있습니다.

크리스탈 타일 2의 헥스 모드


헥스 모드는 주로 데이터를 분석할때 사용되며 게임 데이터를 16진수(헥스)와 인코딩으로 변환해서 보여줍니다. 인코딩은 기본 인코딩사용자 정의 테이블 파일(tbl)를 지원하기 때문에 고유번호만 알면 헥스 코드를 일일히 수정하지 않아도 텍스트를 입력하면서 수정할 수 있습니다.

크리스탈 타일 2의 그래픽 모드


그래픽 모드는 롬 파일 내에 저장된 폰트나 그래픽을 찾을때 사용하며 크리스탈 타일 이전에는 yy-chr이라는 프로그램도 사용되었지만 최근에는 크리스탈 타일로 쉽게 볼 수 있고 추출/수정도 간편합니다.
또한 팔레트는 pal 파일 형식을 지원하며 롬 파일내의 팔레트 데이터를 읽는 기능도 지원합니다.
또한 폰트 삽입 기능도 지원합니다.

그럼 이제 파일 -> 열기로 닌텐도 DS 게임의 롬파일을 열어봅시다.
이 강좌에서는 폰트와 대사를 바로 찾을 수 있는 보쿠관DS(항공관제관DS)를 열어보았습니다.

NDS 파일시스템 정보 창


크리스탈 타일2는 닌텐도 DS의 파일시스템을 인식하여 자동으로 정보를 보여줍니다.
위 이미지처럼 파일시스템 정보 창이 뜨면 어떤 파일이 들어있는지를 알 수 있습니다
게임에 따라 파일 하나에 뭉쳐있는 경우도 있고, 가상 DS롬이 하나 더 들어가있는 경우도 있습니다.
 
만약 파일시스템 정보 창이 뜨지 않는다면 CTRL+N을 누르거나 도구 -> NDS 파일시스템 정보로 띄울 수 있습니다. 도구 - > NDS 파일시스템 정보가 비활성화 되어 있다면 정상적인 닌텐도 DS롬이 아니므로 롬 파일이 올바른지 확인해보시기 바랍니다.

파일 시스템 정보 창이 떴다면 목록보기에서 디렉토리를 눌러봅시다.


파일시스템 정보 - 디렉토리 보기 모드



디렉토리를 누르면 위처럼 보기 모드가 트리 형식으로 바뀝니다.

FSI.CT안에는 게임 실행코드와 오버레이, 게임 정보, 게임 이름, 아이콘 등이 들어있습니다.
arm9.bin,arm7.bin은 게임의 실행파일이며 banner.bin에는 게임 이름과 아이콘이, fnt.bin에는 서브 파일 이름, fat.bin에는 서프 파일의 오프셋값이 저장되어 있습니다.
이 파일들은 잘못 건드리면 게임이 구동되지 않을 수도 있지만 보쿠관 DS의 대사는 arm9.bin 파일 안에 들어있으므로 대사 수정시 설명해드리겠습니다.
때때로 arm9.bin에 폰트가 들어있는 경우도 있으나 자세한 내용은 생략합니다.

data 에는 게임 이미지,폰트,대사,사운드 등의 데이터가 들어있습니다.
그럼 data를 더블 클릭해서 열어봅시다. 


data폴더를 더블클릭해서 열면 여러가지 파일이 나타납니다.
그런데 어라? 중간에 보시면 SH_LC_XX.NFTR이라고 써진 파일들이 보입니다.
NFTR은 Nitro FonT Resource 의 약자이며 닌텐도 SDK에서 제공하는 표준 폰트입니다.
NFTR 계열 폰트를 쓰지 않는 게임들도 상당수이지만 만약 롬 파일내에 NFTR이 보인다면 크리스탈 타일 2에서 자동으로 분석해주기때문에 쉽게 한글화가 가능합니다.

폰트를 쉽게 찾는 방법은
파일 이름에 FONT나 10,12등의 게임 폰트의 크기, 확장자에 fnt 등이 있는 경우 폰트로 의심해볼 필요가 있습니다.
그럼 이제 실제 폰트를 봐봅시다.

SH_LC_12.NFTR에서 오른쪽을 누르고 NFTR 폰트 정보 불러오기를 누릅시다.


폰트가 보인다!


정보 불러오기를 누르면 드디어 폰트가 짜잔!하고 나타납니다.
스크롤을 해서 아래로 내려보면 한자 폰트가 보입니다.

한자 폰트를 보면 亜唖娃阿 이런 식으로 되있는걸 보실 수 있습니다.
이 배열은 이론 편에서 설명드렸지만 S-JIS라는 일본 표준 인코딩입니다.

한자 폰트의 갯수를 보면 대략 2500개가 넘는 걸 아실 수 있습니다.(주로 사용하는 한글 완성형 폰트는 2350자입니다.)

그럼 바로 한글 폰트를 넣어봅시다.


첨부파일인 한글 매치 테이블을 받으시고 亜가 있는 곳에 포커스를 맞춰둡시다.


그 다음 편집 - > 폰트 설정으로 들어가서 글꼴을 돋움으로 맞추고 크기는 9로 정합시다.

폰트 설정하기, 다른 폰트도 사용할 수 있지만 이번에는 가독성을 위해 돋움을 사용한다.


확인을 누르고 편집에서 폰트 삽입을 누르고 위에서 받은 kor.tbl을 선택합니다.

한글 폰트가 입력되었다!


드디어 한글 폰트가 입력되었습니다!
CTRL + S나 파일->저장을 누르고 에뮬레이터로 게임을 실행해봅시다.
 


한자 폰트가 한글로 바뀐걸 보실 수 있습니다
씫 자가 짤린 것은 NFTR에는 폰트의 폭 데이터가 있기 때문에 이를 수정해야줘야 완벽하게 폰트가 출력됩니다.
자세한 것은 추후에 NFTR 폰트 구조에 관한 게시물에서 더 자세히 소개하겠습니다.

이번 실전 1편에서는 폰트를 찾고 한글로 바꾸는 과정을 알아보았습니다.
위에서 설명한것처럼 게임중에는 표준 폰트인 NFTR을 사용하지 않는 게임이 더 많으며 다양한 방식의 게임이 존재합니다.
간단한것부터 시도하다보면 점차 게임 분석을 빠르게 할 수 있고 노하우도 생기게 됩니다.

다음 실전 2편에서는 대사를 수정하는 것에 대해 알아보겠습니다.
읽어주셔서 감사합니다.

//