Tom Murphy é um hacker norte-americano, formado em ciência da computação, que vez ou outra publica no YouTube experiências com tecnologia que ele desenvolve em casa. Seu último projeto é um dos mais ousados: rodar um emulador de Super Nintendo em um NES.
O Nintendo Entertainment System (NES, ou “Nintendinho” para os fãs brasileiros) foi um console da marca japonesa Nintendo lançado em 1985. Já o Super Nintendo (SNES) veio depois, em 1990, com mais poder de processamento para rodar jogos mais avançados.
A técnica de emulação consiste normalmente em um hardware avançado simulando um hardware antigo para reproduzir um software feito só para ele. São comuns, por exemplo, emuladores de consoles antigos que permitem jogar games clássicos em PCs modernos.
Via de regra, o hardware que vai rodar o emulador precisa ser mais avançado do que o hardware que vai ser emulado. É como um computador dentro de um computador: um precisa ser potente o bastante para executar uma simulação do outro.
Rodar um jogo de SNES, lançado em 1991, num console de 1985, como o NES, seria impossível nesse conceito. É aí que entra o que Tom Murphy chama de “emulação reversa”, que consiste em usar um hardware antigo para simular um hardware mais novo do que ele.
Para fazer isso, Murphy hackeou um cartucho simples de Nintendinho e colocou dentro dele um Raspberry Pi 3, um minicomputador com processador quad-core de 1,2 GHz e 1 GB de RAM, capaz de dar ao console mais poder de processamento do que ele nativamente tem.
Após uma série de “gambiarras” detalhadas neste vídeo, Murphy conseguiu colocar no cartucho o jogo “Super Mario World”, feito para SNES, e conseguiu jogá-lo no NES. O game sofre uma série de limitações gráficas e mecânicas, mas roda sem travar.
As cores exibidas não são as mesmas que se vê num SNES, há um insistente piscar de luzes na imagem e, além disso, não é possível dar um pulo simples com o Mario no jogo, apenas o salto giratório. Estas são as consequências da “gambiarra”.
Mas Murphy diz que a experiência mostra que o conceito de emulação reversa é possível de ser aplicado numa solução funcional, ainda que não tão útil no caso do NES que roda jogos de SNES. Confira o vídeo de demonstração do hack completo abaixo (em inglês).