跳到內容

支援的引擎

Sakura 在幕後以兩套獨立的引擎框架執行遊戲:經典引擎(NScripter/ONScripter)與 ONScripter-RU,後者是 GPU 加速的分支,用於《海貓鳴泣之時》等較新、需求較高的作品。

引擎顯示為徽章用途
NScripter/ONScripter(Shift-JIS)ONScripterNScr經典日文編碼遊戲
NScripter/ONScripter(UTF-8)ONScripterNScrUTF-8 同人翻譯與重新封裝版本
ONScripter-RUONScripter-RURUUmineko 等 GPU 世代遊戲

這兩種經典變體只是編碼上的差異,並非不同的引擎——兩者在你的資料庫中皆顯示為「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)

Section titled “經典 ONScripter(NScripter/ONScripter,Shift-JIS 或 UTF-8)”
  • 算圖比例、升頻濾鏡(平滑/xBRZ/銳利)與對比自適應銳化(CAS),可依遊戲個別調整,或在遊戲覆蓋層中即時調整
  • 回捲/倒帶,並可調整回捲深度
  • 跳過未讀文字
  • 執行時期字型切換(遊戲檔案夾字型、Sakura 內建字型,或你匯入的字型庫)
  • 自動翻譯(Apple 裝置端翻譯,需 iOS 18 以上)——詳情請見翻譯
  • 文字語言/選單語言自動偵測
  • 自動模式時間與音訊緩衝區大小(與經典引擎共用)
  • 遊戲 ID 與 NSA 偏移覆寫(與經典引擎共用)
  • 沒有顯示濾鏡(算圖比例/升頻/CAS)、沒有回捲、沒有跳過未讀開關、沒有執行時期字型切換,也沒有翻譯功能——RU 完全沒有這些項目的控制介面,因此 Sakura 對 RU 遊戲會直接隱藏這些設定,而不是顯示不會產生任何作用的控制項。每個遊戲的設定畫面會顯示一則簡短的「引擎限制」提示來說明此情況。
  • 遊戲內覆蓋層也反映相同的限制:RU 的快速選單僅顯示跳過與自動前進控制項(沒有倒帶),完整覆蓋層選單中的「重設至標題」與引擎內選單捷徑也會被停用,因為 RU 同樣未提供這些功能。

每個工作階段僅限一個引擎家族的規則

Section titled “每個工作階段僅限一個引擎家族的規則”

兩套引擎框架都是自成一體的原生函式庫,各自連結自己的一份 SDL2 副本。在同一個執行中的 App 內同時載入兩者並不安全,因此 Sakura 只允許每個 App 工作階段使用一個引擎家族:一旦你在該工作階段中啟動了經典遊戲或 ONScripter-RU 遊戲,該工作階段中啟動的其他所有遊戲都必須使用相同的家族。此外,ONScripter-RU 還額外限制每個工作階段僅能執行一次,因為其乾淨結束流程比經典引擎的實作更新、更年輕。

如果你嘗試啟動一款需要不同引擎家族(與目前工作階段已使用的引擎不同)的遊戲,Sakura 會顯示需要重新啟動的提示,而不會直接啟動它:

「此遊戲使用的引擎與本工作階段目前使用的引擎不同。請關閉並重新開啟 App,然後先啟動這款遊戲。」

選擇關閉 App會結束 Sakura,讓你可以重新啟動並改玩另一款遊戲。如果你在經典遊戲與 Umineko 這類 RU 遊戲之間切換,請預期需要在兩者之間重新啟動 App。