logoalt Hacker News

ndiddytoday at 12:25 AM0 repliesview on HN

It's basically the same as emulation as long as the recompiled code doesn't get distributed (which this project doesn't do AFAIK). Functionally the only difference between a "recomp" and traditional console emulation is that the assembly code that the CPU runs is translated to C then compiled to native code, rather than being interpreted or JIT compiled at runtime. Traditionally recompilation was mainly used when porting games to platforms where the emulation overhead would have been too much, like if you were making a GBA port of a Sega Genesis game. With these enhanced ports, I guess the idea is that if you're making a game specific "emulator" anyway, you might as well recompile the code and get rid of the overhead of interpretation.

Note that this isn't the same as a "decomp" where the goal is to make readable source code that resembles something that the original developers would have worked with. A "recomp" simply translates the assembly instructions to C. You end up with "assembly code but in C" rather than idiomatic C code.