패치 - 아케이드¶
여러 게임의 롬셋이 통째로 들어있는 아케이드용 ZIP(FBNeo 등)에, 여러 개의 IPS 패치를 한 번에 자동 매칭해서 일괄 적용하는 탭입니다. 게임 하나짜리 단일 패치가 아니라 "묶음 패치"를 다루는 용도이며, 이 점이 패치 - 일반과 가장 큰 차이입니다.
이 탭도 키파일이 필요 없습니다.
화면 구성¶
- 원본 ZIP — 아케이드 롬셋이 담긴 ZIP 파일을 드래그 앤 드롭 (파일 하나만 인식, 여러 개 드롭해도 첫 번째 파일만 적용됩니다)
- 패치(IPS/폴더/ZIP) — 패치 파일들이 담긴 폴더, 패치들을 모아둔 ZIP, 또는 IPS 파일 하나를 드래그 앤 드롭
- 패치 선택 — 패치 경로 안에서 발견된
.dat마스터 데이터가 2개 이상이면 그중 어떤 걸 기준으로 매칭할지 고르는 드롭다운. 1개면 자동으로 선택되고, 없으면 이 드롭다운 자체가 보이지 않습니다. - 매칭 목록 — 원본 ZIP 안의 각 게임 항목과, 자동으로 매칭된 패치 파일을 항목별로 보여주는 목록
- 항목: 원본 파일명 → 패치 파일명, 매칭 여부, 미매칭/불일치 사유, 항목별 진행률(패치 실행 중)
- 항목의 패치 파일 영역에 로컬 디스크의 파일을 직접 드래그 앤 드롭하면 그 항목 하나만 수동으로 패치를 바꿀 수 있습니다.
- 항목별 드롭다운에서, 자동 인식된 패치 파일 목록 중 다른 걸 골라서 재배정할 수도 있습니다.
- 전체 진행률 — 매칭된 항목들의 평균 진행률이 하단에 표시됩니다.
원본 ZIP¶
- ZIP 확장자만 지원합니다. 7Z/RAR은 안 되고, 반드시
.zip이어야 합니다. - 원본 ZIP을 드롭하면, 그 ZIP 안에 들어있는 각 항목(보통 게임별 romset 파일) 을 하나씩 "패치 대상"으로 취급합니다. 즉 이 탭은 ZIP 파일을 대상으로 하며, 개별 압축 해제나 후보 선택 창 같은 건 없습니다 — 드롭한 즉시 ZIP 안의 전체 목록이 그대로 매칭 대상이 됩니다.
- 원본을 지정하는 순간(패치 경로도 이미 지정되어 있다면) 자동으로 매칭 분석이 시작됩니다. 버튼을 따로 누를 필요 없습니다.
패치 입력 3가지 방식¶
패치 자리에는 아래 셋 중 하나를 넣을 수 있습니다.
| 입력 | 동작 |
|---|---|
| IPS 파일 1개 | 그 파일 하나만 패치 후보가 됩니다 |
| 폴더 | 폴더 아래를 하위 폴더까지 전부 재귀적으로 훑어서 .ips 파일을 모두 후보로 모읍니다 |
| ZIP 파일 | ZIP 안에서 .ips 확장자를 가진 항목을 전부 후보로 모읍니다 |
여기서 중요한 점: 자동으로 스캔해서 후보로 모으는 확장자는 오직 .ips 뿐입니다. BPS/UPS/PPF/APS/Xdelta 파일을 폴더나 ZIP 안에 섞어놔도 자동 후보로 잡히지 않습니다.
숨은 기능: 자동 스캔은 IPS만 인식하지만, 매칭 목록에서 항목 하나를 골라 직접 드래그 앤 드롭으로 수동 지정하면 확장자 제한이 없습니다. 실제 패치 적용 단계는 패치 - 일반과 똑같이 파일 내용(헤더 시그니처)으로 포맷을 판별하기 때문에, 수동으로 넣은 BPS/UPS/PPF/APS/Xdelta 파일도 정상적으로 적용됩니다. 자동 매칭 대상 게임이 IPS가 아닌 다른 포맷 패치를 써야 한다면, 항목별로 수동 드래그해서 넣어주면 됩니다.
.dat 마스터 데이터 (있으면 훨씬 정확해집니다)¶
패치 경로(폴더/ZIP) 안에 .dat 파일이 있으면, 이 탭은 이걸 CRC 기반 정밀 매칭용 마스터 데이터로 자동 인식합니다. .dat도 IPS와 마찬가지로 폴더/ZIP 안 하위 경로까지 재귀적으로 찾습니다. 여러 개 있으면 각각 하나의 "패치 패키지"로 취급되어 상단 드롭다운에 표시됩니다.
.dat 파일 형식¶
원본파일명.zip<TAB>패치베이스이름<TAB>CRC(xxxxxxxx)
원본파일명2.zip<TAB>패치베이스이름2<TAB>CRC(yyyyyyyy)
...
(빈 줄로 목록 종료)
[ko_KR]
표시할 이름(한글)
[en_US]
Display Name
- 목록 부분은 탭으로 구분된 3열이며, 3번째 칸에
CRC(8자리16진수)형식이 없으면 그 줄에서 목록 읽기가 중단됩니다. - 목록 다음의
[locale]섹션들에서,ko_KR섹션이 있으면 그 다음 줄을 패키지 표시 이름으로 사용합니다.ko_KR이 없으면 제일 먼저 나오는 섹션의 값을 씁니다. 그마저 없으면.dat파일명 자체가 표시 이름이 됩니다. - BOM(UTF-8 시그니처)이 파일 맨 앞에 붙어있어도 자동으로 무시하고 읽습니다.
매칭 알고리즘 (실제 동작 순서)¶
패치 경로가 바뀌거나, 원본 ZIP이 바뀌거나, 패치 패키지(dat) 선택이 바뀔 때마다 아래 과정이 처음부터 다시 돌아갑니다.
원본 ZIP 안의 각 게임 항목마다:
- 선택된
.dat패키지에 이 게임의 파일명이 등록되어 있는지 확인합니다.- 등록되어 있다면: 원본 ZIP 항목의 실제 CRC32 값과, dat에 적힌 CRC를 비교합니다.
- 일치: dat에 적힌 "패치 베이스 이름"이 파일명에 포함된(정확히 일치가 아니라 부분 포함,
Contains) IPS 후보를 찾아서 매칭합니다. 매칭 사유는 "CRC 일치"로 표시됩니다. - 불일치: 매칭하지 않고 사유를 "CRC 불일치"로 표시합니다. (⚠️ 아래 실행 규칙에서 이 상태의 의미가 중요합니다.)
- CRC는 일치하는데 대응하는 IPS 파일을 후보 중에서 못 찾으면, 사유가 "마스터 데이터에 등록된 패치(◯◯.ips)를 찾을 수 없습니다"로 표시됩니다.
- 일치: dat에 적힌 "패치 베이스 이름"이 파일명에 포함된(정확히 일치가 아니라 부분 포함,
- 등록되어 있지 않다면(이 게임이 dat 목록에 없음): CRC 검사 없이, 원본 파일 확장자 문자열을 포함하는 이름의 IPS 후보를 순서대로 하나 배정합니다. (예: 원본이
xxx.zip이면, 후보 IPS 파일명 중zip이라는 문자열이 들어있는 걸 찾습니다. dat 없이 쓰는 경우 이 확장자 매칭 방식이 사실상 유일한 자동 매칭 수단입니다.)
- 등록되어 있다면: 원본 ZIP 항목의 실제 CRC32 값과, dat에 적힌 CRC를 비교합니다.
- 패치 패키지 자체를 선택하지 않은 상태(dat이 없거나 "패치 선택"을 비워둔 경우)라면, 모든 게임이 위 2번(확장자 포함 매칭) 방식만으로 매칭을 시도합니다.
- 하나의 IPS 후보는 한 게임에만 한 번 배정됩니다(같은 패치가 두 게임에 중복 배정되지 않음). dat에 이미 이름이 등록된 패치 파일은, 확장자 매칭 풀에서 제외되어 dat 미등록 게임에게 잘못 배정되지 않도록 방지됩니다.
- 매칭이 하나도 안 된 게임 항목은 목록에 그대로 남지만 패치 파일명 칸이 비어 "미매칭" 상태로 표시됩니다.
매칭 결과가 뜻하는 것¶
| 표시 | 의미 |
|---|---|
| 패치 파일명 표시 + 사유 없음 (확장자 매칭) | dat에 등록 안 된 게임을 파일명 문자열 포함으로 자동 매칭함 |
| 패치 파일명 표시 + "CRC 일치" | dat에 등록된 정확한 버전의 롬이며, 지정된 패치가 정상 매칭됨 |
| 패치 파일명 없음 + "CRC 불일치" | dat에는 등록된 게임이지만, 갖고 있는 롬셋의 CRC가 dat와 다름(다른 리비전/오버덤프 등) |
| 패치 파일명 없음 + "마스터 데이터에 등록된 패치(◯◯.ips)를 찾을 수 없습니다" | CRC는 맞는데 실제 IPS 파일이 폴더/ZIP 안에 없음 |
| 패치 파일명 없음 + 사유 없음 | dat에도 없고, 확장자로도 매칭되는 후보가 없음(단순 미매칭) |
수동 재매칭¶
자동 매칭 결과가 마음에 안 들면 항목 단위로 직접 고칠 수 있습니다.
- 드래그 앤 드롭: 매칭 목록의 특정 항목 위에 파일을 드래그하면, 그 항목의 패치가 드롭한 파일로 강제 지정됩니다. 이때는 로컬 디스크의 파일 경로만 가능하며(ZIP/폴더 안에서 자동 스캔된 목록이 아니라 탐색기에서 바로 끌어온 파일), 확장자 제한도 없습니다.
- 드롭다운: 항목별 드롭다운에서 자동 스캔으로 모인 전체 IPS 후보 목록 중 하나를 골라 재배정할 수 있습니다.
- 이미 다른 항목에 배정되어 있던 패치를 다른 항목에 다시 배정하면, 원래 배정되어 있던 항목에서는 자동으로 매칭이 해제됩니다(한 패치 파일이 두 항목에 동시에 잡히는 걸 방지).
패치 실행 규칙¶
- 매칭된 항목이 하나도 없으면 패치 시작 자체가 동작하지 않습니다.
- 매칭 목록에 "CRC 불일치" 사유가 단 하나라도 있으면, 전체 패치가 아예 시작되지 않습니다. ("CRC 불일치 항목이 있어 패치를 진행할 수 없습니다" 로그) 다른 게임들이 전부 정상 매칭 상태여도 마찬가지입니다. CRC가 다른 롬은 반드시 손봐서 CRC를 일치시키거나(올바른 리비전으로 교체), 해당 게임을 원본 ZIP에서 빼고 진행해야 합니다.
- 단순 미매칭(사유 없음, 그냥 패치가 안 잡힌 것)은 실행을 막지 않습니다. 미매칭 게임은 패치 없이 원본 그대로 결과 ZIP에 복사됩니다.
- 실행되면 매칭된 항목들만 순서대로(내부적으로는 원본 ZIP 항목 순서 그대로) 패치가 적용되고, 나머지 미매칭 항목은 손대지 않고 그대로 복사됩니다.
출력¶
- 패치 - 일반 탭과 마찬가지로 원본 ZIP이 있던 폴더 아래의
output폴더에 결과가 생성됩니다. - 결과물은 개별 파일들이 아니라, 원본과 같은 파일명의 ZIP 파일 하나입니다. 매칭된 게임은 패치가 적용된 채로, 나머지는 원본 그대로 같은 ZIP 안에 다시 담겨 나옵니다. (이 탭에는 "패치 후 자동 압축" 옵션이 없습니다 — 애초에 결과가 ZIP으로 나가기 때문입니다.)
- 패치가 끝나면 output 폴더가 자동으로 열립니다.
- 진행 중 취소하거나 실패하면, 만들어지고 있던 결과 ZIP은 자동으로 삭제됩니다.
진행률 표시¶
- 각 항목의 진행률은 해당 게임(ZIP 내부 엔트리) 단위로 개별 갱신됩니다.
- 하단 전체 진행률은 매칭된 항목들의 진행률 평균입니다(미매칭 항목은 애초에 진행률 계산에서 빠집니다).
초기화¶
초기화(Clear)를 누르면 원본/패치 경로, 매칭 목록, 자동 인식된 패치 후보 목록, 선택된 .dat 패키지, 진행률, 로그까지 전부 완전히 리셋됩니다. 패치 - 일반 탭과 달리 이 탭에는 "자동 압축" 같은 별도 옵션이 없어서 초기화 시 추가로 신경 쓸 옵션은 없습니다.
추천 사용 방법¶
- 아케이드 롬셋이 모여있는 원본 ZIP을 드래그 앤 드롭합니다.
- 패치 폴더(또는 ZIP)를 드래그 앤 드롭합니다.
.dat가 포함되어 있으면 자동으로 인식되어 "패치 선택" 드롭다운이 나타나고, CRC 기반 매칭이 시작됩니다. - 매칭 목록을 확인합니다. 특히 "CRC 불일치"가 있는지 꼭 확인하세요 — 하나라도 있으면 패치 자체가 안 됩니다.
- 필요하면 항목별로 드래그하거나 드롭다운으로 수동 매칭을 보정합니다.
- 패치 시작을 누르면 항목별/전체 진행률이 표시되며 진행됩니다.
- 완료되면 자동으로 열리는 output 폴더에서 결과 ZIP을 확인합니다.