Engine suportado · AliceSoft System
O engine System interno da AliceSoft impulsiona um dos maiores catálogos dos jogos de PC japoneses — a série Rance inteira, Evenicle, Daiakuji, os jogos Toushin Toshi e décadas de lançamentos. Na verdade são dois engines sob uma marca: os títulos clássicos rodam no System 3.x (um interpretador alice.exe / System39.exe com um índice System39.ain e arquivos .ald), enquanto os títulos modernos rodam no System 4 (um interpretador System40.exe com uma imagem de programa .ain por jogo e arquivos .ald / .afa). O RuneTranslate agora lê os dois. Ele abre os containers .ald (Alice Linked Data) e .afa (Alice File Archive) em TypeScript puro — sem GARbro, sem ferramentas externas, sem sidecar — e depois vai atrás do texto onde ele de fato mora. No System 3.x, o diálogo visível ao jogador não está nos cenários .SCO compilados: esses apenas referenciam cada mensagem por número, e as strings em si ficam na seção MSGI do System39.ain, levemente ofuscadas. O RuneTranslate desofusca essa seção, lista cada mensagem e, na exportação, a reescreve no lugar — byte a byte idêntico quando você não mudou nada. No System 4, o .ain é uma imagem de programa compilado inteira envolvida em um de dois containers — um arquivo AI2 comprimido em zlib ou um totalmente criptografado com MT19937 — e o RuneTranslate desembrulha os dois, percorre as seções do programa e extrai os pools de mensagem e de string para tradução. Como o bytecode do jogo aponta para cada linha por índice em vez de por offset de byte, sua tradução pode ter qualquer tamanho e as referências ainda se alinham. Na exportação ele reempacota o container original e grava o .ain traduzido solto ao lado do jogo, então o interpretador carrega sua versão. Este engine ainda está sendo verificado em jogos reais, então teste a build exportada antes de redistribuir.
A série Rance e o catálogo mais amplo da AliceSoft rodam com um enorme elenco recorrente e uma teia densa de nomes de lugares, skills e termos de facção ao longo de dezenas de milhares de linhas. A tradução automática vai romanizar o mesmo nome de três formas diferentes. Coloque seus personagens, locais e termos recorrentes no glossário logo de início, para que cada linha os renderize de forma idêntica da primeira à última cena. Glossário 101 →
Aponte o RuneTranslate para o diretório do jogo — a pasta com o interpretador do jogo (alice.exe / System39.exe para System 3.x, ou System40.exe para System 4), seu System39.ain ou .ain por jogo, e os arquivos .ald / .afa. A detecção do engine reconhece o layout da AliceSoft automaticamente e informa qual versão do System é; sua pasta original nunca é modificada.
O RuneTranslate abre os arquivos .ald / .afa em TypeScript puro. Para um jogo System 3.x ele desofusca a seção de mensagens MSGI do System39.ain e lista cada linha. Para um jogo System 4 ele desembrulha o container .ain (AI2 comprimido em zlib ou criptografado com MT19937), percorre a imagem de programa e extrai o pool de mensagens (diálogo visível ao jogador) mais o pool de strings. Strings de código — especificadores de formato, texto de debug, identificadores — são exibidas mas excluídas por padrão para que você traduza só o que o jogador vê.
Esses são jogos cheios de diálogo e sensíveis ao tom, então um LLM (OpenAI GPT-4o / Anthropic Claude) ou o DeepL costuma ler melhor; o Google Translate grátis ou um modelo local (Ollama / LM Studio) cobre strings curtas de menu e nomes de itens, e você pode apontar o provedor compatível com OpenAI para o OpenRouter ou NanoGPT. Uma segunda passada opcional do AI-refiner aperta o fraseado literal.
O texto da AliceSoft é Shift-JIS (cp932). O RuneTranslate normaliza cada tradução antes de gravá-la de volta — convertendo aspas tipográficas, travessões, reticências e latim acentuado para ASCII simples — para que um glifo que falte na fonte do jogo nunca vire silenciosamente um “?”. Inglês e outros alvos representáveis em cp932 exportam de forma limpa.
Na exportação, o RuneTranslate copia o jogo e grava o .ain traduzido de volta: para System 3.x ele reescreve a seção MSGI no lugar; para System 4 ele reconstrói os pools de mensagem / string editados e reempacota o container original (zlib ou criptografado). O .ain traduzido é colocado solto ao lado do jogo, então o interpretador carrega sua versão. Rode a cópia exportada e ela roda no seu idioma.