[한글화 상식]압축의 개념과 원리에 대해서[한글화 상식]압축의 개념과 원리에 대해서

Posted at 2012.02.01 16:01 | Posted in 이전 카테고리/한글화 강좌 시즌 2
안녕하세요, Hangeru Team.의 MG게이버입니다.~
오늘도 다시 한글화 강의 들어갑니다. ㅎㅎ


 강좌 개요

압축에 대해 간단히 알아봅니다.

 본 강좌

한글화를 하다보면 여러가지 어려움이 있는데 그중에서 가장 많은 분들이 어려움을 느끼시는 압축에 대해 알려드리고자 합니다.

압축.. 많이 들어봤고 실제로도 많이 사용하고 있지만 한글화에서의 압축은 뭔가 생소하실겁니다.

사실 기본적인 개념은 똑같고 범용 프로그램이 있는가 없는가의 차이밖에는 없습니다.. 

범용 프로그램이란 우리가 많이 사용하는 압축 프로그램, winrar, 반디집, 알집 등을 말하는데 이런 범용 프로그램들은 주로 파일을 압축해서 보내거나 보관할 때 사용합니다. 압축을 하게 되면 여러 가지 파일을 한 파일로 묶어서 쉽게 보낼 수 있고 용량도 줄일 수 있기 때문에 일석이조겠지요?

그렇다면 프로그램에서는 어떨까요?

역시 데이터를 보관하고 쉽게 관리하기 위해 사용합니다.
즉 프로그램에서도 데이터를 압축하면 여러개의 데이터를 묶을 수 있고 용량도 줄일 수 있기 때문에 일반인들이 사용하는 것과 거의 같은 목적으로 사용합니다.

다른 점은 무엇이 있을까요?

바로 사용 방식의 차이인데, 일반 파일 압축은 여러 종류의 파일(문서, 음악, 비디오, 실행 파일 등)을 효율적으로 압축할 수 있어야 하며 보관을 위해 압축률을 최대화하고, 분할 압축 등의 기능 지원과 호환성(여러가지 OS에서 풀 수 있도록)을 중요시합니다.
반면 프로그램에서는 빠른 구동을 위한 압축된 데이터를 빨리 풀 수 있어야하며, 여러 종류의 데이터 별로 최적화된 압축루틴을 사용합니다.
또한 라이센스 문제로 자체적으로 압축 루틴을 개발하는 경우도 있지요..

이런 차이 때문에 프로그램 내부의 압축 루틴은 범용 프로그램이 존재하지 않는 경우가 많고, 따로 압축 해제 툴을 개발하여야 합니다.(물론 zip, gz 등의 범용 압축 루틴을 사용하는 프로그램도 많습니다.)

압축의 원리

압축의 원리는 간단합니다.
중복되는 데이터를 방지하고 줄이는 것인데 쉽게 말해서 사과가 든 상자와 바나나가 든 상자, 귤이 든 상자들이 아래처럼 배열되어 있다고 해봅시다.
사과|사과|사과|사과|바나나|바나나|귤|사과|사과|바나나|바나나

이걸 문서로 작성한다고 할때 어떻게 하면 글자 수를 줄일 수 있을까요?

사과x4|바나나x2|귤x1|사과x2|바나나x2

이렇게 쓰면 글자수가 많이 줄어들겠죠?

압축은 위와 같은 원리입니다.
중복된 데이터를 줄이고, 간단한 기호로 작성하는 것이죠.
물론 압축을 하게 되면 사람이 한눈에 알아보기는 힘들어지지만, 컴퓨터가 압축 해제도 처리하기 때문에 상관 없겠지요?

 강좌를 마치며

이번 강좌에서는 압축에 대해 말해보았습니다.
나중에 고급강좌에서는 압축 루틴 등도 직접 살펴보고 해제 툴 제작 방법도 알려드리겠습니다.
궁금한 점이 있으시면 메일 주시기 바랍니다. 
저작자 표시 비영리 변경 금지
신고
  1. 나중에 한번 해봐야겠네요..

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[게임]역전재판 5 개발 소식![게임]역전재판 5 개발 소식!

Posted at 2012.01.29 20:30 | Posted in 이전 카테고리/게임 소개

개인적으로 한글화해본 타이틀.. 아직까지 정식 발매될 가능성은 거의 없다.


캡콤의 대표작 역전재판.. 지난 2007년 역전재판 4가 출시된 이후 신작 소식이 전혀 없다가 3DS 발매 이전에 "레이튼 교수 vs 역전재판" 이라는 외전 타이틀이 발매된다는 소식이 있었지요..


그 이후로 소식이 없다가 오늘 역재 10주년 특별법정에서 역전재판 5가 개발중이라고 역전재판 디렉터 타쿠미 슈우가 밝혔습니다.

아직 발매일, 발매 기종 조차 밝혀지지 않았지만 대부분 닌텐도 3DS로 출시될 것이라고 예상하고 있으며 타이틀 로고가 파란색인 것으로 보아 나루호도 류이치가 다시 주인공으로 복귀할 가능성이 높다고 보고 있습니다.

역전재판 4는 여러가지로 아쉬운 면이 많았고.. 특히 마지막에 겨땀(?) 때문에 상당히 당황했고, 역전재판 하면서 최초로 공략을 본 버전이기도 합니다...

사실 역전재판 4는 발매 예정이 없었으나, 팬들의 요청으로 인해 개발중이었던 타 게임의 스토리를 억지로 맞춰서 발매했다는 소리까지 있었습니다..


또한 역전재판 1,2,3을 HD화하여 iOS 어플리케이션으로 출시한다는 소식도 있습니다.

다만 역시 한글화 가능성은 없고.. 에피소드 별로 판매할 가능성이 높아서 별로 끌리지는 않습니다.

* 수정
역전재판 1+2+3 합쳐서 1200엔이라고 하네요.
생각보다 싸게 팔아서 구매해야겠습니다 ^^

이번 역전재판 5는 과연 어떤 스토리로 찾아올지.. 주인공들은 어떻게 변모했을지 기대해봅니다.

저작자 표시 비영리 변경 금지
신고
  1. 나루호도 그렇군요.. 좋은 소식이네요..

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[한글화 관련]게임 한글화에 대한 질문 또는 분석 요청 받습니다.[한글화 관련]게임 한글화에 대한 질문 또는 분석 요청 받습니다.

Posted at 2011.09.01 00:24 | Posted in 이전 카테고리/한글화 강좌 시즌 2
· 게임 한글화 지원 정책 소개

Hangeru Blog. 에서는 한글패치를 제작하기 원하시는 분들께 아래와 같은 지원 정책을 준비하였습니다.

질문은 강좌에 작성되어 있는 내용에 대한 질문 외에도 궁금하신 점을 질문하실 수 있습니다.

게임 분석은 한글패치를 제작하기 위해 게임 파일을 분석하는 작업이며 게임명과 기종, 한글화 진행 계획, 게임의 구동 파일을 메일로 보내주시면 분석 작업을 하고 있습니다.
단 분석에 실패하거나 한글화가 불가능할 때도 있으며 이런 경우에도 메일을 통해 답변하며, 한글화가 가능한 경우에는 게임 파일의 구조를 메일로 알려드리거나 필요한 정보를 드립니다.
단 게임 파일의 수정(인코딩 변경, 폰트 확장 등)은 해드리지 않으며 이 경우 안내만 해드립니다.

툴 제작은 게임 한글화 작업을 쉽게 할 수 있도록 전용 프로그램을 제작하는 작업이며 위에 나와 있는 게임 분석시에 필요한 자료들(구조를 알고 있다면 관련 정보도 첨부) 메일로 보내주시기 바랍니다.
제작 가능한 전용 프로그램은 대사 입출력툴 또는 패키징 해제툴, 그래픽 수정 툴입니다.
단 툴 제작 후 패치를 배포할 때에는 라이센스 문서 또는 배포 문구에 "Tools by Hangeru" 문구와 블로그 주소를 추가해주셔야 합니다.

* 주의사항

1. 문의/요청 내용을 토대로 문제가 될 수 있다고 판단되는 경우 답변을 거부할 수도 있습니다.

2. 게임에 따라 툴 제작이 불가능한 경우도 있습니다.

3. 시간 관계상 압축되어있는 게임은 공개된 알고리즘이 아니면 툴 제작 요청이 거부될 수 있습니다.
 


문의처 주소 : mingi2007@gmail.com

한글화 강좌를 보시려면 아래 링크를 클릭하십시오.
한글화 강좌 메인 페이지
저작자 표시 비영리 변경 금지
신고
  1. 비밀댓글입니다
  2. 비밀댓글입니다
  3. 비밀댓글입니다
  4. 비밀댓글입니다
  5. 비밀댓글입니다
  6. 비밀댓글입니다
  7. 비밀댓글입니다

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[게임 한글화 강좌]메인 페이지[게임 한글화 강좌]메인 페이지

Posted at 2011.09.01 00:09 | Posted in 이전 카테고리/한글화 강좌 시즌 1


게임 한글화 강좌는 시즌 2 연재중입니다.

강좌 소개 : 게임의 한글화가 어떤 작업인지 소개하며 실습을 통해 실제 게임 한글화의 과정을 알아봅니다.
게임 한글화에 도전해보고 싶으신 분들에게 추천하는 강좌입니다.

다만 이 강좌는 PC게임 한글화에는 적합하지 않으므로 PC 게임 한글화에 관한 내용은 다른 강좌를 읽어주시기 바랍니다.

시즌 2 강좌에서는 닌텐도DS 뿐만 아니라 다양한 기종의 한글화에 대해서도 안내해드리며
시즌 1 강좌도 보충/추가 업데이트 예정입니다.

중/고급 강좌도 같이 진행합니다.

업데이트 내역
2011/09/01 - 중급 강좌 1편 업데이트됨
2011/08/29 - 초급 강좌 5편 (Season 2) 업데이트됨


-------------------- 초급 강좌 -----------------
 

----------------- Season 1 -----------------

[2011/03/19] 제 1장 - 게임 한글화의 개요

[2011/03/20] 제 2장 - 게임 분석하기 1편 (이론편)

[2011/04/01] 제 3장 - 게임 분석하기 2편 (실습 1편)

[2011/04/09] 제 4장 - 게임 분석하기 3편 (실습 2편)

시즌 1 강좌는 이론을 중점으로 작성되었습니다.
기본적인 사항들에 대해 알고 계시다면 시즌 2 강좌를 참고하시기 바랍니다.
----------------- Season 2 
-----------------
 

제 5장 - 포인터의 개념 - 업데이트 되었습니다.


제 6장 - 제어코드 - 작성중입니다.


제 7장 - 고유번호와 폰트 확장 - 작성중입니다.


제 8장 - 게임의 그래픽과 팔레트 - 작성중입니다.


제 9장 - 데이터 압축 LZ77 - 작성중입니다.


시즌 2 강좌는 한글화 작업을 실제로 해보면서 배워가는 강좌입니다.
한글화 특성상 게임마다 구조가 다르기 때문에 모든 게임의 한글화에 대해 알 수 없겠지만
이를 해결하는 테크닉 등도 알려드립니다.


----------------- 중급 강좌 -----------------

제 1장 - 하드웨어 구조를 이해하자

제 2장 - GB(게임보이) 하드웨어 구조

중급 강좌는 게임기의 하드웨어 구조(Specifications,흔히 말하는 스펙) 에 대해 차근차근 알아보는 강좌입니다.
어떤 게임이든 한글화를 하기 전에 해당 게임기의 구조를 알면 좀더 쉽게 한글화가 가능합니다. 
 

----------------- 고급 강좌 -----------------

제 1장 - 폰트 확장에 도전해보자! 제 1편

고급 강좌는 게임 시스템 코드를 수정하여 게임을 한글화 하는 방법에 대해 알아봅니다.
폰트 확장/인터페이스 수정 등에 대해서도 알아봅시다.

폰트 확장편에서는 [포켓몬스터 적]의 폰트를 확장해봅니다.
처음 보시는 분들은 햇갈리실 수도 있지만 고유번호나 제어코드에 대해 이해하고 계시다면 어느순간 내용이 이해가 되실겁니다.
배포된 한글패치 버전에서는 더 많은 루틴이 삽입되었으나 강좌에서는 폰트 확장에 필요한 부분만 해볼 예정입니다.


----------------- 특별 강좌 -----------------

[2011/05/18] 특별 강좌 - NFTR 폰트에 대해 알아보기!

만든 패치를 배포해보자! Xdelta 사용하기

iOS 어플리케이션의 구조
저작자 표시 비영리 변경 금지
신고
  1. 게임만 한글화 하는군요. 게임을 안해 모르지만 게임 외의 한글화된 프로그램을 많이 접했는데 대단히 힘든 작업 같았어요. 해 보신 분이 잘 알겠지만 한글화 간단하지 않을 것 같아요.
    • 2011.05.06 18:52 신고 [Edit/Del]
      프로그램 한글화는 리소스로 이루어진 경우가 많아서 비교적 쉬운편이긴 하지만 한글화 자체가 상당히 근성이 필요한 작업 같습니다. ㅎㅎ
  2. 시리우스
    파이팅! 폰트확장강의를 보는날까지!
  3. 비밀댓글입니다
  4. 비밀댓글입니다
    • 2011.07.06 09:58 신고 [Edit/Del]
      대사 파일 보다는 우선 폰트 파일을 찾으셔야 할것 같습니다.
      게임 기종에 따라 다르지만 크리스탈 타일의 타일보기 메뉴에서 여러가지 방식의 타일을 선택해서 찾아보시기 바랍니다.
  5. 도와주세요
    폰트 찾으려고 프로야구팀을만들자2라는 게임을 열었는데 폴더가 FSI.CT하고 PACK 밖에 없네요 ; PACK에는 sound_date.sdat하고 ytkykApp.pac 밖에 없어요... 폰트를 못찾겠음;
    • 2011.07.29 01:32 신고 [Edit/Del]
      폰트가 arm9.bin이나 ytkykApp.pac 둘중에 한곳에 있겠군요.
      pac 파일은 이름만으로 볼때는 패키징 파일인것 같습니다.
      프로야구팀을만들자1은 한글화 된걸로 알고 있으므로 해당 롬파일을 참고하는것도 좋을 것 같습니다.
  6. GameCube
    제목만 봐도 참으로 알차보이는 강좌목록이로군요.
    제대로된 한글화강좌를 찾기가 쉽지가 않은데
    정말 감사합니다.
  7. GameCube
    여기서 물어보는게 될지 모르겠으나 일단 한번 질문을 올려봅니다.
    폰트확장을 하기위해선 코드를 수정해야하는데 그 코드는 어떤 프로그램을 사용해야 수정이 가능한건가요?
    081B126A 46C0 nop 를
    081B126A 46C0 lsl r1,r2,10h 로 바꾼다던지
    참고로 GBA기종입니다. 감사합니다.
    • 2011.08.28 09:48 신고 [Edit/Del]
      GBA 기종의 폰트 확장은 NO$GBA라는 프로그램으로 수정을 한 뒤 코드를 보고 Hex 에디터에서 수정해주면 됩니다.
      또는 NO$GBA에서 DUMP 기능을 사용하여 텍스트 형태로 덤프를 한 뒤 프로그램을 제작해서 이를 코드로 변환해주는 방법이 있습니다.
  8. 비밀댓글입니다
  9. 비밀댓글입니다
    • 2011.09.03 10:40 신고 [Edit/Del]
      예전에 저도 그쪽 카페 회원이었고 아이폰용 역전재판등을 진행하고 있었으나 당시 카페스탭이었던 드로아크의 행패와 운영진의 대처가 흐지부지해서 그 카페를 나온겁니다.^^
      아이폰 한글화 강좌도 작성할 예정입니다.
      기대해주십시오.
  10. 항상 쌩초보 강좌만 보면서
    좀 더 업그레이드 판은 없을까하고 생각했는데...
    딱 좋습니다 !!
    완전 고급판으로 그래픽 & 대사 압축 해제 및
    내장 폰트나 고유번호 체계(예를들면 한자를 쓰지 않는 게임에서 1바이트로만 폰트를 표현하던데 2바이트도 제어코드 피해서 폰트로 쓸 수 있게 만들기)나 2바이트인 포인터를 3바이트로 늘리기(폰트의 위치를 아예 옯겨서 수정하다보면 - 롬 확장 후 폰트 바로 뒷공간에 빈공간이 없어서 아예 롬이 확장된 곳으로 폰트를 옮겨서 바로 뒤에 빈공간에 생기게 하기 - 기존 폰트 시작 주소가 (YY-CHR로 봤을 경우) 2D595C입니다. 바이트 플립하면 5C 59 2D 근데 폰트 시작 포인터를 찾아보면 5C 59만 나오더군요. 이것을 만약에 301010으로 옮겼다고 칩시다. 그런데 2D1010에 대사가 한개 있어서 그 대사의 시작 포인터를 보면 10 10 인데 새로 옮긴 폰트 시작 포인터도 10 10 이던데 말이죠. 이걸 3바이트까지 늘려버리면 대사 시작 포인터는 10 10 2D가 되어 버리고 폰트 시작 포인터는 10 10 30 이 되어서 중복될 일이 없을텐데 말이죠...? 물론 같은 뱅크에 있지 않을 경우에는 문제가 없지만 같은 뱅크에 있는 경우에는 이런 문제가 생기는 것 같아서요 이런 게임이 존재하는 지는 모르겠지만) 를 바꾸기 등등은 너무 힘드시겠죠...?
  11. fnt
    혹시나 비트맵 폰트 구조 알고계신가요?

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[한글화 강좌]중급 1장 - 하드웨어 구조를 이해하자![한글화 강좌]중급 1장 - 하드웨어 구조를 이해하자!

Posted at 2011.09.01 00:07 | Posted in 이전 카테고리/한글화 강좌 시즌 2
한글화 강좌 중급편 제 1장 하드웨어 구조를 이해하자 편입니다!

사실 하드웨어 구조를 이해하는 것은 한글화 외에 시스템의 동작 원리 등을 이해하는 데에도 많은 도움이 됩니다.
중급 강좌는 주로 이런 쪽으로 강좌를 할 예정이며 우선 다양한 기기의 하드웨어 구조를 문서를 보면서 차근차근 알아보는 쪽으로 가겠습니다. ^^

게임기의 하드웨어는 사용자 입력 인식(버튼, 터치 등), 게임에서 필요한 연산 처리, 그래픽 출력, 외부 장치와의 통신(Wi-Fi 등), 사운드의 재생, 메모리 관리 등등.. 다양한 일을 수행합니다.

따라서 게임 제작시에는 게임기의 특성에 맞춰서 게임 개발을 하게 되는데, 하드웨어 구조를 이해하면 게임의 내부 루틴이나 구조를 쉽게 이해할 수 있습니다.

이런 하드웨어 구조의 전체적인 설명을 스펙(Specifications) 이라고 하며 컴퓨터를 살 때에도 흔히 스펙을 보고 컴퓨터를 사지요.(다만 컴퓨터의 스펙은 성능 차이만 있을 뿐 대부분 호환이 가능하며, 게임기에서의 스펙은 거의 게임기마다 고유합니다.)
 
그렇다면 이 스펙에는 무엇이 있는지 우선 몇가지 알아보겠습니다.
우선 가장 중요한 CPU에 대한 설명이 있습니다.
CPU에는 아키텍처(architecture)라고 하는 것이 있는데 이 아키텍처라는 것에는 명령어의 집합, 처리 방법, 번지 부여 방식 등이 포함됩니다.
아키텍처는 크게 PC에서 사용하는 X86또는 X64,  MIPS, ARM, Z80 등이 있습니다.
이 중에서 현재 가장 많이 사용되는 아키텍처는 x86과 ARM인데 x86은 위에서 말한 것 처럼 PC에서 사용되며 흔히 PC에서 32비트라고 부르는 것은 x86을 뜻합니다. 그리고 ARM은 휴대용 기기에서 주로 사용되는데 아이폰이나 갤럭시 등의 스마트폰에서도 arm 기반 아키텍처를 사용합니다.

아키텍처는 명령어의 집합을 포함하고 있으므로 아키텍처가 다르면 당연히 게임의 내부 코드 또한 달라집니다. 이런 게임의 내부 코드를 수정할때는 기계어를 알아야 수정이 가능한데, 이 기계어를 사람이 볼 수 있게 일종의 언어 코드로 바꾼 것이 바로 어셈블리 언어입니다.

물론 아키텍처가 같다고 해서 언어 구조가 완전히 같지는 않습니다.
이유는 CPU 아키텍처를 커스터마이즈하는 경우가 있어서, 특정 명령어를 없에기도 하고 자체적으로 추가하기도 하기 떄문입니다.
하지만 기본적인 구성은 거의 비슷합니다.

다음으로 스펙에는 I/O에 대한 구조가 포함됩니다.
I/O는 입출력(Input/Output)의 약자인데 데이터를 다른 하드웨어로 옮기거나 다른 하드웨어에서 정보를 받아올떄 쓰입니다.
사용자 입력도 이 I/O 시스템에 의해 처리되고 그래픽/사운드나 다른 출력도 마찬가지입니다.
I/O에 대한 구조에는 어떤 장치가 있는지, 장치와의 통신 방법은 무엇인지 에 대해서 적혀있습니다.

그 다음으로는 메모리 맵이라는 것이 있습니다.
메모리 맵은 메모리를 어떤 식으로 배치 해뒀는지를 기록해놓은 문서입니다.
포인터 강좌에서 보신 분들은 아시겠지만 GBA에서는 포인터를 찾을때 0x8000000 이라는 값을 더합니다.
이 정보도 메모리 맵에서 찾을 수 있는데 GBA의 메모리 맵에는 0x8000000부터 0xA000000 까지에는 카트리지 데이터가 위치한다고 적혀 있습니다.
이렇게 매모리 맵을 참고하면 데이터를 찾거나 코드 추가시에도 아주 유용합니다.

이상 중급 강좌 첫 편인 하드웨어 구조를 이해하자 편을 마칩니다.
이해가 안되시는 부분이 있으시면 문의 주시면 답변해드리겠습니다.
저작자 표시 비영리 변경 금지
신고

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[한글화 강좌] 제 5장 - 포인터의 개념[한글화 강좌] 제 5장 - 포인터의 개념

Posted at 2011.08.29 16:30 | Posted in 이전 카테고리/한글화 강좌 시즌 2
안녕하세요.
Hangeru 한글화 강좌 Season 2의 첫번째 강좌 게시물이군요 ^^;

이번 강좌에서는 포인터(pointer) 에 대해서 알아보겠습니다.








목차

포인터의 개념
게임 한글화에서의 포인터
포인터 찾기
    GBA(게임보이 어드밴스)
    PSP(플레이스테이션 포터블)
    GB(게임보이)

포인터의 개념

포인터는 사전적 의미로 무엇인가를 가리키는 것을 뜻하며 컴퓨터에서 사용하는 마우스 포인터, 프레젠테이션에서 사용하는 레이저 포인터도 화면의 무엇인가를 가리킬때 사용합니다.

이 포인터는 프로그램이나 게임에서도 같은 의미로 사용되는데 바로 데이터를 가리키는 주소값(번지)이라고 할 수 있습니다.
여기에서의 데이터는 대사, 그래픽, 프로그램 코드, 사운드 등 여러가지가 될 수 있겠지요.

포인터의 개념은 C언어 등에서도 필수적으로 배우는 부분이며 포인터에 대해 알면 게임 한글화에도 많은 도움이 됩니다.

그럼 포인터 값이 어떻게 저장되는가 알아보면...
컴퓨터나 게임기 등에서는 메모리나 저장장치에 주소를 부여하고 그 주소를 통해서 데이터를 불러옵니다.


위 그림을 보시면 안녕하세요 라는 대사는 0x100 번지에 저장되어 있습니다.(앞에 0x가 붙으면 16진수 라는 의미) 따라서 안녕하세요 라는 대사의 포인터 값은 0x100이 됩니다.(게임에 따라 포인터를 저장하는 방식이 다릅니다. 게임 별 포인터 구조는 하단에서 다룹니다.)

게임 한글화에서의 포인터

그럼 게임 한글화에서는 포인터가 어떻게 사용될까요?
게임 한글화를 도전해보신 분들이라면 대사 공간이 부족해서 대사 줄이기가 필요한 경우가 있으셨을 겁니다.
이는 포인터에 있는 번지의 저장 공간이 제한되어 있거나 뒤쪽에 데이터가 있어서 넘어가면 안되기 때문인데 이럴 때 포인터를 변경하면 쉽게 한글화를 할 수 있습니다.

100평짜리 창고가 있다고 예를 들어봅시다.
이 100평 짜리 창고에는 17인치 모니터가 50개, 21인치 모니터가 50개 들어있습니다.
그리고 이번에 17인치 모니터를 모두 빼내고 27인치 모니터를 50개 넣으려고 합니다.
하지만 이 창고에는 17인치 모니터가 50개 들어갈 공간밖에는 남아있지 않습니다.
이럴 때는 다른 창고에 모니터를 넣어야겠지요?

한글화에서도 마찬가지입니다.
히라가나/가타카나를 1바이트로 사용하는 게임에서  "ありがとう"라는 대사가 있다면 한글로 "고마워"라고 입력해야하는데 일본어는 총 5바이트이고 한글은 각각2바이트 총 6바이트가 되어 1바이트 공간이 부족하군요. 이럴 때에 대사 위치를 다른 곳으로 옮기고 포인터 값을 수정해주면 대사를 줄일 필요 없이 한글화가 가능하게 됩니다.

포인터 찾기

게임에서 실제로 대사, 폰트, 포인터를 찾는 건 구조가 게임마다 다르므로 강좌만 보고는 알 수 없는 부분입니다. 하지만 하드웨어 특성에 따라 게임기 별로 자주 사용되는 포인터 방식이 있습니다.
이번 강좌에서는 이 자주 사용되는 포인터 방식 몇가지를 소개해드리겠습니다.

GBA(게임보이 어드밴스)
게임보이 어드밴스는 포인터 찾기 쉬운 게임 기기 중 하나입니다.
게임보이 어드밴스에서는 카트리지에서 데이터를 불러올때 카트리지 주소값에 [0x8000000]을 더해서 불러옵니다.
즉 롬파일의 0x100 번지의 값을 불러올때 실제로는 0x8000100 의 값을 불러오는 것이지요.
따라서 GBA의 포인터 값에는 실제 주소값에 [0x8000000]이 더해져 있습니다.
그리고 데이터는 모두 바이트 플립되어 있으므로 [0x100]의 포인터 값을 찾으려면 [0x00010008] 으로 검색하면 됩니다.

그럼 실제 게임에서 찾아 보겠습니다.
예제는 포켓몬스터 에메랄드 일본어판 입니다.
(모든 GBA 게임이 아래와 같은 포인터 구조를 사용하는 것은 아니며 게임 내에서도 여러가지 포인터 구조를 사용하기도 합니다.)



대사 いや- おまたせ おまたせ!를 롬 파일을 열어 찾습니다.
 

대사의 주소값은 0x277095 이군요.
그렇다면 이 값에 0x8000000 을 더하고 바이트 플립시키면 포인터 값은 0x95702708 이 됩니다.

95702708으로 검색하면 포인터가 나옵니다.

대사 공간이 부족해서 다른 곳으로 옮기려면 새로운 공간에 대사를 입력하고..

새로운 주소값인 0x08915900을 바이트 플립해서 입력한 뒤..

게임을 시작하면 짜잔! 대사가 바뀐 것을 보실 수 있습니다.

PSP(플레이스테이션 포터블)
강좌 준비중입니다...

GB(게임보이)
강좌 준비중입니다...
저작자 표시 비영리 변경 금지
신고
  1. 일광면
    재가 경험한거로만 바이트수를 줄여주기위해서 처음 문자부분만 오프셋으로 잡아두고 FF가 아닐떄까지 그 문자의 대해서 다음출력될 문자의 값이 나올수있도록 빼주고거나 더해주는 방법이 있더군요. 이같은 경우는 바이너리파일에서 한 문자만 저장되어있기 때문에 디버깅으로 직접확인 해보지 않는이상 대사가 아닌걸로 판단하고 찾다가 포기한 경우도 있죠.자주 등장하는 대사 같은 경우 따로 루틴을 만들어서 사용하더군요..참 신기한 구조입니다.
  2. 푸른바다
    게임보이어드벤스는 800000이라는 주소값을 써서 하는데 그러면 다른 목적으로 하려면 그 주소값을 어떻게 찾아야할까요?

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[3DS]젤다의 전설 시간의 오카리나 3D 발매![3DS]젤다의 전설 시간의 오카리나 3D 발매!

Posted at 2011.06.16 12:36 | Posted in 이전 카테고리/기타 게임기


6월 16일, 일본에서 패미통 최초 만점 소프트웨어 젤다의 전설 시간의 오카리나의 리메이크 작품인 젤다의 전설 시간의 오카리나 3D가 발매되었습니다.
발매 전부터 엄청난 예약때문에 대부분의 일본 웹사이트에서는 품절된 상태입니다.
물론 닌텐도가 물량을 15만장씩 소량으로 공급하였기 때문에 그런 것도 있지만..
이전 대지의 기적 덤핑사건을 염두해두고 일부러 소량을 공급하고 있다고 보여집니다.

또한 기간한정(7월 31일까지)으로 젤다의 전설 시간의 오카리나 3D를 구매한 전원에게 젤다의 전설 시간의 오카리나의 OST 앨범도 증정하고 있습니다.
이 OST 시디를 받으시려면 개봉하여 들어있는 응모 번호를 클럽닌텐도에 입력해야 합니다.

유럽 등 북미에서도 각각 17일 19일 발매가 되며 역시 기간한정으로 OST 앨범을 증정합니다.
(다만 유럽/북미판도 예약매진때문에 일본판보다 더 구하기 힘들것으로 예상..)

저도 구매하였지만 아직 받아보려면 시간이 걸릴 것 같습니다.
첫 3DS 소프트웨어라서 많이 기대가 되며 받아보면 리뷰 올리겠습니다.
저작자 표시 비영리 변경 금지
신고

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[NDS 정보]한국닌텐도, 마리오&루이지 RPG 3 7월 21일 정식발매[NDS 정보]한국닌텐도, 마리오&루이지 RPG 3 7월 21일 정식발매

Posted at 2011.06.13 12:23 | Posted in 이전 카테고리/기타 게임기


한국닌텐도는 7월 21일, 마리오&루이지 RPG 3을 정식발매합니다.
연초에 상표 등록을 하여 정식발매 될 예정이었지만, 이렇게 빨리 발매가 될줄은 몰랐군요.

마리오&루이지 RPG 3은 현재까지 마리오&루이지 RPG 3편중 가장 명작으로 취급받는 타이틀입니다.


글 읽으시기 전에 손가락 한번 꼭 눌러주세요!


원래 마리오 & 루이지 RPG 3에는 서브 네임이 없지만 2편때와 마찬가지로 영문판(Mario & Luigi Bowser's Inside Story)의 이름을 따와 "쿠파 몸속 대모험" 이라고 서브 네임을 붙여주었네요.

2010년 7월, 마리오&루이지 RPG 2x2(마리오&루이지 RPG 시간의 파트너) 가 정식발매 되었습니다만, 일본판으로 클리어하였고 역대 시리즈중에서 가장 지루하다는 평가를 받고 있는 버전이라(저도 그렇게 느꼈습니다..) 플레이 하지 않고 접었었지요..
또한 1편은 재밌게 하였지만 게임보이 어드밴스 소프트웨어라 한국닌텐도에서는 정식발매 하지 않은 시리즈입니다.

이번 시리즈의 가장 큰 특징은 쿠파 모드와 마리오 & 루이지 모드로 플레이가 가능하다는 것인데 쿠파의 행동이 몸속에 있는 마리오와 루이지에게 영향을 주기도 하고 마리오와 루이지의 행동이 쿠파에게 영향을 주기도 합니다. (Press Release에도 나와있는 정보입니다.)

이런 식으로 쿠파가 물을 마시면 마리오 루이지가 헤엄을 쳐서 빠져나갈 수 있게 된다.


아직 발매 전이니 자세한 스토리나 시스템에 대해서는 설명하지 않도록 하겠으며, 발매되면 바로 구매해서 다시 플레이해볼 예정입니다.

발매 후 자세한 내용에 대해 포스팅하도록 하겠습니다~ 
저작자 표시 비영리 변경 금지
신고
  1. 참으로 좋은 소식이네요~!
    이런 대작들이 앞으로도 한글판으로 출시되었으면 하네요~
  2. 들렸다갑니다. 즐거운 하루되세요^^
  3. 마리오
    발매 되느날 이제 2주 밖에 안 남앗습니다

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[게임 한글화 특별 강좌]NFTR 폰트에 대해 알아보기! 제 1편[게임 한글화 특별 강좌]NFTR 폰트에 대해 알아보기! 제 1편

Posted at 2011.05.18 01:27 | Posted in 이전 카테고리/한글화 강좌 시즌 1
오랜만에 쓰는 한글화 강좌입니다~

NFTR 폰트에 대해 궁금해 하시는 분들이 많아서 특별 강좌를 작성합니다.


추천은 블로깅에 큰 도움이 됩니다!
손가락 한번 꽉 눌러주세요!


본편에서도 말씀드렸듯이 NFTR 폰트는 Nitro FonT Resource의 약자로 닌텐도 DS SDK(닌텐도 DS 게임 개발 키트)에서 제공하는 표준 폰트 방식입니다.

따라서 개발자가 닌텐도 DS SDK 표준을 따른다면 NFTR 폰트를 사용할 것이고 그렇지 않다면 다른 폰트를 사용하게 됩니다.

그렇다면 NFTR 폰트는 어떻게 이루어져 있는가 알아봅시다.

NFTR은 폰트 헤더, 파일 정보 헤더, 폰트 이미지, 폰트 너비, 폰트 맵(테이블) 총 5가지 영역으로 구성되어 있습니다.
(다만 같은 영역이 여러개 존재합니다.)
폰트 헤더 영역에는 각 영역의 위치 정보와 파일 크기, 헤더 크기, 파일 갯수등의 정보가 들어있습니다.

NFTR 폰트의 헤더 영역입니다.

NFTR 파일임을 알려주는 RTFN 매직스탬프(바이트 플립이므로 거꾸로하면 NFTR)와 코드가 들어있고 파일의 크기와 헤더 크기, 포함된 파일 갯수 등의 정보가 들어있습니다.

NFTR 폰트는 단순 파일이 아니라 여러가지 파일이 패키징 되어있는 형태입니다.
즉 파일 정보 헤더, 폰트 이미지, 폰트 너비, 폰트 테이블등이 모두 별개의 파일이지만 패키징 되어 하나처럼 보이는 것입니다.

또한 모든 값인 바이트 플립(Byte Flip)화 되어있는데 바이트 플립이란 데이터를 거꾸로 배열하는 것을 말합니다.
즉 0x00 0x30 0x25 0x10 이라는 값이 있다면 0x10 0x25 0x30 0x00 이렇게 바이트 단위로 잘라 거꾸로 저장하게 됩니다.
이유는 컴퓨터가 데이터를 읽을 때의 방식 때문이지만 자세히 설명하지는 않겠습니다.

다음은 파일 정보 헤더를 보겠습니다.

정보 파일은 FNIF(바이트 플립이므로 실제로는 FINF, File Information)로 시작하며, 각 데이터 영역의 위치와 기본적인 폰트 정보가 들어있습니다.
(0x1E-0x1F는 출력시 실제 폭과 색상에 관한 데이터 같으나 확실하지는 않습니다.)
폰트 이미지 데이터의 값이 0x34, 0x00 , 0x00, 0x00 이므로 거꾸로하면 0x00000034(0x34)가 됩니다.
단 실제 위치는 각 데이터 값에서 0x08 만큼을 빼주어야합니다.
0x34 - 0x08을 하면 0x2C가 되고 0x2C의 데이터를 보시면 PLGC라는 값이 보이는데 이것이 바로 이미지 데이터의 헤더입니다.

물어보신 분들이 정확히 어느 부분이 궁금하신지 몰라서 우선 1편은 여기에서 끊도록 하겠습니다.
이 부분까지 이해하셨다면 뒤부터는 이해하기 쉬운 편이므로 추가로 궁금하신 사항이 있으신 분들은 댓글 남겨주시기 바랍니다.

뒤 강좌는 이후 남기도록 하겠습니다.

저작자 표시 비영리 변경 금지
신고
  1. 시리우스
    오오~ 드디어 업데이트로군요

    잘 이해는 안가지만 아- 이런거구나 싶네요!


    으으.. 폰트확장도 이걸 알면 할 수 있을까나..
    좋은 정보입니다!
    • 2011.05.19 12:50 신고 [Edit/Del]
      이 부분만 이해하신다면 뒤는 쉽습니다 ^^
      폰트확장은 기종에 따라 다르기때문에 이 강좌만 봐서는 NFTR 폰트에 대한 것만 아실 수 있습니다.
  2. ds3nyi
    안녕하세요~ 예전에 풍운대농성 한글화패치제작을 부탁했던 미리내라고 합니다.. 늦게 인사드려서 죄송합니다~.
    nftr폰트에 대해서 자세히 모르고 한글화를 해왔었는데요.. 이 강좌를 통해서 좀더 좋은 퀄리티의 한글화를 할 수 있겠네요.
    이렇게 시간내어 좋은 강좌 올려주셔서 감사합니다~
  3. 일광면
    잘봤습니다.
  4. 앨리스한글화원함
    안녕하세요^^ 앨리스매드니스리턴즈라는 게임을 자력으로 한글화하려고 자료를 찾다가 들리게되었습니다! 분명히 메모장으로 자막을 열어서 한글로하면 게임상에서는 네모박스로 떠서 난감합니다; 아무래도 폰트가 필요한 것 같은데.. 대개 폰트파일은 어디에 있나요?ㅜㅜ 확장자명이 UPK인 파일을 프로그램으로 열어서 작업해야 되나요? 헥사코드로?
    • 2011.07.06 09:56 신고 [Edit/Del]
      폰트가 있는 위치는 게임에 따라 다릅니다.
      그리고 게임 자체가 한글 코드를 인식하지 않는다면 일본어 폰트를 한글로 바꿔서 작업해야하기 때문에 메모장으로 수정하는건 바람직한 방법이 아닙니다.
  5. 한글화초보
    더이상 한글화 강좌는 올라오지 않나요? 포인터에 대한 개념을 확실히 알고 싶은데..

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[PC]디아블로 3 관련 소식 오늘 공개![PC]디아블로 3 관련 소식 오늘 공개!

Posted at 2011.05.09 13:22 | Posted in 이전 카테고리/게임 소개

디아블로3의 패키지 사진

2000년 출시된 디아블로2의 후속작 디아블로3의 발매일과 베타테스터 정보가 5월 9일(현지 시간) 열리는 블리자드 2011년 1/4분기 회계 컨퍼런스를 통해 공개된다고 합니다.


추천은 블로깅에 큰 도움이 됩니다!
손가락 한번 꽉 눌러주세요!

 
디아블로3의 출시 소식은 스타크래프트2가 나오기 전부터 있었으나 계속 미뤄지고 지난 G스타 게임 행사를 통해 베타 버전이 공개된 적이 있습니다.

스타크래프트2 또한 2009년 4/4분기 회계 컨퍼런스를 통해 베타테스터 정보가 공개되어 일주일뒤 바로 베타테스트가 시작되었던점으로 보아 디아블로3도 이번달 내에 베타테스트가 시작될 거라고 예상하고 있습니다.

디아블로3은 디아블로2의 20년 뒤를 배경으로 하고 있습니다.

디아블로3의 클래스(직업) 선택 화면, 예전 베타때 공개됬던 화면으로 지금은 직업이 5개로 늘었다.



[블리자드 디아블로 3 공식 홈페이지로 이동]
저작자 표시 비영리 변경 금지
신고
  1. 시리우스
    으아아ㅏㅏ 결국 나오는건가 ㅜㅜ

    사람 애태우더니

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기