롬 해킹 기초모르는 용어는 용어집에서
공통 기초
어느 게임기를 고치든 필요한 바탕입니다. 롬과 패치, 16진수와 엔디안, 압축, 게임 음악 반복을 다룹니다.
어느 게임기를 고치든 먼저 알아야 할 것들입니다. 장마다 앞 장의 내용을 바탕으로 쓰므로 1장부터 차례로 읽어 주세요. 다 읽었다면 고칠 게임기의 갈래로 넘어갑니다.
차례
롬과 패치
롬은 카트리지 칩을 통째로 옮긴 파일이고, 패치는 바뀐 곳만 적은 파일입니다. IPS 형식을 바이트 단위로 읽어 봅니다.
비트·바이트·16진수
비트 여덟 개가 바이트 하나입니다. 2진수와 16진수, 음수와 체크섬까지 숫자를 읽는 법을 익힙니다.
엔디안
2바이트 숫자를 메모리에 놓을 때 어느 쪽 바이트를 먼저 적을까요? 롬에서 주소가 거꾸로 보이는 이유입니다.
압축 ① RLE·LZSS
RLE는 "같은 바이트를 몇 번", LZSS는 "몇 칸 앞에서 몇 바이트"로 데이터를 줄입니다. 플래그 바이트와 거리·길이를 실제 롬 바이트로 풀어 봅니다.
압축 ② 허프만
자주 나오는 글자에 짧은 비트를 주는 압축입니다. 트리를 만들어 부호를 얻고, 제절초 일본판 대본의 비트열을 한 비트씩 읽어 봅니다.
게임 음악 끊김 없이 반복하기
곡 하나만 나오게 해서 녹음하고, 반복 구간을 찾아 이음매를 다듬어 웹에서 끊김 없이 반복 재생합니다.
장 × 게임 노트
장에서 배운 개념을 한글패치가 실제로 어떻게 썼는지, 게임마다 노트의 해당 절로 바로 갑니다. 노트에 해당 절이 없는 칸에는 그 이유를 적었습니다.
| 장 | 슈퍼 마리오 RPG | 제절초 | 돌격편 | 각성편 | 고스트 트릭 |
|---|---|---|---|---|---|
| 1장 롬과 패치 | |||||
| 2장 비트·바이트·16진수 | |||||
| 3장 엔디안 | |||||
| 4장 압축 ① RLE·LZSS | 해당 절 없음 압축된 그림을 바꾸지 않았습니다. 새로 그린 글자는 압축하지 않은 그대로 들어갑니다. | 해당 절 없음 압축된 것은 그림이 아니라 일본판 대본이고, 형식은 허프만입니다(5장). | |||
| 5장 압축 ② 허프만 | 해당 절 없음 대사는 글자마다 1바이트나 2바이트 코드로 적혀 있습니다. | 해당 절 없음 대사는 글자마다 2바이트 코드로 적혀 있습니다. | 해당 절 없음 대사는 글자마다 2바이트 코드로 적혀 있습니다. | 해당 절 없음 허프만 압축을 쓰지 않습니다. 스크립트는 LZ11로 압축되어 있습니다(4장). | |
| 6장 게임 음악 끊김 없이 반복하기 | 해당 절 없음 노트에 음악을 다룬 절이 없습니다. 패치 페이지에서 나오는 배경 음악을 이 장의 방법으로 만들었습니다. | 해당 절 없음 노트에 음악을 다룬 절이 없습니다. 패치 페이지에서 나오는 배경 음악을 이 장의 방법으로 만들었습니다. | 해당 절 없음 노트에 음악을 다룬 절이 없습니다. 패치 페이지에서 나오는 배경 음악을 이 장의 방법으로 만들었습니다. |
다른 갈래
슈퍼 패미콤
65c816 CPU와 뱅크 주소, 어셈블리와 후킹, 타일 그림과 대사, 소리, 에뮬레이터로 확인하기, 롬 확장까지 다룹니다.
닌텐도 DS
ARM9·ARM7 두 CPU와 파일 시스템, ARM 어셈블리와 후킹, 그림과 대사, SDAT 음악, 에뮬레이터로 확인하기를 다룹니다.
롬 해킹 기초 첫 페이지에 롬 분석 노트 목록과 준비물이 있습니다.