콘텐츠로 이동

3DS - 리팩

게임 파일과 한글패치를 병합하는 탭입니다.

키셋 필수

이 기능은 3DS 키셋이 반드시 있어야 동작합니다. 키셋 구하는 방법은 실행 및 키파일 설정을 참고하세요.

화면 구성

  • 롬파일.3ds, .cci, .zcci, .cia 파일을 드래그 앤 드롭. ZCCI(압축된 3DS 롬)도 미리 풀 필요 없이 그대로 원본으로 지정할 수 있습니다.
  • 한글패치 / xdelta (폴더 or zip,7z) — 한글패치 폴더 또는 zip/7z 압축파일을 드래그 앤 드롭
  • 작업 폴더 — 언팩 루트 폴더이자, 결과 파일이 생성될 폴더
  • 출력 포맷 — 아래 셋 중 하나를 골라서 결과물을 만듭니다.
    • CCI ( 에뮬레이터 ) — Citra/Azahar 등 에뮬레이터에서 바로 실행 가능한 카트리지 이미지
    • CIA ( 실기 ) — 실기(3DS 본체)에 설치할 수 있는 형태
    • ZCCI ( Azahar 전용 압축 ) — CCI를 Azahar 전용 압축 포맷으로 압축한 결과물. 내부적으로는 먼저 CCI로 만든 뒤 압축 레벨 18로 압축해서 ZCCI로 바꾸고, 중간 단계의 CCI는 자동으로 삭제됩니다.
  • 롬 정보 — 롬파일을 지정하면 아이콘, 타이틀명, 배급사, 제품 코드, 지역, 암호화 여부가 자동으로 표시됩니다. 타이틀명과 배급사는 표시만 되는 게 아니라 직접 수정할 수 있으며, 수정한 값은 리팩 결과물에 그대로 반영됩니다. (각각 최대 63자) 값을 바꾸지 않으면 원본 값 그대로 유지됩니다.
  • 언팩 / 리팩 (폴더 기반) / 언팩 + 리팩 (스트리밍 기반) 버튼
  • 진행률 — 진행률, 속도, 경과 시간

image


사용 방법

한글패치 배포 방식에 따라 크게 3가지 케이스로 나뉩니다. 케이스별로 진행 방법이 다르니 확인 후 진행하세요.

케이스 1) 패치 파일이 xdelta 하나뿐인 경우

3DS는 통파일(3ds, cci, cia)로 diff 패치를 만들어도 용량이 크지 않기 때문에, 패치 파일이 xdelta 같은 diff 기반 파일 하나로만 배포되는 경우가 있습니다. (예: 세계수의 미궁 X)

이 경우는 [3DS - 리팩] 탭이 아니라 [패치] - [일반] 탭에서 진행하면 됩니다.

결과 파일은 롬파일이 있는 폴더 하위의 output 폴더에 생성됩니다.

자동 압축 체크 시 ZCCI로, 체크하지 않으면 원본 파일 포맷 그대로 진행됩니다.

image

케이스 2) LayeredFS 방식 (대부분의 한글패치)

LayeredFS는 폴더 방식으로, 실행 중에 실시간으로 게임 파일을 교체해주는 구조입니다. 실기와 에뮬레이터에서 동작 방식이 조금 다르지만, RomForge로 리팩해두면 별도로 설정할 게 없으니 신경 쓸 필요는 없습니다.

대부분의 3DS 한글패치가 이 케이스입니다.

보통 압축파일 형태로 배포되며, 내부에 exefs, romfs 폴더가 보이고 루트에 code.ips 파일이 있을 수 있습니다.

1786012005

code.ips는 자동 처리됩니다

code.ips가 보인다고 [패치] - [일반] 탭에서 exefs/code.bin을 따로 패치할 필요는 없습니다. [3DS - 리팩] 탭에서 리팩하면 자동으로 패치가 적용됩니다.

[3DS - 리팩] 탭에서 진행하면 됩니다. 최신 버전에서는 한글패치에 zip, 7z 압축파일을 그대로 지정할 수 있어서 미리 압축을 풀 필요가 없습니다.

작업 폴더에 위에서 선택한 출력 포맷(CCI, CIA, ZCCI 중 하나)으로 결과물이 생성됩니다.

image

케이스 3) 내부 파일 단위 xdelta (기타 케이스)

드물지만 컬드셉트 리볼트처럼, xdelta로 배포되는데 전체 3DS 파일 기준이 아니라 내부 파일 하나만을 대상으로 하는 경우가 있습니다. RomForge는 이 방식도 지원합니다.

[3DS - 리팩] 탭에서 진행하면 되지만, 사전 작업이 하나 필요합니다. xdelta 파일만 봐서는 어떤 파일을 패치해야 하는지 알 수 없기 때문에, 폴더를 다음과 같은 구조로 만들어줘야 인식합니다.

romfs\CULDCEPT.DAT.xdelta

패치할 원본 파일명.xdelta 형식으로 만들면 RomForge가 알아서 찾아서 패치하고 리팩합니다. 폴더 대신 zip 압축파일로 만들어도 동일하게 동작합니다.

정상적으로 처리되면 로그에 romfs 패치 적용 완료: 1개 파일처럼 표시됩니다.

image


암호화된 롬은 자동으로 복호화한 뒤 리팩이 진행됩니다.

언팩 + 리팩 (스트리밍 기반)을 쓰세요

이 방식은 물리 디스크에 언팩하지 않고 메모리 상에서 바로 처리하기 때문에 훨씬 빠릅니다. SSD 수명 보호와 속도, 둘 다 챙길 수 있어 이 방식을 우선 사용하는 것을 추천합니다.


언팩 / 리팩 / 언팩+리팩(스트리밍) 동작 차이

버튼 동작
언팩 롬파일을 작업 폴더의 unpacked 폴더에 언팩까지만 진행하고 멈춥니다.
리팩 (폴더 기반) 이전에 언팩으로 만들어둔 unpacked 폴더를 그대로 사용해서 리빌드합니다. 원본 롬파일을 다시 지정하지 않아도 되며, unpacked 폴더가 없으면 "언팩된 데이터가 없습니다" 오류로 실행되지 않습니다.
언팩 + 리팩 (스트리밍 기반) 언팩 폴더를 거치지 않고 원본 롬파일에서 바로 스트리밍으로 읽어 리빌드까지 한 번에 처리합니다. 위 팁대로 대부분의 경우 이 방식이 가장 빠릅니다.
  • 언팩을 실행할 때 작업 폴더에 이미 unpacked 폴더가 남아있으면 "기존 언팩 데이터를 삭제하고 새로 진행할까요?"라고 먼저 확인합니다.
  • 리팩 (폴더 기반)이나 언팩 + 리팩 (스트리밍 기반) 도중 실패하거나 취소하면, 그 시점까지 만들어지고 있던 결과 파일(ZCCI 변환 중이었다면 중간 CCI 포함)이 전부 자동으로 삭제됩니다. 언팩 도중 취소하면 unpacked 폴더도 함께 정리됩니다.