지원되는 엔진
Sakura는 내부적으로 두 개의 별도 엔진 프레임워크로 게임을 실행합니다 — 클래식 엔진(NScripter/ONScripter)과, 우미네코가 울 적에 같은 더 새롭고 까다로운 타이틀에 사용되는 GPU 가속 포크인 ONScripter-RU입니다.
엔진 매트릭스
섹션 제목: “엔진 매트릭스”| 엔진 | 표시명 | 배지 | 사용 대상 |
|---|---|---|---|
| NScripter / ONScripter (Shift-JIS) | ONScripter | NScr | 클래식 일본어 인코딩 게임 |
| NScripter / ONScripter (UTF-8) | ONScripter | NScr | UTF-8 팬 번역 및 리팩 |
| ONScripter-RU | ONScripter-RU | RU | Umineko 등 GPU 시대 게임 |
두 클래식 변형은 다른 엔진이 아니라 인코딩 차이일 뿐입니다 — 둘 다 라이브러리에는 “ONScripter”로 표시되며, 인코딩(Shift-JIS 또는 UTF-8)은 게임의 세부사항 칩에 별도로 표시됩니다.
자동 감지
섹션 제목: “자동 감지”게임을 가져오면 Sakura는 파일을 스캔하여 어떤 엔진이 필요한지 파악합니다 — 원하지 않는 한 수동으로 선택할 필요가 없습니다. 감지는 다음 순서로 작동합니다.
script.file존재 → ONScripter-RU. 이는 ONScripter-RU가 사용하는 패킹된 스크립트 이름으로, 클래식 엔진은 이 이름의 파일을 생성하지 않으므로 그 자체로 신뢰할 수 있는 신호입니다.fonts/폴더와0.txt의 조합 → ONScripter-RU. 일부 리팩된 RU 게임은 평문0.txt를 포함하지만, 함께 있는 필수fonts/하위 폴더가 결정적인 단서입니다 — 클래식 게임은 이를 번들로 포함하지 않습니다.개별 부팅 스크립트 → 클래식 ONScripter:
0.txt/00.txt→ Shift-JIS0.utf/0.utf.txt/00.utf/00.utf.txt→ UTF-8nscr_sec.dat/nscript.___/nscript.dat→ Shift-JISpscript.dat→ UTF-8
(게임이 Shift-JIS와 UTF-8 마커를 모두 포함하는 경우, Shift-JIS가 우선합니다.)
압축 파일만 있는 가져오기 — 폴더에 개별 부팅 스크립트 없이 패킹된 아카이브(
arc*.nsa,*.ns2,*.sar)만 있는 경우에도, 제대로 된 라이브러리 배지를 표시하기 위해 클래식 ONScripter로 태그됩니다.그 외의 경우 게임은 알 수 없음으로 표시됩니다.
수동 재정의
섹션 제목: “수동 재정의”모든 게임의 설정 → 엔진 선택기에서 감지에 의존하는 대신 자동 / ONScripter / ONScripter-RU를 강제로 지정할 수 있습니다. 이는 게임별 고유 설정이며 “전역 설정 사용” 토글의 영향을 받지 않고, 해당 게임을 다음번 실행할 때 적용됩니다.
각 엔진이 지원하는 기능
섹션 제목: “각 엔진이 지원하는 기능”클래식 엔진과 ONScripter-RU는 기능이 동일하지 않습니다. RU는 까다로운 게임을 잘 구동시키는 데 집중한 더 새로운 GPU 기반 포크로, 클래식 엔진의 여러 추가 기능에 대한 훅을 아예 갖고 있지 않습니다.
클래식 ONScripter (NScripter/ONScripter, Shift-JIS 또는 UTF-8)
섹션 제목: “클래식 ONScripter (NScripter/ONScripter, Shift-JIS 또는 UTF-8)”- 렌더 배율, 업스케일 필터(부드럽게/xBRZ/선명하게), 대비 적응형 선명화(CAS) — 게임별로 조정하거나 게임 오버레이에서 실시간으로 조정 가능
- 롤백/되감기, 조정 가능한 롤백 깊이
- 읽지 않은 텍스트 건너뛰기
- 런타임 폰트 전환(게임 폴더 폰트, Sakura 번들 폰트, 또는 가져온 폰트 라이브러리)
- 자동 번역(Apple 기기 내 번역, iOS 18 이상) — 자세한 내용은 번역을 참고하세요
- 텍스트 언어 / 메뉴 언어 자동 감지
ONScripter-RU
섹션 제목: “ONScripter-RU”- 자동 모드 타이밍 및 오디오 버퍼 크기(클래식과 공유)
- 게임 ID 및 NSA 오프셋 재정의(클래식과 공유)
- 화면 필터(렌더 배율/업스케일/CAS) 없음, 롤백 없음, 읽지 않음 건너뛰기 토글 없음, 런타임 폰트 전환 없음, 번역 없음 — RU는 이 중 어느 것에 대한 제어 훅도 갖고 있지 않으므로, 아무 동작도 하지 않는 컨트롤을 표시하는 대신 Sakura는 RU 게임에서 이러한 설정을 완전히 숨깁니다. 게임별 설정 화면에는 이를 설명하는 짧은 “엔진 제한” 안내가 표시됩니다.
- 인게임 오버레이에도 동일한 제한이 반영됩니다 — RU의 빠른 메뉴는 건너뛰기와 자동 진행 컨트롤만 표시하며(되감기 없음), 전체 오버레이 메뉴는 “타이틀로 재설정”과 인게임 메뉴 단축키를 비활성화합니다. RU가 이들을 제공하지 않기 때문입니다.
세션당 단일 엔진 계열 규칙
섹션 제목: “세션당 단일 엔진 계열 규칙”두 엔진 프레임워크 모두 자체 SDL2 사본을 링크한 독립적인 네이티브 라이브러리입니다. 같은 실행 중인 앱에서 둘 다 동시에 로드하는 것은 안전하지 않으므로, Sakura는 앱 세션당 하나의 엔진 계열만 허용합니다 — 클래식 게임이든 ONScripter-RU 게임이든 하나를 실행하고 나면, 해당 세션에서 실행하는 모든 다른 게임은 같은 계열이어야 합니다. ONScripter-RU는 정상 종료 경로가 클래식 엔진보다 더 새로운 것이기 때문에 세션당 한 번의 실행으로 추가로 제한됩니다.
이미 사용 중인 엔진 계열과 다른 계열이 필요한 게임을 실행하려고 하면, Sakura는 바로 실행하는 대신 다시 시작 필요 알림을 표시합니다.
“이 게임은 이번 세션에서 이미 사용 중인 엔진과 다른 엔진에서 실행됩니다. 앱을 닫았다가 다시 열고, 이 게임을 먼저 실행하세요.”
앱 닫기를 선택하면 Sakura가 종료되어 다시 실행한 뒤 다른 게임으로 시작할 수 있습니다. 클래식 게임과 Umineko 같은 RU 게임을 오가며 플레이한다면, 그 사이에 앱을 재시작해야 한다는 점을 알아두세요.