Ofertas do dia no link de afiliado Amazon!

Diferença entre emulação e recompilação de jogos! Que vantagens ports nativos têm?

Quando alguém fala sobre uma recompilação de um jogo antigo, quase sempre aparece alguém nos comentários perguntando se nunca ouviram falar em emulador. Afinal, para que transformar um jogo de Super Nintendo em um programa de PC se já existe emulador que roda aquilo até numa torradeira com Wi-Fi? A pergunta faz sentido, mas parte de uma confusão importante. Emulação e recompilação podem fazer um jogo antigo funcionar em hardware moderno, só que fazem isso de maneiras bem diferentes.

Um emulador tenta reproduzir o funcionamento do videogame original. No caso de um emulador de SNES, por exemplo, ele precisa reproduzir o comportamento do processador, vídeo, áudio, memória, controles e outros componentes que faziam parte do console. O jogo continua pensando que está dentro de um Super Nintendo, enquanto o PC fica ali nos bastidores fazendo o papel do aparelho inteiro. É por isso que existe um certo custo de processamento. O computador não está simplesmente executando o jogo como executaria um programa comum. Ele precisa reproduzir as regras de outra máquina enquanto o jogo roda dentro delas.

Isso pode ficar ainda mais evidente em consoles mais complexos. Um PC moderno é absurdamente mais poderoso que um Super Nintendo, mas isso não significa que emular o SNES seja simplesmente mandar o processador apertar um botão escrito "SNES". O emulador precisa acompanhar o funcionamento do hardware original em tempo real. Dependendo do sistema e do nível de precisão buscado, isso pode exigir uma quantidade considerável de trabalho do computador.
 
Vamos por partes pra deixar isso mais visível. Quando você coloca uma fita de SNES no console, o jogo foi feito esperando encontrar ali o hardware daquele videogame. Ele sabe que existe um determinado processador, um sistema de áudio, um chip de vídeo, memória e várias outras peças responsáveis por fazer aquelas informações virarem imagens, sons e comandos na TV.

Um PC não possui essas mesmas peças. Mesmo sendo absurdamente mais potente que um Super Nintendo, ele não sabe naturalmente o que fazer com um jogo feito para aquele hardware. É aí que entra o emulador. Ele cria no computador uma espécie de reprodução desses componentes e faz o jogo acreditar que está conversando com o hardware do SNES. Quando o jogo pede alguma coisa ao processador, ao vídeo ou ao áudio, o emulador interpreta aquilo e faz o PC executar uma tarefa equivalente usando o próprio hardware.

É justamente aí que existe um custo extra. O computador não está simplesmente executando o jogo. Ele também precisa ficar reproduzindo o funcionamento do videogame original enquanto o jogo está sendo executado. Em um jogo de SNES, isso é tão leve para um PC moderno que você provavelmente nem percebe. Em consoles mais complexos, porém, essa camada extra pode exigir muito mais processamento.

A recompilação segue outra ideia. Em vez de manter o jogo preso à lógica de executar instruções da máquina original em tempo real, o código do jogo pode ser traduzido para uma forma que o computador moderno consiga executar diretamente. Projetos como os baseados no SNESRecomp fazem isso com jogos de SNES, transformando partes do código do processador do Super Nintendo em código nativo pra outras plataformas, enquanto os componentes do console que ainda são necessários continuam sendo reproduzidos pelo próprio projeto. Ou seja, não é simplesmente pegar o jogo e apertar Ctrl+C, Ctrl+V no Windows. Tem uma bela cirurgia de código acontecendo ali.

É por isso que uma recompilação não precisa existir apenas para fazer um jogo antigo "rodar melhor". Se essa fosse a única vantagem, realmente seria estranho pegar Mega Man X, um jogo 2D de Super Nintendo que roda tranquilamente em praticamente qualquer celular moderno, e gastar uma quantidade absurda de trabalho para transformá-lo no MegaManXSNESRecomp. Ninguém está tentando salvar o mundo porque Mega Man X estava pesado demais para um Galaxy de 2013. O verdadeiro valor está no que essa nova versão permite fazer com o jogo.

Quando o jogo passa a funcionar como um programa nativo para PC, fica muito mais fácil trabalhar diretamente em sua estrutura. Isso abre espaço para resoluções maiores, tela widescreen, taxas de quadros diferentes, controles modernos, mouse e teclado em determinados projetos, melhorias gráficas e, principalmente, alterações que seriam muito mais complicadas de fazer simplesmente dentro de um emulador.

E é aí que a brincadeira fica realmente interessante. Um emulador normalmente procura preservar o comportamento do jogo original. Uma recompilação pode servir como uma base para modificar esse comportamento. O objetivo deixa de ser apenas fazer o videogame acreditar que ainda está no console antigo e passa a ser descobrir até onde dá para empurrar aquele jogo.

Donkey Kong Country 2 é um ótimo exemplo. No Super Nintendo, o modo de dois jogadores coloca os jogadores em uma espécie de revezamento. Um controla um personagem e o outro fica esperando a vez chegar. Já o DKC2Recomp possui uma alteração que transforma esse funcionamento em cooperação simultânea, permitindo que dois jogadores controlem os Kongs ao mesmo tempo. Em vez de simplesmente reproduzir a regra original do cartucho, o projeto mexe no funcionamento do jogo para criar uma experiência que não existia daquela maneira no SNES.

Super Mario World segue uma ideia parecida. O jogo original foi criado para aquele modelo em que Mario e Luigi não ficam correndo juntos pela fase como dois malucos disputando quem pega a próxima moeda. Projetos como o SuperMarioWorldRecomp conseguem abrir espaço para modificações que colocam os dois jogadores na mesma fase simultaneamente, incluindo possibilidades de cooperação local e online. O resultado deixa de ser apenas uma cópia do jogo funcionando em uma máquina diferente e passa a ser uma versão capaz de receber mudanças estruturais.

Isso também explica por que recompilações podem ser tão interessantes para jogos que nunca tiveram qualquer problema de desempenho. Mega Man X não precisa de uma versão recompilada para deixar de engasgar. Donkey Kong Country 2 não precisa de uma versão para PC porque o Super Nintendo não dá conta de desenhar suas fases. Super Mario World também não está chorando por mais potência gráfica. O ganho está na liberdade para mexer no funcionamento deles.

E essa liberdade pode chegar a coisas ainda mais absurdas quando o projeto envolve a reconstrução do código do jogo. Silent Hill é um exemplo particularmente curioso. Silent Hill Decompilation Project conseguiu preservar o funcionamento original enquanto adicionam opções que seriam completamente fora da proposta técnica do PlayStation original, como resolução alta, widescreen, taxas de quadros maiores e diferentes sistemas de câmera. Há inclusive modos de Silent Hill 1 com câmera sobre o ombro e primeira pessoa e também o badalado Silent Hill United, que coloca modo coop online. De repente, aquele Silent Hill que nasceu com câmera fixa no PlayStation pode ser experimentado de uma maneira que seus criadores jamais precisaram colocar no jogo original.

Portanto a comparação entre emulação e recompilação não deveria ser tratada como uma disputa em que uma precisa matar a outra. Emuladores continuam sendo uma maneira fantástica de preservar jogos, reproduzir diferentes consoles e acessar bibliotecas inteiras sem precisar transformar cada jogo em um projeto gigantesco de engenharia reversa. A vantagem é que um bom emulador pode servir para milhares de jogos. Uma recompilação, por outro lado, normalmente exige um trabalho muito mais específico para cada título, mas pode entregar um nível de controle que um emulador tradicional não oferece.

Também não significa que toda recompilação automaticamente vira uma máquina de fazer mods. Isso depende do projeto, de quanto do código foi entendido, das ferramentas criadas pelos desenvolvedores e do quanto a estrutura permite alterações. Mas quando existe uma base bem trabalhada, começam a aparecer possibilidades que justificam todo aquele esforço aparentemente maluco de pegar um jogo que já roda perfeitamente e reconstruí-lo.

Então, quando alguém olha para Mega Man X e pergunta por que alguém se deu ao trabalho de recompilar um jogo 2D que roda até em calculadora, a resposta não está no peso do jogo. O objetivo não é fazer o Mega Man X caber em um computador moderno. Ele já cabe com folga. A questão é ter uma versão em que o código possa ser trabalhado de uma maneira muito mais próxima de um programa moderno, permitindo alterar resolução, câmera, controles, multiplayer, gráficos e outras partes da experiência.

A emulação tenta levar o computador até o videogame antigo. A recompilação tenta levar o jogo antigo para uma estrutura que o computador moderno consiga entender diretamente. E quando essa segunda opção funciona bem, aquela velha pergunta "mas para que fazer isso se existe emulador?" começa a ter uma resposta bem simples. Porque ninguém está fazendo tudo isso apenas para conseguir jogar o jogo. Estão fazendo para descobrir o que esse jogo pode virar quando as limitações do console original deixam de mandar em tudo.
O adblock bloqueia links de afiliados da Amazon como os desse post, então se não estiver aparecendo, é só desativar o adblock.