Поддерживаемые движки
Sakura запускает игры на двух отдельных движковых фреймворках: классическом движке (NScripter/ONScripter) и ONScripter-RU — форке с GPU-ускорением, используемом для более новых и требовательных тайтлов вроде Umineko no Naku Koro ni.
Матрица движков
Заголовок раздела «Матрица движков»| Движок | Отображается как | Значок | Используется для |
|---|---|---|---|
| NScripter / ONScripter (Shift-JIS) | ONScripter | NScr | Классические игры в японской кодировке |
| NScripter / ONScripter (UTF-8) | ONScripter | NScr | Фанатские переводы и репаки в UTF-8 |
| ONScripter-RU | ONScripter-RU | RU | Игры GPU-эпохи, такие как Umineko |
Два классических варианта — это разница в кодировке, а не разные движки: оба отображаются в вашей библиотеке как «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, чтобы вы могли перезапустить её и начать с другой игры. Если вы переключаетесь между классической игрой и RU-игрой вроде Umineko, будьте готовы перезапускать приложение между запусками.