Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Superluigieth1

Could you get the Doom source code out of the executable?

Recommended Posts

I was wondering if you could get the original Doom source code out of the executable itself. I was wondering, because you could get the strings and the basic AI out of DeHackEd. If you could do that, you could most likely get the source out of there. Any thoughts?

Share this post


Link to post

No, you can never get the source code out of an executable (exceptions: quines and interpreted or JIT programs such as Unix shell scripts). You'll lose stuff like variable names, function names (usually), comments, #ifdef'ed out code, whether a constant value was #defined or not, etc.

You can, however, if you are good at reverse-engineering and have adequate tools, get all the logic and with efforts and patience recreate source code that is functionally equivalent.

Share this post


Link to post

Interesting. According to this website, the reason Another World's reverse engineering (as well as its "easy" porting to many platforms, at the time) was so successful was because the game's logic and cinematic data was based on its own VM (!) to begin with, with very little "heavy" binary stuff.

You could say it was a more sophisticated version of the Sierra or Lucasarts/Lucasfilms interpreted VMs. Unfortunately (?), Doom is more oldschool than that, but this approach was later (partially) used in the Quake series and Doom 3.

Share this post


Link to post

What is the point of this thread? We have the source code of Doom!

Share this post


Link to post

The DOOM pre-beta has complete Watcom debugging information in it, including the names of every single function and variable in the order they are defined in the binary code.

If this had been known when it was released in '94 or '95, while not having the source code or symbols for the release version, we'd have at least had a much better understanding of some of the internals of the engine ;)

id could have had all their hard work stolen by unscrupulous people too, so it's a good thing for them.

Share this post


Link to post

Of course it also has to be said that reverse-engineering a binary into source is exceedingly hard if you got no reference.

Back in the day several people did some reverse-engineering of Strife.exe, but just having the Doom source and recognizing some patterns in the code and placing descriptive labels on them immensely helped to get to the desired information.

Share this post


Link to post

Grah beat me.

Strife.exe's source code developed just like that.

Well maybe the same can be done for Doom, since the Linux source code is availabe.
Doesn't mean it will not be a pain in the ass.

Share this post


Link to post

does anybody tried to contact Bernd Kreimeier himself? or anybody involved in the beginning of doom legacy? I heard they asked for original source from carmack himself

Share this post


Link to post

Yeah, we do have the Doom Source code but it's no secret that it's missing a hair or two of functionality from what DOOM.EXE actually does, for various reasons. In 99.999% of cases it's probably good enough. If you really want that 6-th "nine" however, that's another matter. Trouble is, the few that do know about those small differences, have chosen or are bound not to speak.

For example, the original Boom team also supposedly had access to some "insider information" not present in the Linux Doom release, but I don't know if everything they sneaked in is traceable with comments or SVN changes. I wonder if anybody really bothered checking the original Boom vs Linux Doom, and found out what could have sneaked in.

I'm wondering: since Romero has released all those goodies, including the SOURCE CODE to the infamous DMX sound library (which was what prevented a full release all those years), what's preventing him or anyone else with access to THE Source Code, from releasing it? Obviously, DMX (or at least some of its versions) is not a problem anymore...

Share this post


Link to post
Maes said:

what's preventing him or anyone else with access to THE Source Code, from releasing it? Obviously, DMX (or at least some of its versions) is not a problem anymore...


it wasn't really a problem for raven to release their sources

Share this post


Link to post
ABRACADABRA said:

it wasn't really a problem for raven to release their sources

Technically, from a legal POV, it could have been. The DMX headers all state that the API is confidential and that the agreement states it cannot be disclosed. That would mean such trivial details as function names and signatures, according to some recent awful court rulings. So if Radek wanted to pick a bone with Raven over it, he could within his legal rights. But, since Raven belongs to Activision now, they have a thousand angry lawyers who would descend upon him like bees; I doubt his recovery would be worth what he'd spend fending them off, and then the entire case might get tossed just on the finding that Radek cannot demonstrate any real and actual loss from the disclosure of a 20 year old API for an OS that nobody runs or - more importantly - develops games for any more.

Share this post


Link to post

I know there are some differences in the screen drawing mode which makes source ports perform worse in DOS, correct?

Other than that, Chocolate Doom's development has resulted in all weird edge cases being researched and emulated perfectly, or am I missing something.

Other than the DOS port problems, what could be gained from the 1.9 source? The executable itself is runnable through a high degree of emulation and always will be.

Share this post


Link to post
Maes said:

I'm wondering: since Romero has released all those goodies, including the SOURCE CODE to the infamous DMX sound library (which was what prevented a full release all those years), what's preventing him or anyone else with access to THE Source Code, from releasing it? Obviously, DMX (or at least some of its versions) is not a problem anymore...

Where is the DMX source code? I can't find it with Google.

Share this post


Link to post
Maes said:

For example, the original Boom team also supposedly had access to some "insider information" not present in the Linux Doom release, but I don't know if everything they sneaked in is traceable with comments or SVN changes. I wonder if anybody really bothered checking the original Boom vs Linux Doom, and found out what could have sneaked in.

Besides that Boom predates SVN (and AFAIK nobody has the CVS tree used for it), it would be pretty easy to make that comparison yourself: https://github.com/Doom-Utils/historic-ports/commits/boom

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×