Auf YouTube findest du die angesagtesten Videos und Tracks. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder gleich der ganzen Welt teilen.
The tldw is they made some bad/odd decisions that made this decomp a lot faster then other projects which he goes over.
Sure. So most languages, like C, are compiled from human readable source code into machine readable instructions. Think an exe file on windows. Decompiling is taking that machine code and looking at what it does, and rewriting it as source code. This lets you understand how the game works better, and makes mods, ports, and other improvements a lot easier then trying to edit the machine code directly. It doesn’t really impact emulation afaik.
At least as good as I can explain it, I definitely can’t explain interpreted vs compiled languages very well
Compilation is a very “lossy” process, all the information in the source code that exists purely for the benefit of humans (like variable names and intuitive instructions like “do this X times”) simply does not exist anymore in the machine code. It’s all replaced by a huge list of numbers and single-file instructions for the benefit of the computer, we have to rediscover their purpose from lots of experimentation and context clues, give them intuitive names and structure, etc.
This is true, but as someone who’s done basic decompiling, the biggest annoyance I had was compiler optimisations. Some loops will be expanded into 70 lines, functions will be severely limited in output/ input with types I don’t understand, and some basic procedural code gets split into 100 different 2 line functions.
These are just all sensible changes for optimal processing, but the whole human readability of it is gone.
It’s like someone went through an essay and replaced every word with the shortest synonym from a thesaurus. It still technically correct, technically makes sense, but it’s incredibly harder to parse with my human brain.
Sure. So most languages, like C, are compiled from human readable source code into machine readable instructions. Think an exe file on windows. Decompiling is taking that machine code and looking at what it does, and rewriting it as source code. This lets you understand how the game works better, and makes mods, ports, and other improvements a lot easier then trying to edit the machine code directly. It doesn’t really impact emulation afaik.
At least as good as I can explain it, I definitely can’t explain interpreted vs compiled languages very well
Thank you for the explanation!
I always wondered why the translation from code to program wasn’t easily reversible. That never made sense to me.
Compilation is a very “lossy” process, all the information in the source code that exists purely for the benefit of humans (like variable names and intuitive instructions like “do this X times”) simply does not exist anymore in the machine code. It’s all replaced by a huge list of numbers and single-file instructions for the benefit of the computer, we have to rediscover their purpose from lots of experimentation and context clues, give them intuitive names and structure, etc.
This is true, but as someone who’s done basic decompiling, the biggest annoyance I had was compiler optimisations. Some loops will be expanded into 70 lines, functions will be severely limited in output/ input with types I don’t understand, and some basic procedural code gets split into 100 different 2 line functions.
These are just all sensible changes for optimal processing, but the whole human readability of it is gone.
It’s like someone went through an essay and replaced every word with the shortest synonym from a thesaurus. It still technically correct, technically makes sense, but it’s incredibly harder to parse with my human brain.