Motores Suportados
Sakura executa jogos usando dois frameworks de motor separados por baixo dos panos: um motor clássico (NScripter/ONScripter) e o ONScripter-RU, um fork acelerado por GPU usado por títulos mais novos e exigentes como Umineko no Naku Koro ni.
Matriz de Motores
Seção intitulada “Matriz de Motores”| Motor | Exibido Como | Selo | Usado Para |
|---|---|---|---|
| NScripter / ONScripter (Shift-JIS) | ONScripter | NScr | Jogos clássicos codificados em japonês |
| NScripter / ONScripter (UTF-8) | ONScripter | NScr | Traduções de fãs e repacotamentos em UTF-8 |
| ONScripter-RU | ONScripter-RU | RU | Jogos da era GPU, como Umineko |
As duas variantes clássicas são uma diferença de codificação, não um motor diferente — ambas aparecem na sua biblioteca como “ONScripter,” com a codificação (Shift-JIS ou UTF-8) exibida separadamente nos chips de Detalhes do jogo.
Detecção Automática
Seção intitulada “Detecção Automática”Quando você importa um jogo, o Sakura examina seus arquivos para descobrir de qual motor ele precisa — você nunca precisa escolher manualmente, a menos que queira. A detecção funciona assim, em ordem:
Presença de
script.file→ ONScripter-RU. Este é o nome do script empacotado que o ONScripter-RU usa; o motor clássico nunca produz um arquivo com esse nome, então é um sinal confiável por si só.Uma pasta
fonts/junto com um0.txt→ ONScripter-RU. Alguns jogos RU repacotados incluem um0.txtsimples, mas a subpasta obrigatóriafonts/ao lado dele é a pista — jogos clássicos nunca incluem uma.Scripts de inicialização soltos → ONScripter clássico:
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
(Se um jogo, por algum motivo, incluir tanto um marcador Shift-JIS quanto um UTF-8, o Shift-JIS prevalece.)
Importações somente com arquivo compactado — se a pasta contém apenas um arquivo compactado empacotado (
arc*.nsa,*.ns2,*.sar) sem script de inicialização solto, ele ainda é marcado como ONScripter clássico para receber um selo de biblioteca adequado.Caso contrário, o jogo é marcado como desconhecido.
Substituição Manual
Seção intitulada “Substituição Manual”O seletor Ajustes → Motor de cada jogo permite forçar Automático / ONScripter / ONScripter-RU em vez de depender da detecção. Esse é um ajuste intrínseco, por jogo — não é afetado pela alternância “Usar Ajustes Globais,” e entra em vigor na próxima vez que você iniciar aquele jogo.
O Que Cada Motor Suporta
Seção intitulada “O Que Cada Motor Suporta”O motor clássico e o ONScripter-RU não têm os mesmos recursos. RU é um fork mais novo, baseado em GPU, focado em fazer jogos exigentes rodarem bem, e simplesmente não tem ganchos para vários dos extras do motor clássico.
ONScripter Clássico (NScripter/ONScripter, Shift-JIS ou UTF-8)
Seção intitulada “ONScripter Clássico (NScripter/ONScripter, Shift-JIS ou UTF-8)”- Escala de renderização, filtro de ampliação (Suave/xBRZ/Nítido) e nitidez adaptativa ao contraste (CAS), ajustáveis por jogo ou ao vivo na sobreposição do jogo
- Retrocesso/rebobinagem, com profundidade de retrocesso ajustável
- Pular Texto Não Lido
- Troca de fonte em tempo de execução (fontes da pasta do jogo, fontes empacotadas do Sakura, ou sua biblioteca de fontes importadas)
- Tradução automática (Tradução da Apple no próprio dispositivo, iOS 18+) — veja Tradução para detalhes
- Detecção automática de Idioma do Texto / Idioma do Menu
ONScripter-RU
Seção intitulada “ONScripter-RU”- Tempo do modo automático e tamanho do buffer de áudio (compartilhado com o clássico)
- Substituições de ID do jogo e deslocamento NSA (compartilhado com o clássico)
- Sem filtros de exibição (escala de renderização/ampliação/CAS), sem retrocesso, sem alternância de pular não lido, sem troca de fonte em tempo de execução, e sem tradução — RU não tem ganchos de controle para nenhum desses, então o Sakura oculta completamente esses ajustes para jogos RU em vez de mostrar controles que não fariam nada. A tela de Ajustes por jogo mostra um breve aviso de “Limites do Motor” explicando isso.
- A sobreposição no jogo reflete os mesmos limites: o menu rápido do RU mostra apenas os controles de pular e avanço automático (sem rebobinagem), e o menu completo de sobreposição desativa “Voltar ao Título” e o atalho de menu do próprio motor, já que RU também não expõe esses recursos.
A Regra de Uma Família de Motor por Sessão
Seção intitulada “A Regra de Uma Família de Motor por Sessão”Ambos os frameworks de motor são bibliotecas nativas autocontidas que vinculam sua própria cópia do SDL2. Carregar os dois no mesmo app em execução ao mesmo tempo não é seguro, então o Sakura permite apenas uma família de motor por sessão do app: uma vez que você tenha iniciado um jogo clássico ou um jogo ONScripter-RU, todo outro jogo que você iniciar naquela sessão precisa usar a mesma família. O ONScripter-RU tem ainda a limitação de uma execução por sessão, já que seu caminho de encerramento limpo é mais recente que o do motor clássico.
Se você tentar iniciar um jogo que precisa de uma família de motor diferente da que já está em uso, o Sakura mostra um alerta de Reinício Necessário em vez de iniciá-lo:
“Este jogo é executado em um motor diferente do já usado nesta sessão. Feche e reabra o app, depois inicie este jogo primeiro.”
Escolher Fechar App encerra o Sakura para que você possa reabri-lo e começar com o outro jogo. Se você estiver alternando entre um jogo clássico e um jogo RU como Umineko, espere ter que reiniciar o app entre eles.