A gente procura se manter fora do assunto videogames, pois nossa raison d’être são os computadores. Clássicos. (Menos o seu PC, que é velho.) Mas volta e meia acontece algo no universo videogamístico que a gente simplesmente tem que mencionar.
E o que foi feito aqui, repetindo, não é um emulador nem um remake. Foi algo várias ordens de magnitude mais heavy metal. Veja abaixo:
http://www.youtube.com/watch?v=Wn32zePbFpc
O que Andrew Kelley fez (tentando explicar de maneira simplificada) foi disassemblar o código 6502 do jogo, e depois recompilá-lo nativamente para o Linux usando o LLVM e o Clang. Detalhe: tudo automaticamente!
Veja os detalhes sórdidos aqui. O processo tem limitações, claro. Só funciona com cartuchos simples, sem mumunhas internas tipo mapeador de memória. E a inteligência artificial do bicho monstro não consegue lidar com certos truques de programação. Mas convenhamos, pela mãe do guarda!
(BR-Linux)
IMPRESSIVE!
Lá vou eu ser o chato de novo, mas…
Não é novidade nem tem nada de mais fazer isso. Um monte de emuladores já fazem, internamente, conversão de assembly da máquina emulada para o assembly do host, inclusive usando a LLVM, e melhor, dinamicamente, ao invés da maneira estática (se fizer dinamicamente você consegue inclusive lidar com várias das limitações nas quais o Andrew Kelley esbarrou).
Por exemplo, veja essa dissertação de mestrado de 2010 sobre usar LLVM para recompilação dinâmica (just in time) para emuladores:
http://www.llvm.org/pubs/2010-01-Wennborg-Thesis.html