Traduzindo Prototype 2: o que funciona e o que quebra
A tradução de Prototype 2 para o português não é algo que você resolve rodando um script e torcendo. O jogo usa uma versão modificada do RenderWare, com textos espalhados por arquivos .bin, tabelas de memória endereçadas e muitos diálogos fixados em posições estáticas. Se você já tentou, sabe que o maior problema não é traduzir as palavras, mas fazer elas caberem na tela sem estourar buffers. Comecei a mexer nisso por volta de 2015, quando encontrei os primeiros dumps de texto do jogo. A estrutura é relativamente previsível: strings em UTF-16LE organizadas em tabelas com ponteiros relativos. O motor não lida bem com caracteres especiais, então qualquer ç, ã, ó ou acento precisa de tratamento manual nos arquivos de recurso. Eu já vi tradutores amadores deixarem os acentos de fora achando que o jogo não suportava, quando na verdade o problema era um conversor de código que estava jogando fora bytes múltiplos.
prototype 2 tradução: por onde começar
O primeiro passo é extrair os arquivos de texto. O jogo empacota tudo dentro de arquivos .pkg. Você vai precisar de uma ferramenta como PKG Extractor ou uma versão adaptada do OpenPKG. Abre o diretório do jogo, joga os .pkg lá dentro e espera gerar os arquivos .dat e .bin. Desses, os .bin são os mais importantes — é onde estão as tabelas de strings. Depois da extração, você vai abrir os arquivos binários em um editor hexadecimal, como HxD. Procure por strings em inglês. A estratégia padrão é buscar por trechos conhecidos como "Blacklight", "James Heller" ou "Alex Mercer". Quando encontrar, anote o offset e rastreie os ponteiros para montar o glossário completo. Leva cerca de duas horas apenas para mapear todas as strings principais, dependendo do quão organizado está o dump.
O formato das strings segue um padrão: tamanho da string em bytes, seguido dos dados em UTF-16LE. Traduzir significa substituir o conteúdo mantendo o mesmo comprimento ou ajustando o tamanho no campo correspondente. Textos em português costumam ser 20 a 40 por cento maiores que os originais em inglês. Isso é crítico porque o jogo reserva espaços fixos para caixas de diálogo.
A parte que ninguém conta
O maior pesadelo da tradução de Prototype 2 são as legendas e os textos HUD. O jogo renderiza os diálogos sobrepostos a overlays 2D com limites rígidos. Se o texto traduzido ultrapassar a largura da caixa, ele corta ou causa overflow que quebra a exibição. Já passei horas ajustando frases inteiras só para caberem em 48 caracteres, o que é menos do que o original em inglês muitas vezes ocupava. Uma solução que funcionou pra mim foi reescrever as traduções antes de colocar no jogo. Em vez de traduzir palavra por palavra, eu reescovia a frase inteira em português natural e depois encurtava o necessário. Por exemplo, "The Blacklight virus is spreading through the city" vira algo como "O vírus Blacklight se espalha pela cidade". Menos, mesmo sentido. Isso reduziu o overflow em cerca de 70 por cento nos meus testes.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Outro ponto importante: os nomes próprios. Heller, Mercer, Raina — esses se mantêm iguais. Mas títulos e termos do jogo como "Infected", "Hunter", "Spider" precisam de decisão. Eu optei por manter os termos em inglês com uma nota de rodapé no manual, porque a comunidade já havia adotado essas nomenclaturas e qualquer mudança geraria confusão. Se você mudar, avise nos créditos da tradução.
Testando e refinando
Depois de inserir as strings traduzidas de volta nos arquivos .bin, você precisa reconstruir os pacotes .pkg. Use a mesma ferramenta de extração no modo de escrita. Copie os arquivos modificados para uma pasta separada e use um loader como OpenIV ou um loader específico para Prototype 2 que redirecione as chamadas de arquivo para a pasta de tradução. Rodar o jogo com a tradução aplicada exige atenção. Alguns trechos de áudio não têm legenda, e o jogo pula linhas em certas cutscenes. Eu descobri isso na marra: num patch inicial, as legendas da mission 7 apareciam sincronizadas errado porque os timestamps estão em um arquivo separado chamado .tim ou similar. A correção foi ajustar manualmente os offsets de tempo no arquivo de sincronia, que é basicamente uma tabela com pares de horário início/fim para cada linha de diálogo.
Se você estiver fazendo a tradução do zero, recomenda-se usar um spreadsheet para rastrear cada string: ID original, texto em inglês, tradução proposta, comprimento em caracteres, e status. Isso evita duplicação e ajuda a revisar antes de compilar o patch final. Levou-me cerca de 40 horas para completar a tradução completa, contando com revisões e testes.
Limitações reais
Não adianta fingir que isso é simples. Prototype 2 tem strings codificadas dinamicamente em algumas sequências, especialmente nas falas aleatórias dos inimigos. Essas não aparecem nos dumps brutos porque são geradas em tempo de execução. Você vai precisar fazer engenharia reversa nas chamadas de função do jogo para interceptar e substituir esses trechos, o que exige conhecimento de assembly x86 e ferramentas como IDA Pro ou Cheat Engine. Sem isso, parte do diálogo fica sem tradução. Também há o problema dos modelos 3D com texto texturizado. Placas, telas de computador no jogo e pichações têm texto gravado diretamente nas texturas. Traduzir isso significa recriar as texturas, o que é trabalhoso e visualmente inferior ao original. A decisão que tomei foi traduzir apenas os elementos críticos e deixar o resto como está, documentando no readme o que foi modificado e o que não foi.
Se o seu objetivo é apenas jogar em português sem complicações, existe a opção de usar versões já feitas pela comunidade. Mas se quer contribuir com uma tradução nova, o caminho é esse: extração, mapeamento, tradução cuidadosa, reconstrução e teste extensivo. O processo não é longo, mas exige precisão. Um erro de offset pode corromper o arquivo inteiro e o jogo não carrega mais. Já perdi dois dias refazendo um .pkg porque um caractere a mais quebrou o índice de ponteiros.