Hacker News new | ask | show | jobs
by ageitgey 1231 days ago
When you re-write a SNES assembly game in C, you are only rewriting the code of the game itself. To make it run, you also have to provide an implementation of the CPU, Video chips, RAM layout, etc, of the SNES as a software library for the C code to call. So even if the game is no longer "emulated" because nothing is emulating the assembly instructions at runtime, it is still "simulated" in the sense that you are providing library calls that mimic what the original hardware did when the code ran.

What they are saying is that they can run their own C code along side the original assembly inside their own virtual SNES and compare the memory and register state after each operation. They aren't saying their code checks against a physical SNES. They are saying the virtual system state after running their C code in their virtual SNES matches the state after the original ASM code runs in their virtual SNES.

None of this is to minimize the work. It is a crazy difficult/obsessive project to pull off.

1 comments

Ah see now. They're virtualizing the snes hardware, not cross-compiling.
Yes they decompiled the original cartridge, rewrote all of the assembly instructions in C, and then wrote an SNES emulator to run those instructions natively.