# 크론도의 배신자 한글패치

《크론도의 배신자》(Betrayal at Krondor) DOS CD판을 위한 비공식 한글패치입니다.

- 한글패치 버전: `0.1.0`
- 패처 버전: `0.1.3`
- 지원 게임판: 영문 DOS CD판 `Version 1.02 CD`
- 한글화: `kingdom8`

패처가 게임 파일의 버전을 확인한 뒤 지원되는 원본에만 한글패치를 적용합니다.
GOG판, Steam판, 원본 CD 이미지, 설치된 DOS판을 지원합니다.

## 게임 편의 기능

월드 화면에서는 방향키와 함께 `W`, `A`, `S`, `D`로 이동할 수 있습니다.

## 준비물

- Python 3.10 이상
- xdelta3
- 지원되는 영문판 게임

Python은 <https://www.python.org/downloads/>에서 설치할 수 있습니다.
Windows 설치 화면에서는 `Add python.exe to PATH`를 선택하십시오.

xdelta3는 <https://github.com/jmacd/xdelta/releases/latest>에서 운영체제에 맞는 파일을
받을 수 있습니다. Windows에서는 압축을 푼 `xdelta3.exe`를 패처 파일과 같은 폴더에
넣으십시오. macOS와 Linux에서는 `xdelta3`를 같은 폴더에 넣거나 `PATH`에 설치하십시오.

## 내려받은 ZIP 확인

배포 페이지에 적힌 SHA-256 확인값과 내려받은 ZIP의 값이 같으면 정상 파일입니다.

Windows PowerShell:

```powershell
Get-FileHash .\ko_krondo_0.1.0.zip -Algorithm SHA256
```

macOS·Linux:

```sh
shasum -a 256 ko_krondo_0.1.0.zip
```

압축을 푼 뒤에는 `ko_checksums.sha256`에서 패처 구성 파일별 SHA-256도 확인할 수 있습니다.

## 빠른 설치: GOG판·Steam판

1. 패처 ZIP의 파일을 아래 게임 설치 폴더에 바로 풉니다.
   - GOG 기본 경로: `C:\GOG Games\Betrayal at Krondor`
   - Steam 기본 경로: `C:\Program Files (x86)\Steam\steamapps\common\Betrayal Collection\Betrayal at Krondor`
   - 설치 위치를 바꿨다면 실제 게임 폴더를 사용하십시오.
2. Windows는 같은 폴더에 `xdelta3.exe`를 넣습니다. macOS·Linux는 `xdelta3`를
   같은 폴더에 두거나 `PATH`에 설치합니다.
3. `ko_patch.cmd`를 실행합니다.
4. `2. GOG/Steam판에 바로 한글패치`를 선택합니다.
5. 작업 완료 후 평소와 같이 GOG 또는 Steam에서 게임을 실행합니다.

영문판으로 되돌리려면 패처를 다시 실행해 `5. 영문판으로 복원`을 선택하십시오.
Steam에서 게임 파일 무결성 검사를 하면 핵심 파일이 영문 원본으로 돌아갈 수 있습니다.
그때는 같은 폴더에서 패처의 2번 메뉴를 다시 실행하면 됩니다.

- GOG: <https://www.gog.com/en/game/betrayal_at_krondor>
- Steam: <https://store.steampowered.com/app/559640/Betrayal_Collection/>

## 실행 방법

- Windows: `ko_patch.cmd`
- macOS·Linux: 터미널에서 `sh ko_patch.sh`
- 직접 실행: `python3 ko_patcher.py`

패처 파일은 작업할 게임 폴더 또는 CD 이미지가 있는 폴더에 모두 함께 넣어야 합니다.
패처는 실행된 현재 폴더만 확인하며 컴퓨터의 다른 폴더나 드라이브를 자동 검색하지 않습니다.

## 메뉴 안내

### 1. CD 이미지에서 DOS 실기용 한글판 만들기

CUE/BIN, ISO 또는 압축을 푼 CD 데이터에서 지원되는 영문판을 확인하고,
새 폴더에 DOS용 한글판을 만듭니다. 원본 CD 이미지에는 손대지 않습니다.
확인된 미국 CD 5종의 `MODE1/2352`와 `MODE2/2352` 데이터 트랙을 모두 지원합니다.

출력 폴더에는 CD 오디오가 포함되지 않습니다. DOS 실기에서 배경음악을 들으려면
원본 CD 또는 별도로 구성한 CD 오디오 환경이 필요합니다.

### 2. GOG/Steam판에 바로 한글패치

현재 GOG 또는 Steam 설치 폴더의 게임 파일을 한글판으로 바꿉니다.
스토어 런처, DOSBox 설정, CD 데이터와 음악 파일은 그대로 유지합니다.

Steam판은 `Betrayal Collection` 폴더가 아니라 그 안의 `Betrayal at Krondor` 폴더에서
패처를 실행해야 합니다.

### 3. GOG/Steam판에서 DOS 실기용 한글판 추출

GOG 또는 Steam 설치본은 변경하지 않고 새 폴더에 DOS 실행용 한글판을 만듭니다.
스토어 런처와 CD 오디오는 출력 폴더에 포함되지 않습니다.

### 4. 현재 DOS 게임 폴더에 한글패치

영문 DOS CD판이 설치된 현재 폴더에 한글패치를 적용합니다.

### 5. 영문판으로 복원

한글패치를 적용할 때 보관한 영문 원본으로 게임 파일을 되돌립니다.
영문 원본 해시 확인까지 끝나면 `KRONDO_KO_RECOVERY` 폴더도 자동으로 삭제됩니다.

## 원본 백업과 업데이트

2번 또는 4번으로 처음 패치하면 영문 핵심 파일을 `KRONDO_KO_RECOVERY` 폴더에
보관합니다. 한글판을 사용하는 동안에는 영문판 복원과 이후 한글패치 업데이트에 필요하므로
삭제하지 마십시오. 5번 메뉴로 영문판 복원을 완료하면 더 이상 필요하지 않아 자동 삭제되며,
한글패치를 다시 적용할 때 새로 만들어집니다.

새 버전의 한글패처를 사용할 때도 배포 파일을 게임 폴더에 넣고 실행하면 됩니다.
패처가 원본 백업과 현재 게임 파일을 확인한 뒤 가능한 작업을 표시합니다.

## 안전 확인

- 지원되는 `Version 1.02 CD`의 핵심 파일과 일치할 때만 패치를 적용합니다.
- 패치 결과를 SHA-256으로 확인한 뒤 실제 게임 파일을 교체합니다.
- 작업이 실패하면 기존 게임 파일과 원본 백업을 유지합니다.
- CD 이미지, 세이브 파일, 음악과 사용자 설정은 해당 메뉴의 작업 대상이 아니면 변경하지 않습니다.
- 플로피판 `Version 1.00`과 출처가 다른 수정 실행 파일은 지원하지 않습니다.

## 배포 파일

```text
ko_krondo/
├─ ko_patch.cmd
├─ ko_patch.sh
├─ ko_patcher.py
├─ ko_patch_data.kop
├─ ko_readme.md
├─ ko_checksums.sha256
└─ ko_licenses/
   └─ ko_galmuri_license.txt
```

영문 게임 원본, CD 이미지, GOG·Steam 설치 파일, DOSBox와 xdelta3는 한글패치 ZIP에
포함되지 않습니다.
