EnginesGuiasFAQPatreonDiscordBaixar
Entrar
RuneTranslate · traduza jogos japoneses de ponta a ponta
EnginesGuiasCompararTexto em imagensEditor de savesModo CheatFAQBaixarPatreonDiscordYouTubePrivacidadeTermosContato
Todos os posts
yu-ris · engine

Como traduzir visual novels YU-RIS para o português

25 de jun. de 2026·6 min de leitura

O RuneTranslate traduz visual novels YU-RIS (raiL-soft) para o português e mais de 30 idiomas — lendo pacotes .ypf e scripts YSTB compilados em TypeScript puro, recuperando a chave XOR de cada script e exportando os scripts traduzidos soltos. Melhor esforço.

O RuneTranslate lê outro motor que há muito tem sido uma barreira para tradutores amadores: o YU-RIS, o motor de scripting Windows da raiL-soft por trás de centenas de visual novels japonesas doujin e comerciais. Se você já abriu uma pasta de jogo YU-RIS, encontrou um diretório pac/ cheio de arquivos .ypf e um ysbin.ypf sem nada legível dentro, e desistiu — é esse motor. O RuneTranslate 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.

A parte honesta primeiro: o suporte ao YU-RIS é recém-construído e ainda não foi verificado em muitos jogos reais. Então, 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, por favor nos avise — mais no final.

O que o motor YU-RIS realmente é

O YU-RIS (às vezes escrito ゆーりす) é um motor de scripting de visual novel japonês da raiL-soft. Um jogo finalizado é um .exe do Windows mais um conjunto de arquivos de pacote .ypf — normalmente em uma pasta pac/ — guardando arte, áudio e scripts. O cenário é compilado em um formato binário chamado YSTB, armazenado como os arquivos .ybn dentro de ysbin.ypf (em caminhos internos como ysbin/yst00000.ybn). Essa combinação de "cenário compilado dentro de um arquivo empacotado" é exatamente o que manteve o grande 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 orientado a código-fonte como o Ren'Py, o YU-RIS esconde seu texto atrás de várias camadas:

  • Tudo mora dentro de pacotes `.ypf`. Os scripts não estão soltos — estão empacotados no contêiner pró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.
  • O cenário é compilado, não texto. Um .ybn é um contêiner binário YSTB dividido em quatro seções (fluxo de instruções, tabela de descritores de argumentos, tabela de strings, números de linha). O japonês fica na tabela de strings, referenciado pelos descritores.
  • Os scripts são criptografados com XOR. As quatro seções de cada YSTB são embaralhadas com uma chave de 4 bytes que varia por jogo. Você precisa recuperá-la antes que qualquer texto fique legível.
  • Nem toda string é diálogo. A tabela de strings também guarda nomes de variáveis, caminhos de assets e operandos de expressão contra os quais o script compara — traduza um e o fluxo quebra silenciosamente.

O efeito líquido: mesmo um leitor fluente precisa descompactar um arquivo proprietário, analisar um binário compilado, quebrar o XOR, e então distinguir diálogo das strings internas do motor — antes que uma única linha seja traduzida. Esse é o trabalho que o RuneTranslate faz por você.

O que o RuneTranslate faz agora

O RuneTranslate cuida de todo o pipeline em TypeScript puro — sem ferramentas externas, sem sidecar em Python, nada para instalar:

  • Lê pacotes `.ypf` diretamente. Ele abre os arquivos internamente, descomprime as entradas e recupera os nomes de arquivo ofuscados — sem GARbro. Já descompactou o jogo você mesmo? Uma pasta ysbin/ solta de scripts .ybn també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 cada linha japonesa, agrupada por arquivo de script.
  • Distingue diálogo de maquinário. Nomes de variáveis, caminhos de assets e operandos de expressão são exibidos mas excluídos por padrão como linhas vermelhas de opt-in, para que você nunca traduza uma string contra a qual a lógica da história compara.
  • Preserva os códigos de controle inline. Códigos de barra invertida (nova linha, cor, ruby) e tags entre colchetes são mascarados atrás de placeholders numéricos antes de o provedor os ver, e então restaurados exatamente.
  • Exporta sem reempacotar. Ele reconstrói cada script traduzido — corrigindo os offsets da tabela de strings para que uma tradução mais longa ou mais curta caiba, e reaplicando a chave XOR — e então escreve o .ybn solto em seu caminho de arquivo original. O YU-RIS prefere um arquivo solto à cópia empacotada, então o jogo simplesmente lê sua tradução — a mesma sobreposição de arquivos soltos dos nossos fluxos de Kirikiri e Artemis.

Japonês → português é o ponto forte, mas você pode mirar em mais de 30 idiomas.

O que você precisa

  • RuneTranslate para Windows — gratuito; todos os motores e provedores estão desbloqueados (o tier gratuito é limitado na velocidade, não nos recursos).
  • Uma pasta de jogo YU-RIS — o diretório com o yu-ris.exe do jogo e seus pacotes .ypf (normalmente em pac/, com os scripts em ysbin.ypf).
  • Um idioma de destino — português, inglês, espanhol, francês, alemão, chinês, e mais de 30 outros.
  • Um provedor. O Google Translate gratuito funciona de imediato; o DeepL tem um tier gratuito; o OpenAI, o Anthropic, um modelo local e qualquer API compatível com OpenAI exigem sua própria chave. Os jogos YU-RIS têm muitos diálogos, então um LLM ou o DeepL lê melhor.

Passo 1: Abra a pasta do jogo

Inicie o RuneTranslate, clique em Novo projeto e aponte-o para o diretório do jogo YU-RIS. A detecção roda automaticamente — quando ele vê um pacote .ypf (ou uma pasta ysbin/ solta de 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 dentro do ysbin.ypf, recupera a chave XOR de cada script e decodifica a tabela de strings Shift-JIS — listando cada linha japonesa no editor, agrupada por arquivo. As strings internas do motor (nomes de variáveis, caminhos de assets, operandos de expressão) são exibidas mas excluídas por padrão, e os códigos de controle inline são mascarados atrás de placeholders numéricos para que o provedor nunca os estrague.

Passo 3: Traduza

Escolha um provedor e rode. Um LLM (OpenAI / Anthropic) é o melhor para a voz dos personagens e o tom, o DeepL é rápido e limpo para narração, e o Google Translate gratuito serve bem para strings curtas de menu e escolhas. Coloque seu elenco no glossário logo de início para que os nomes sejam renderizados de forma idêntica — veja o Glossário 101. Quando terminar, uma passagem opcional com o refinador por IA relê cada linha em contexto e aperta o fraseado engessado e literal que a MT costuma deixar.

Passo 4: Exporte uma cópia pronta para rodar

Clique em Exportar. O RuneTranslate escreve uma cópia traduzida do jogo com cada .ybn reconstruído colocado solto em seu caminho de arquivo original, ao lado dos pacotes .ypf intocados. Não há reempacotamento — o YU-RIS carrega os scripts soltos em preferência aos originais empacotados, então o jogo simplesmente lê suas traduções. Rode-o, e ele joga no seu idioma de destino.

Limitações conhecidas

  • As strings do YU-RIS são Shift-JIS (cp932). Português, inglês e outros destinos representáveis em cp932 exportam de forma limpa. Destinos 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 sobreposição de arquivos soltos é o caminho de carregamento esperado e funciona na maioria dos jogos YU-RIS porque o motor prefere um script solto ao empacotado. No raro título que não honra isso, a exportação pode precisar de ajuste — exatamente o comportamento em jogos reais que ainda estamos confirmando.
  • Texto embutido em arte de imagem — uma tela de título ou botão de menu desenhado como um bitmap — são pixels, não texto de script. Para isso, veja a tradução de texto em imagem.
  • A variante exata de arquivo e script pode diferir entre lançamentos. Sempre verifique na sua cópia específica.

É novíssimo — conte-nos o que quebra

Vale repetir: o suporte ao YU-RIS é uma adição recente e ainda não foi testado em muitos jogos reais. O leitor de .ypf, o parser de YSTB e a recuperação de chave estão construídos e testados unitariamente, mas o motor tem anos de variação por estúdio que nem todas vimos. 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, por favor relate no nosso Discord — o nome do jogo e como ele está empacotado nos ajudam a fortalecê-lo mais rápido.

Baixe o RuneTranslate, aponte-o para aquela VN YU-RIS que você queria ler, e experimente. Para outro motor de VN baseado em arquivos, leia o tutorial de Artemis a seguir.

Leitura relacionada
01

Como traduzir os arquivos .po e .mo de um jogo (gettext)

gettextpomoenginetutorial4 de ago. de 2026 · 7 min
Ler →
02

Como traduzir jogos AliceSoft System (Rance, Evenicle…)

alicesoftranceengine26 de jun. de 2026 · 6 min
Ler →
03

Como traduzir visual novels do motor Artemis para o português

artemisengine23 de jun. de 2026 · 6 min
Ler →

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