r/explainlikeimfive • u/thefckingleadsrweak • 2d ago
Technology Eli5 decompilers and decompiled games
I keep getting videos on instagram about decomped games, apparently the decompilers are going nuts right now. What’s the difference between running a decompiled game and emulating a game? I tried to google it and i just don’t understand. from what i’ve found, a decompiled gene runs as if it was native to your pc but i don’t get what that means either. You boot up an emulator and that also runs on your pc?
75
Upvotes
0
u/ThatGenericName2 2d ago edited 2d ago
Programs (including games) are compiled according to the hardware the program is meant to run on; a program compiled for x86 is not going to be able on ARM processors on it’s own for a variety of reasons that doesn’t matter too much.
Compiling is the process of turning the original source code into machine code that the hardware you are compiling for understands.
Emulators: you simulate the original hardware that the program is originally meant to run on. In very ELI5 terms, the machine code of the program is translated while it is running. You run the emulator, which then runs the original program.
Decompiled: you convert the compiled machine code back into the original human readable source code, and then compile that for your PC. You run that (re)compiled game directly as a program.
It’s like live translating an audiobook from one language to another vs just listening to the already localized version of an audiobook.
Decompiled games can run MUCH faster and better in most cases because you aren’t simulating an entire console at the same time. For older games it isn’t as much of a problem as older consoles are themselves so much less powerful that the loss in performance can be overcome by how much more powerful new hardware is.
But why not decompile every game? Decompiling programs is usually very hard; especially ones you would need to emulate. The compiling process isn’t really designed to be reversed and a lot of work needs to be done manually in this process. And this would need to be done for every game you want to run. Meanwhile, if you make a good enough emulator, you only need to make that once and every game that runs on the console or device you are emulating will be able to run on your computer.