RuneTranslate agora traduz visual novels YU-RIS
O RuneTranslate agora traduz visual novels do motor YU-RIS (raiL-soft) para o inglês e mais de 30 idiomas. Ele lê os pacotes .ypf em TypeScript puro e os scripts YSTB compilados dentro de ysbin.ypf, recupera automaticamente a chave XOR de cada script, extrai os diálogos em japonês e exporta os scripts traduzidos soltos para que o jogo os carregue sem reempacotar. Recém-adicionado e ainda não verificado em muitos jogos reais — relate qualquer jogo que não abra.
O RuneTranslate agora lê mais um motor que por muito tempo foi uma barreira para tradutores amadores: o YU-RIS, o motor de scripting para Windows da raiL-soft por trás de centenas de visual novels japonesas, tanto doujin quanto comerciais. Se você já abriu a pasta de um jogo YU-RIS, encontrou um diretório pac/ cheio de arquivos .ypf e um ysbin.ypf sem nada legível dentro, e desistiu — é esse o motor. O RuneTranslate agora o detecta, abre esses pacotes em TypeScript puro, lê os diálogos dos scripts compilados e exporta uma cópia traduzida que o jogo carrega sozinho. É o motor mais recente compatível com o RuneTranslate.
Este é um motor totalmente novo e a parte honesta vem primeiro: o suporte a YU-RIS acabou de ser criado e ainda não foi verificado em muitos jogos reais. Então, antes de tudo — se você apontar o RuneTranslate para um jogo YU-RIS e ele não detectar, não abrir ou exportar algo que o jogo não carrega, avise a gente. Mais sobre como fazer isso, no final.
O que é de fato o motor YU-RIS
O YU-RIS (às vezes escrito ゆーりす) é um motor japonês de scripting para visual novels criado pela raiL-soft. Um jogo YU-RIS finalizado é um .exe de Windows mais um conjunto de arquivos de pacote .ypf — geralmente em uma pasta pac/ — que guardam a arte, o áudio e os scripts. O roteiro em si é compilado: o script legível que um desenvolvedor escreve é transformado em um formato binário chamado YSTB, armazenado como arquivos .ybn dentro de ysbin.ypf (em caminhos internos como ysbin/yst00000.ybn). Essa combinação de «roteiro compilado dentro de um arquivo empacotado» é exatamente o que manteve o vasto catálogo do motor fora do alcance das ferramentas comuns de tradução automática.
Por que os jogos YU-RIS têm sido tão difíceis de traduzir
Comparado a um motor baseado em código-fonte como o Ren'Py, o YU-RIS esconde seu texto atrás de várias camadas:
- Tudo fica dentro dos pacotes `.ypf`. Os scripts não estão soltos no disco — estão empacotados no contêiner
.ypfpróprio do YU-RIS, com nomes de arquivo ofuscados e entradas comprimidas com zlib. Sem um leitor para esse formato, não há nada para editar, para começar. - O roteiro é compilado, não é texto. Um
.ybnnão é um script que você abre no Bloco de Notas — é um contêiner binárioYSTBdividido em quatro seções (um fluxo de instruções, uma tabela de descritores de argumentos, uma tabela de strings e números de linha). O japonês de verdade fica na tabela de strings, referenciado pelos descritores. - Os scripts são criptografados com XOR. As quatro seções de dados de cada script
YSTBsão embaralhadas com uma chave de 4 bytes. Você precisa recuperar essa chave antes que qualquer texto fique legível — e a chave varia de jogo para jogo. - Nem toda string é diálogo. A tabela de strings também guarda nomes de variáveis, caminhos de recursos e operandos de expressões que a lógica do script usa em comparações. Traduza um desses por engano e o fluxo do jogo quebra silenciosamente.
O efeito líquido: até quem lê japonês fluentemente precisa primeiro desempacotar um arquivo proprietário, depois analisar um binário compilado, depois quebrar o XOR e então separar os diálogos das strings internas do motor — tudo antes de uma única linha ser traduzida. É esse o trabalho que o RuneTranslate agora faz por você.
O que o RuneTranslate faz agora
O RuneTranslate trata o YU-RIS como um motor de primeira classe e cuida de todo o fluxo em TypeScript puro — sem ferramentas externas, sem sidecar em Python, nada para instalar:
- Lê os pacotes `.ypf` diretamente. Ele abre os arquivos internamente, descomprime as entradas e recupera os nomes de arquivo ofuscados — sem GARbro nem um desempacotador à parte. Já extraiu o jogo por conta própria? Uma pasta
ysbin/solta com scripts.ybntambém é detectada. - Analisa os scripts `YSTB` compilados e quebra a criptografia. Ele recupera a chave XOR de 4 bytes de cada script automaticamente a partir da tabela de descritores de argumentos, decodifica a tabela de strings Shift-JIS e lista todas as linhas em japonês no editor, agrupadas por arquivo de script.
- Distingue diálogo de maquinário. Nomes de variáveis, caminhos de recursos e operandos de expressões são exibidos, mas excluídos por padrão — mostrados como linhas vermelhas de inclusão opcional — para que você nunca traduza por acidente uma string que a lógica da história usa em comparações.
- Preserva os códigos de controle em linha. Códigos com barra invertida (quebra de linha, cor, ruby) e tags entre colchetes espalhadas pelo texto da mensagem são mascarados atrás de marcadores numéricos antes de qualquer coisa chegar ao provedor, e restaurados exatamente na saída.
- Exporta sem reempacotar. Na exportação, ele reconstrói cada script traduzido — ajustando os deslocamentos da tabela de strings para que uma tradução mais longa ou mais curta caiba, e reaplicando a mesma chave XOR — e então grava o
.ybnsolto em seu caminho de arquivo original. O runtime do YU-RIS prefere um arquivo solto ao mesmo caminho empacotado em um.ypf, então o jogo simplesmente lê sua tradução. Não há reempacotamento. (É a mesma abordagem de substituição por arquivos soltos do nosso fluxo de patch do Kirikiri e do nosso suporte a Artemis.)
Japonês → inglês é o ponto forte, mas você pode traduzir para qualquer um de mais de 30 idiomas — espanhol, francês, alemão, português, russo, chinês, italiano, turco, vietnamita e mais.
O que você precisa
- RuneTranslate para Windows — grátis; todos os motores e provedores estão desbloqueados (o nível gratuito é limitado na velocidade, não nos recursos).
- A pasta de um jogo YU-RIS. É o diretório que contém o
yu-ris.exedo jogo e seus pacotes.ypf(geralmente em uma subpastapac/, com os scripts emysbin.ypf). - Um idioma de destino — inglês, espanhol, francês, alemão, português, russo, chinês, italiano, turco, vietnamita e mais de 20 outros.
- Um provedor de tradução. O Google Translate gratuito funciona de imediato; o DeepL tem um nível gratuito; OpenAI, Anthropic, um modelo local (Ollama / LM Studio) e qualquer API compatível com OpenAI exigem sua própria chave. Jogos YU-RIS têm muito diálogo, então um LLM (OpenAI / Anthropic) ou o DeepL costuma dar o melhor resultado.
Passo 1: Abra a pasta do jogo
Abra o RuneTranslate, clique em Novo projeto e aponte para o diretório do jogo YU-RIS. A detecção do motor roda automaticamente — quando vê um pacote .ypf (ou uma pasta ysbin/ solta com scripts .ybn), reconhece o projeto como YU-RIS. Sua pasta de jogo original nunca é modificada.
Passo 2: Como os scripts são lidos
O RuneTranslate abre os pacotes .ypf, extrai os scripts YSTB compilados de ysbin.ypf, recupera a chave XOR de cada script e decodifica a tabela de strings Shift-JIS — listando todas as linhas em japonês no editor, agrupadas por arquivo. As strings internas do motor (nomes de variáveis, caminhos de recursos, operandos de expressões) são exibidas, mas excluídas por padrão, e os códigos de controle em linha são mascarados atrás de marcadores numéricos para que o provedor nunca os estrague.
Passo 3: Traduza
Escolha um provedor e execute. Para uma visual novel, um LLM (OpenAI / Anthropic) é o melhor para a voz e o tom dos personagens, o DeepL é rápido e limpo para a narração, e o Google Translate gratuito dá conta de strings curtas de menu e escolhas. Monte um glossário do seu elenco e dos termos recorrentes de antemão para que os nomes sejam renderizados de forma idêntica no jogo inteiro — veja Glossário 101. Quando terminar, uma passagem opcional com o refinador de IA relê cada linha no contexto e melhora a redação rígida e literal que a tradução automática tende a deixar.
Passo 4: Exporte uma cópia pronta para jogar
Clique em Exportar. O RuneTranslate grava uma cópia traduzida do jogo com cada .ybn reconstruído colocado solto em seu caminho de arquivo original, ao lado dos pacotes .ypf intactos. Não há reempacotamento — o YU-RIS carrega os scripts soltos em vez dos originais empacotados, então o jogo simplesmente lê suas traduções. Execute e ele roda no seu idioma de destino.
Limitações conhecidas
- As strings do YU-RIS são Shift-JIS (cp932). Inglês e outros idiomas de destino representáveis em cp932 exportam sem problemas. Idiomas com caracteres fora do cp932 — cirílico estendido, coreano, chinês tradicional — precisam de um hack de fonte/codificação do jogo que ainda não é automatizado.
- A substituição por arquivos soltos é o caminho de carregamento esperado, e na maioria dos jogos YU-RIS funciona porque o motor prefere um script solto à cópia empacotada. No raro título que não respeita isso, a exportação pode precisar de ajustes — exatamente o tipo de comportamento em jogos reais que ainda estamos confirmando.
- Texto embutido na arte de imagem — uma tela de título ou um botão de menu desenhado como bitmap — são pixels, não texto de script. Para isso, veja tradução de texto em imagens.
- A variante exata do arquivo e do script pode diferir entre versões. Sempre verifique na sua cópia específica.
É totalmente novo — conte o que quebrar
Vale repetir com clareza: o suporte a YU-RIS é uma adição recente e ainda não foi testado em muitos jogos reais. O leitor de .ypf, o analisador de YSTB e a recuperação de chaves estão prontos e cobertos por testes unitários, mas o motor tem anos de variação por estúdio que não vimos por completo. Então, se você apontar o RuneTranslate para um jogo YU-RIS e ele não detectar, não abrir os arquivos, não extrair nada ou exportar algo que o jogo não carrega, relate no nosso Discord — o nome do jogo e como ele está empacotado é exatamente o que nos ajuda a reforçá-lo mais rápido.
Baixe o RuneTranslate, aponte para aquela visual novel YU-RIS que você queria ler e experimente. Para ver como lidamos com outro motor de visual novel baseado em arquivos, leia em seguida o tutorial do Artemis.
Pronto para experimentar o RuneTranslate?
O plano gratuito libera todos os motores + todos os provedores de tradução. O plano Supporter ($3/mo) libera velocidade total.
Baixar para Windows