No momento, você está visualizando 3dsrecomp recompila 19 jogos de Nintendo 3DS para o Zakuro

3dsrecomp recompila 19 jogos de Nintendo 3DS para o Zakuro

  • Autor do post:
  • Última modificação do post:
  • Categoria do post:Emulação / Notícias
  • Tempo de leitura:4 minutos de leitura

3dsrecomp é um recompilador estático geral para jogos de Nintendo 3DS que já foi testado com 19 títulos no Zakuro. Em vez de recompilar um jogo específico, a ferramenta lê o código ARM11 e os módulos CRO de um dump descriptografado, converte o que consegue para C e deixa o Zakuro executar a biblioteca compilada.

O projeto continua experimental. Por isso, o desenvolvedor trata Zakuro como um runtime/emulador HLE em desenvolvimento, e não como uma garantia de que qualquer jogo de 3DS virará automaticamente um port independente.

O desenvolvedor apresenta o 3dsrecomp, o Zakuro e a lista de 19 jogos já testados. Fonte: Reddit / r/decomps.

3dsrecomp transforma código ARM do 3DS em C

O 3dsrecomp procura funções no executável principal e nos módulos CRO carregados durante o jogo. Depois, gera código C para instruções ARM, Thumb e VFP e compila esse material como uma biblioteca usada pelo Zakuro.

Nem tudo precisa ser encontrado de primeira. Quando a análise estática não resolve uma instrução ou função, o Zakuro ainda pode executá-la pelo intérprete. Além disso, o próprio runtime registra esses pontos para ajudar uma recompilação posterior a cobrir mais código.

Persona Q rodando no Zakuro com 3dsrecomp

Persona Q rodando no Zakuro com código recompilado pelo 3dsrecomp. Fonte: fearkov/zakuro.

Nos exemplos técnicos publicados no repositório, Pokémon Y e Persona Q ficam com apenas uma pequena fração das instruções passando pelo intérprete. Assim, o restante vem da biblioteca recompilada antecipadamente.

Zakuro já lista 19 jogos de Nintendo 3DS testados

A lista de compatibilidade atual registra 19 jogos testados com recompilação. Desses, 17 aparecem como Playable, enquanto Monster Hunter XX e Fire Emblem Fates: Special Edition chegam ao jogo, mas ainda apresentam problemas.

Entre os títulos jogáveis estão Pokémon X e Y, Omega Ruby e Alpha Sapphire, Sun, Ultra Sun e Ultra Moon; Super Mario 3D Land; Super Smash Bros. for Nintendo 3DS; Ocarina of Time 3D, Majora’s Mask 3D e A Link Between Worlds; Persona Q; Animal Crossing: New Leaf; Monster Hunter 4 Ultimate; Yo-kai Watch; e Bloodstained: Curse of the Moon.

Majora's Mask 3D rodando no Zakuro com 3dsrecomp

The Legend of Zelda: Majora’s Mask 3D executado no Zakuro. Fonte: fearkov/zakuro.

Ainda assim, essa compatibilidade não significa que todos os jogos estejam perfeitos ou que o desempenho seja sempre melhor que em emuladores mais maduros. Além disso, o desenvolvedor destaca que a parte gráfica do runtime ainda está em evolução e pode continuar sendo um gargalo.

3dsrecomp e Zakuro não são a mesma coisa

O 3dsrecomp faz a recompilação antecipada do código do jogo. Por sua vez, o Zakuro fornece o ambiente que implementa serviços do 3DS, gráficos, áudio, entrada e outras partes necessárias durante a execução. Portanto, o resultado combina código recompilado nativamente com um runtime HLE e um intérprete de fallback.

Por isso, o projeto se diferencia de recompilações feitas especificamente para um único jogo. O Allves Games também acompanha projetos desse outro modelo, como o Conker Recompiled e a recompilação de God of War de PS2.

Zakuro tem builds para Windows e Linux

O README do Zakuro informa builds públicas para Windows e Linux. Assim, o usuário pode abrir um dump descriptografado diretamente ou usar a biblioteca do programa, que oferece um botão de recompilação para preparar cada jogo uma vez.

Para recompilar, ainda é necessário um compilador C, como GCC ou Clang. Além disso, no Windows, a documentação cita GCC via MinGW-w64. Depois da etapa inicial, o Zakuro passa a carregar a biblioteca recompilada e usa o intérprete apenas nos trechos que ficaram de fora.

Por outro lado, o projeto não distribui dados de jogos. Assim, o usuário precisa usar o próprio dump de um jogo que possui legalmente. Além disso, o repositório pede que bibliotecas e programas gerados a partir do código do jogo não sejam redistribuídos.

Projeto ainda é experimental

Por fim, o Zakuro nasceu como um projeto pessoal e segue em desenvolvimento ativo. Por isso, a lista de 19 jogos deve ser lida como um retrato do que foi testado até agora, não como uma lista definitiva de compatibilidade do Nintendo 3DS.

A proposta, porém, é diferente: usar recompilação antecipada como parte de um runtime geral, reduzindo a quantidade de código que precisa ser interpretada durante a execução. À medida que o 3dsrecomp encontra mais funções e o Zakuro amadurece, a cobertura pode crescer sem criar um port separado para cada título.

Fontes: 3dsrecomp no GitHub; Zakuro no GitHub; lista oficial de compatibilidade; anúncio do desenvolvedor no Reddit incorporado acima.