Перейти к содержимому

Поддерживаемые движки

Sakura запускает игры на двух отдельных движковых фреймворках: классическом движке (NScripter/ONScripter) и ONScripter-RU — форке с GPU-ускорением, используемом для более новых и требовательных тайтлов вроде Umineko no Naku Koro ni.

ДвижокОтображается какЗначокИспользуется для
NScripter / ONScripter (Shift-JIS)ONScripterNScrКлассические игры в японской кодировке
NScripter / ONScripter (UTF-8)ONScripterNScrФанатские переводы и репаки в UTF-8
ONScripter-RUONScripter-RURUИгры GPU-эпохи, такие как Umineko

Два классических варианта — это разница в кодировке, а не разные движки: оба отображаются в вашей библиотеке как «ONScripter», а кодировка (Shift-JIS или UTF-8) отдельно выводится в чипах раздела «Подробнее» игры.

При импорте игры Sakura сканирует её файлы, чтобы определить, какой движок ей нужен — вам не нужно выбирать его вручную, если только вы сами этого не захотите. Определение работает так, по порядку:

  1. Наличие script.file → ONScripter-RU. Это имя упакованного скрипта, которое использует ONScripter-RU; классический движок никогда не создаёт файл с таким именем, так что это надёжный признак сам по себе.

  2. Папка fonts/ вместе с 0.txt → ONScripter-RU. Некоторые репакнутые RU-игры поставляются с обычным 0.txt, но обязательная подпапка fonts/ рядом с ним — это и есть отличительный признак: классические игры никогда её не включают.

  3. Отдельные загрузочные скрипты → классический ONScripter:

    • 0.txt / 00.txt → Shift-JIS
    • 0.utf / 0.utf.txt / 00.utf / 00.utf.txt → UTF-8
    • nscr_sec.dat / nscript.___ / nscript.dat → Shift-JIS
    • pscript.dat → UTF-8

    (Если игра каким-то образом содержит и маркер Shift-JIS, и маркер UTF-8, побеждает Shift-JIS.)

  4. Импорт только архива — если папка содержит только упакованный архив (arc*.nsa, *.ns2, *.sar) без отдельного загрузочного скрипта, игра всё равно помечается как классический ONScripter, чтобы получить корректный значок в библиотеке.

  5. В остальных случаях движок игры помечается как неизвестный.

Переключатель Настройки → Движок для каждой игры позволяет принудительно выбрать Авто / 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+) — подробнее см. Перевод
  • Автоопределение языка текста / языка меню
  • Тайминг авторежима и размер аудиобуфера (общие с классическим движком)
  • Переопределение ID игры и смещения NSA (общие с классическим движком)
  • Нет фильтров отображения (масштаб рендеринга/фильтр масштабирования/CAS), нет отката, нет переключателя пропуска непрочитанного, нет переключения шрифта во время работы и нет перевода — у RU нет управляющих хуков ни для чего из этого, поэтому Sakura полностью скрывает эти настройки для RU-игр, вместо того чтобы показывать элементы управления, которые ничего бы не делали. Экран настроек конкретной игры показывает короткое уведомление «Ограничения движка», объясняющее это.
  • Игровой оверлей отражает те же ограничения: быстрое меню RU показывает только элементы управления пропуском и автопрокруткой (без перемотки назад), а полное меню оверлея отключает «Сброс к титульному экрану» и ярлык меню движка, поскольку RU их также не предоставляет.

Правило «одно семейство движков за сессию»

Заголовок раздела «Правило «одно семейство движков за сессию»»

Оба движковых фреймворка — самодостаточные нативные библиотеки, каждая со своей собственной копией SDL2. Загружать оба одновременно в одном работающем приложении небезопасно, поэтому Sakura допускает только одно семейство движков за сессию приложения: как только вы запустили либо классическую игру, либо игру ONScripter-RU, каждая следующая игра, запущенная в этой сессии, должна использовать то же семейство. ONScripter-RU дополнительно ограничен одним запуском за сессию, поскольку путь корректного завершения работы у него новее, чем у классического движка.

Если вы попытаетесь запустить игру, которой требуется другое семейство движков, чем уже используемое, Sakura вместо запуска покажет предупреждение «Требуется перезапуск»:

«Эта игра работает на движке, отличном от того, что уже используется в этой сессии. Закройте и снова откройте приложение, затем сначала запустите эту игру.»

Выбор «Закрыть приложение» завершает работу Sakura, чтобы вы могли перезапустить её и начать с другой игры. Если вы переключаетесь между классической игрой и RU-игрой вроде Umineko, будьте готовы перезапускать приложение между запусками.