The source code is a human-readable code that contains a lot of useful information that explain how the game is supposed to work. It makes it much easier to change the game somehow, including porting the game to a different system, if you have it. This is what is lost.
The game on the disk is a code written for machine to read. It loses a lot of useful information, and contain just enough information for the machine to run. The problem is further exacerbated if obfuscation is used: method that make the code still understandable to the machine but very hard for human. Many game companies use such method to combat pirates and cheaters.
For example, programmers can write something like “x is a number that store the x-coordinate for the player character” and this will be completely missing in the machine code. The machine don’t need to know what x does, it only need to know what to do to x. It won’t even know the name “x”.
Emulators don’t need the source code. They effectively allow one machine to pretend to be another machine. All they have to do is to read the machine code and do what the machine code said to do.
Modders and speedrunners often don’t need to see the code either. Speedrunners might only need a very small portion of the code, and modders, depending on games, might not need to know anything at all. It’s a lot easier to just look at a small part of the machine code and figure out what that part does, than to examine the entire code at once.
Latest Answers