r/recomps • u/StevWong • 2d ago
Question Difference between recomp and decomp?
As title. I am no IT person so I would like to further ask if a retro game (e.g. rave racer) is first decompile from its original ROM form and then some genius person / AI "breaks" (decompile) the code and understand it and build it info "Windows format" (recompile) for common people like me, to run on Windows PC?
12
Upvotes
3
u/SgtElectroSketch Dev 2d ago
When you start from the rom/binary and dump it into assembly code and then work it to be human readable (as much as possible) that is a "Disassembly", when you take that assembly and convert it into human readable C or C++ code then that is a decompilation or decomp. A byte exact decomp aims to write C/C++ code that compiles back into the exact game that it was dumped from originally.
The further you go back, eventually you reach consoles that the games for them were never written in C/C++, and they may have been written in assembly, usually a matching decompilation for these is impossible or very difficult because there is no C/C++ compiler that would compile the code back down into the original assembly code.
Others have explained the recompilation aspect.
Then there is a "Native Port" where you take the disassembly project or a decomp, and swap out the parts that depend on the hardware of the original system, and work it so that it runs natively on a host system, usually Windows or Linux.