본문으로 건너뛰기

롬 해킹 기초

이 블로그의 한글패치(슈퍼 마리오 RPG, 제절초, 드래곤볼 Z 초오공전 돌격편, 드래곤볼 Z 초오공전 각성편, 고스트 트릭)를 만들면서 쓴 지식을 처음부터 풀어 쓴 가이드입니다. 16진수를 몰라도 그림으로 시작할 수 있고, 접어 둔 「더 깊이」를 펼치면 실제로 롬을 고칠 수 있는 데까지 들어갑니다.

이런 분께 맞습니다

  • 롬 해킹이 궁금하지만 "16진수", "뱅크", "어셈블리" 같은 말에서 막힌 사람
  • 아래 롬 분석 노트를 읽다가 개념을 처음부터 알고 싶어진 사람
  • 직접 번역 패치를 만들어 보고 싶은 사람

컴퓨터 구조를 미리 알 필요는 없습니다. 장마다 앞 장의 내용을 바탕으로 씁니다. 처음이라면 공통 1장 롬과 패치부터 차례로 읽어 주세요.

한 장은 네 부분으로 되어 있습니다

같은 장 안에서 읽는 깊이를 고를 수 있습니다. 처음에는 「쉽게」만 읽고 넘어가도 다음 장을 따라오는 데 문제가 없습니다.

한 장의 네 부분쉽게, 더 깊이, 실제 패치에서, 직접 해 보기 네 칸이 위에서 아래로 쌓여 있다. 쉽게는 늘 펼쳐져 있고 더 깊이는 접혀 있다.1 쉽게그림과 비유. 늘 펼쳐져 있습니다2 더 깊이접혀 있습니다. 공식·형식·예외까지3 실제 패치에서한글패치 롬 분석 노트의 실제 주소·바이트4 직접 해 보기krpatch 명령과 페이지 안 도구로 직접 해 봅니다
한 장을 이루는 네 부분. 위에서 아래로 갈수록 깊어집니다.
  • 쉽게 그림과 비유로 개념을 잡습니다. 늘 펼쳐져 있습니다.
  • 더 깊이 접혀 있습니다. 펼치면 공식, 데이터 형식, 예외 상황까지 다룹니다.
  • 실제 패치에서 한글패치를 만들며 실제로 만난 주소와 바이트로 같은 개념을 다시 봅니다.
  • 직접 해 보기 페이지 안의 계산기·실행기를 만져 보거나, kr-patch-toolkit의 krpatch 명령으로 따라 합니다.

세 갈래

가이드는 세 갈래로 나뉘고, 갈래마다 1장부터 셉니다. 처음이라면 공통 기초부터 읽고, 고칠 게임기의 갈래로 넘어가세요. 다른 갈래의 장을 가리킬 때는 「공통 3장」, 「DS 2장」처럼 갈래 이름을 붙입니다.

  • 6장여기서 시작

    공통 기초

    어느 게임기를 고치든 필요한 바탕입니다. 롬과 패치, 16진수와 엔디안, 압축, 게임 음악 반복을 다룹니다.

  • 9장

    슈퍼 패미콤

    65c816 CPU와 뱅크 주소, 어셈블리와 후킹, 타일 그림과 대사, 소리, 에뮬레이터로 확인하기, 롬 확장까지 다룹니다.

  • 8장

    닌텐도 DS

    ARM9·ARM7 두 CPU와 파일 시스템, ARM 어셈블리와 후킹, 그림과 대사, SDAT 음악, 에뮬레이터로 확인하기를 다룹니다.

롬 분석 노트

한글패치 5개를 만들며 롬에서 확인한 주소와 형식, 고친 코드, 확인 방법을 게임마다 적은 기록입니다. 노트의 각 절에서 그 개념을 설명하는 장으로 건너갈 수 있습니다.

슈퍼 패미콤

  • 노트한글패치 v1.3

    슈퍼 마리오 RPG

    이어지는 장: 공통 1·2·3장, 슈퍼 패미콤 1·2·3·4·5·6·7·8·9장

  • 노트한글패치 v1.4

    제절초

    이어지는 장: 공통 1·2·3·5·6장, 슈퍼 패미콤 2·3·4·5·6·7·8·9장

  • 노트한글패치 v1.4

    드래곤볼 Z 초오공전 돌격편

    이어지는 장: 공통 1·2·3·4장, 슈퍼 패미콤 2·3·4·5·6·8·9장

  • 노트한글패치 v1.4

    드래곤볼 Z 초오공전 각성편

    이어지는 장: 공통 1·2·3·4장, 슈퍼 패미콤 2·3·4·5·6·8·9장

닌텐도 DS

  • 노트한글패치 v1.4

    고스트 트릭

    이어지는 장: 공통 1·2·3·4·6장, 슈퍼 패미콤 5·6·8·9장, DS 1·2·3·4·5·6·7·8장

용어집

읽다가 모르는 말이 나오면 용어집에서 찾아보세요. 가이드에 나오는 용어 210개를 가나다순으로 모았고, 용어마다 그 말을 설명한 장으로 가는 링크가 있습니다.

준비물

  • 헥스 에디터: 파일을 바이트 단위로 보여 주는 프로그램입니다. 아무것이나 괜찮지만, Windows·macOS·Linux에서 모두 돌아가고 꾸준히 업데이트되는 ImHex를 추천합니다. macOS·Linux라면 터미널의 xxd로도 충분합니다.
  • kr-patch-toolkit: 이 패치들을 만들 때 쓴 명령 모음입니다. Python 3.15 이상에서 pip install git+https://github.com/perfectacle/kr-patch-toolkit@v0.4.0으로 설치합니다.
  • 에뮬레이터: 게임기마다 다른 에뮬레이터를 썼습니다.
  • 롬 파일: 이 가이드와 툴킷에는 롬이 들어 있지 않습니다. 직접 가진 카트리지에서 뽑은 롬으로 따라 해 주세요.