세이브파일 분석

저장 파일(.dat)을 열어 그 안의 기록을 읽어 줍니다. 일행의 능력치와 장비, 소지품, 골드, 플레이 시간까지 게임을 켜지 않고 확인할 수 있습니다. 파일은 브라우저 안에서만 읽으며 어디로도 올라가지 않습니다.

이벤트 플래그는 무엇인가

저장 파일이 들고 다니는 이벤트 플래그는 416칸짜리 비트맵입니다. 그중 409칸이 실제로 쓰이고, 한 칸은 맵 패치 하나에 그대로 대응합니다. 맵 패치는 "어느 맵의 어느 사각형을, 켜졌을 때의 타일과 꺼졌을 때의 타일 중 무엇으로 채울까"를 적어 둔 기록입니다. 게임은 맵에 들어설 때마다 그 맵의 패치를 표 순서대로 다시 적용하므로, 플래그가 켜져 있으면 문이 열린 모습으로, 꺼져 있으면 닫힌 모습으로 지형이 세워집니다. 409칸 전부를 조사한 결과는 이렇습니다.

  • 91개 맵이 패치를 가지고 있습니다. 나머지 맵은 이벤트로 지형이 바뀌지 않습니다.
  • 178칸이 1 × 2 크기입니다. 사람 키만 한 세로 사각형 하나 — 문입니다. 여기에는 대부분 같은 효과음이 붙어 있습니다.
  • 97칸은 1 × 1입니다. 스위치나 작은 장치처럼 타일 한 칸만 바뀝니다.
  • 126칸에는 효과음이 없습니다. 눈앞에서 바뀌는 것이 아니라, 다시 왔을 때 이미 바뀌어 있는 지형입니다.
  • 패치가 가장 많은 맵은 진마탑 11층 62칸, 진마탑 2층 18칸, 디아몬드 15칸, 아마조나 13칸, 마탑 7층 13칸입니다.
  • 새 게임을 시작한 저장 파일에도 이미 일곱 칸이 켜져 있습니다. 게임이 시작할 때 세워 두는 기본 지형입니다.

조우 설정은 무엇인가

조우 설정은 맵 500칸짜리 표입니다. 걸음마다 게임은 지금 맵의 칸을 읽어 -1이면 그 자리에서 포기하고, 0 이상이면 그 번호의 전투 기록으로 조우를 준비합니다. 동봉된 저장 파일 82개를 전부 조사해 보면 이 표에는 0과 -1 두 값만 나타납니다. 사실상 맵별 조우 스위치인 셈이고, 실제로 이벤트 스크립트에도 이 칸을 0이나 -1로 쓰는 명령 하나가 있습니다.

  • 새 게임에서는 약 200개 맵이 켜져 있고 300개가 꺼져 있습니다. 마을과 실내, 세계지도가 꺼진 쪽입니다.
  • 본편을 끝까지 진행하는 동안 값이 바뀌는 맵은 일곱 곳뿐입니다 — 오행산 엄지봉, 오행산 약지봉, 폭포 뒤편 동굴, 폐광 두 곳, 격투장 내부던전, 켄타우로스의 방. 모두 꺼져 있다가 켜집니다.
  • 즉 이 표는 진행에 따라 크게 출렁이지 않습니다. 대부분은 처음 정해진 대로 유지되고, 이야기가 특정 장소를 "이제 위험한 곳"으로 바꿀 때만 움직입니다.
  • 스위치가 켜져 있어도 조우가 바로 일어나지는 않습니다. 마지막 전투 이후 15~53걸음을 넘겨야 하고, 조우를 막는 장비를 찬 일행이 있으면 건너뜁니다.

저장 파일 구조

저장 파일은 15,232바이트입니다. 앞쪽은 자리와 크기가 고정된 구간이 정해진 순서로 이어지고, 뒤쪽에 길이가 앞에 붙은 두 덩어리가 따라옵니다. 게임이 저장할 때 쓰는 순서가 곧 파일의 지도라, 아래 표는 그 순서를 그대로 적은 것입니다.

자리크기내용여기서 읽나
0x000048B미리보기 헤더 — 슬롯 번호, 맵 이름, 선두 레벨, 플레이 시간읽음
0x00303,008B일행 기록 16개 × 188B — 레벨·HP·MP·능력치·장비·스킬·상태일부
0x0bf064B맵 번호, 골드, 일행 수, 10칸 배치, 선두 번호읽음
0x0c30200B필드에 세운 캐릭터 오브젝트 배치 스냅샷안 읽음
0x0cf81,440B아이템 360종의 수량읽음
0x129816B선두의 타일 좌표·층·바라보는 방향읽음
0x12a82,000B맵 500칸의 조우 설정 덮어쓰기개수만
0x1a7840B맵 스위치 비트와 게이트 기록 4개일부
0x1aa0348BCIM 고정 행 16개와 런타임·동반 블록안 읽음
0x1bfc7,388BCIM 블롭 — 이벤트 플래그, 오브젝트 플래그, 도시 기록, 이벤트 행일부
0x38d8680B이벤트 카운터 블롭안 읽음

일행 기록 하나는 188바이트, 47개의 값입니다. 이 페이지는 그중 레벨과 HP·MP, 상태창의 능력치 일곱 개, 장비 다섯 칸, 스킬 열 칸을 읽습니다. 나머지는 전투 중에만 쓰는 상태 비트와 순서 게이지, 그리고 아직 이름이 확실하지 않은 두 번째 능력치 묶음입니다. 전체로 보면 파일의 약 17%를 읽는 셈입니다.

뒤쪽 덩어리인 CIM 블롭이 모험의 진행도입니다. 여섯 워드짜리 머리말 뒤에 이벤트 플래그 비트맵 416칸, 오브젝트·효과 플래그, 도시 기록, 이벤트 행이 차례로 들어가고 전체가 하나의 키로 XOR되어 있습니다. 그 키는 머리말 마지막 워드에 남아 있어, 위 진행 기록은 이것을 풀어서 보여 준 것입니다. 아직 이름을 붙이지 못한 자리도 남아 있습니다 — 필드 배치 스냅샷, CIM 고정 행, 이벤트 카운터는 값만 있고 뜻이 정리되지 않았습니다.

자리와 순서는 추측이 아니라 게임 코어가 저장 파일을 쓰는 코드에서 가져왔고, 동봉된 저장 파일 82개로 확인했습니다.