본문 바로가기

Project/Zoom range patch

[Work] Zoom&Fov fix - 1. Making HEX Viewer.

How to make Zoom&Fov fix? (.rgn files)


마비노기의 시야 관련 설정 파일인 .rgn 파일들을 수정하기 위해선, HEX editor가 필요합니다.

HEX editor란?

헥사 편집기(Hexa editor) 또는 헥사 코드 편집기(Hexa code editor)는 기존의 일반 컴퓨터의 워드프로세서 및 편집기 소프트웨어에서 읽을 수 없는 이진 파일을 읽을 수 있는 프로그램을 통틀어서 말한다.

(출처 : 위키 백과)


HEX editor인 Hex Workshop을 이용해 이멘 마하의 rgn 파일을 열어본 스크린 샷.


일반 텍스트 에디터로 편집할 수 없는 바이너리 파일을 HEX editor를 이용해 편집할 수 있는데요,

이 rgn 파일에서 특정 값을 추가하거나 변경하면 마비노기의 시야 범위, 풍경 시야거리, 시야각 등 다양한 설정이 가능해집니다.


하지만 수 많은 rgn 파일을 일일이 수정한다는 것은 어려운 일입니다. (불가능 한 것은 아니지만)

때문에 특정 값을 설정해주면 world폴더 내의 모든 rgn 파일을 자동으로 수정해주는 툴을 제작하기로 했습니다.

사실은 작년 겨울에 만든 것이 있지만, 리팩토링할 필요가 있어서..

이번 포스팅에서 다룰 부분은 HEX editor는 아니고 HEX viewer입니다.


저는 개발 언어로 C++를 사용하고 있습니다.

먼저 바이너리를 저장할 링크드 리스트드 클래스 VBinary를 생성합니다.

일단은 HEX Viewer의 역할만 하면 되기에 필요한 변수와 함수만 작업한 모습입니다. 




그리고 main 함수입니다. 

테스트용으로 똑같은 이멘마하 rgn 파일을 선택했습니다.

이멘마하 rgn파일을 읽어와서 HEX editor처럼 출력해주는 간단한 프로그램입니다.



그럼 이제 컴파일을 하고, 실행해봅시다.

<결과>


보시다시피 Hex Workshop과 동일한 내용을 출력하고 있습니다.

이정도면 성공이죠?!


이제 다음 포스팅 부터는 본격적으로 수정 알고리즘에 필요한 것들을 준비해보도록 하겠습니다.


혹시나 이 포스팅을 보시는 개발자분이 계시다면

소스 코드에 대한 조언이나 잘못된 점을 지적해주시면 감사하겠습니다. 

질문도 받습니다.

'Project > Zoom range patch' 카테고리의 다른 글

[How to make] Zoom range patch 01. Overview  (2) 2014.02.15