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

is there any source code for 1993's doom alpha and beta build I can look unto?

Recommended Posts

Is there any source code out there for the alphas, prerelease demos we can able to see? please let me know I'd like to contrast the code to its retail version.

Share this post


Link to post

To the best of my knowledge, the only source code available is that release of 1997, the source code of Linux Doom tampered with by Bernd Kreimeier. I would say that, after the purchase of id Software by Zenimax years ago and the departure of John Carmack, the chances of getting after so many years the authentic source code of the DOS releases and prereleases are basically close to zero.

 

In short, DMX was a mistake, as John Carmack stated.

Share this post


Link to post
On 2/4/2020 at 11:32 AM, Diabolución said:

To the best of my knowledge, the only source code available is that release of 1997, the source code of Linux Doom tampered with by Bernd Kreimeier. I would say that, after the purchase of id Software by Zenimax years ago and the departure of John Carmack, the chances of getting after so many years the authentic source code of the DOS releases and prereleases are basically close to zero.

 

In short, DMX was a mistake, as John Carmack stated.

Was the 1997 source code for the retail version ACS?

Share this post


Link to post
25 minutes ago, Angelloproduct said:

Was the 1997 source code for the retail version ACS?

No, and this question betrays a lot of confusion about Doom's source code and everything related to it.

 

ACS is a scripting language for Hexen levels. It's not a programming language for creating games. Doom was written in C (plus some asm), and by the way Hexen was written in C, too.

Share this post


Link to post
On 2/4/2020 at 6:32 PM, Diabolución said:

To the best of my knowledge, the only source code available is that release of 1997, the source code of Linux Doom tampered with by Bernd Kreimeier. I would say that, after the purchase of id Software by Zenimax years ago and the departure of John Carmack, the chances of getting after so many years the authentic source code of the DOS releases and prereleases are basically close to zero.

 

In short, DMX was a mistake, as John Carmack stated.

 

Carmack wouldn't have made a difference here, the issue is the proprietary library made by Radek that was used in Doom, DMX.

 

But even so, so much time has passed that even if he'd open-source it, it probably won't make a difference anymore. The source of the alphas would probably only be useful for historical reasons anyway.

Share this post


Link to post
1 minute ago, seed said:

The source of the alphas would probably only be useful for historical reasons anyway.

Which is why, as Gollum would say, ''we wants it! We wants it, we needs it.''

 

But this is close to impossible considering id and Bethesda still release products using these sources to this very day.

Share this post


Link to post
8 minutes ago, Redneckerz said:

Which is why, as Gollum would say, ''we wants it! We wants it, we needs it.''

 

But this is close to impossible considering id and Bethesda still release products using these sources to this very day.

 

That's not the issue, the problem is whether they don't use proprietary libraries or whatever, as open-sourcing that would be a nigh impossible task. Many people expressed interest in seeing a source release for D2016, and that's not possible precisely because of this.

 

The new Doom re-releases don't use old libraries seen in the original DOS version for a very long time - in fact, apart from the OG DOS version, DMX was never to be seen ever again, none of the console ports or the Unity releases use it, almost all of them are based on the Linux Doom source.

Share this post


Link to post

But Raven released the source code of Heretic and Hexen without any cleaning to get rid of dependencies on DMX. Of course, the DMX library itself was not included. I am not a lawyer, but I guess John Carmack could have used the same strategy.

Share this post


Link to post

You might want to take a look at the MBF source code since Lee Killough did a bunch of work reverse engineering and recreating the game logic of the Press Release Beta. Here's a reasonable starting point.

Share this post


Link to post

We know the DMX library was plugged in quite late since it was not present in the Press Release Beta, so the source code for early pre-release versions of Doom should be legally fine. The reasons why it wasn't released are twofold:

  • They don't want to bother doing it, if the code still exists it'll be on some probably-obsolete data storage medium in a dusty box somewhere, and Doom's source code is already released.
  • These old versions of the source code are probably lost anyway; this was before convenient services like Sourceforge and Github after all.

Share this post


Link to post
1 minute ago, Gez said:

 

  • These old versions of the source code are probably lost anyway; this was before convenient services like Sourceforge and Github after all.

 

Not necessarily, unless they were misplaced or were deemed as unimportant by the developers.

 

Look at Shadow Warrior for instance, the source for many prototypes and alphas was discovered and released along with them 2-3 years ago.

Share this post


Link to post

I thought DMX was present in the PRB, though? It's possible to activate it by providing a specific sound config and a WAD with some sound files I believe, though it's buggy and full of limitations. I should see if I have those files lying around here... I remember hearing whispers that it could be implemented in 0.5, also, but I haven't looked into that closely.

 

One thing of note: All of the alpha executables, except for 0.3, have full symbol tables in them, which in theory should aid in a reverse engineering effort, but no one has been interested enough to step up and do so. There's not a whole lot useful to learn from doing such an effort, beyond getting a look at how the engine evolved, and perhaps some insight onto things like the sectorlist algorithm and why it was so flawed.

Share this post


Link to post

DMX is indeed in the press beta. It was specifically disabled via the default configuration values because of being in a very rough state - all sounds are played from the status bar, instead of from actors, so there's only one sound channel, no proper stereo or attenuation, etc. They didn't want reviewers getting an impression of this as being the intended state for release.

Share this post


Link to post
3 hours ago, seed said:

Look at Shadow Warrior for instance, the source for many prototypes and alphas was discovered and released along with them 2-3 years ago.

"Discovered" may be the key word. A lot of developers don't make conscious effort to save snapshots of code at various points in time; version control being ubiquitous nowadays means that it's preserved just by nature of the tooling.

 

Things being discovered from that era are somewhat likely to be the case of "this floppy disk was mainly my mom's recipes, and also happened to have copied the source tree to it"

Share this post


Link to post
11 hours ago, chungy said:

"Discovered" may be the key word. A lot of developers don't make conscious effort to save snapshots of code at various points in time; version control being ubiquitous nowadays means that it's preserved just by nature of the tooling.

 

Things being discovered from that era are somewhat likely to be the case of "this floppy disk was mainly my mom's recipes, and also happened to have copied the source tree to it"

You would be surprised how much material is simply tossed in for good measure and nobody (at the time) logically considered it important to archive. As would be the case of ZXDoom.

 

But you see this with project releases too. Its often enough under a Mediafire link which might be confusing to some, or a Dropbox link which surely isn't permanent. You can't ofcourse archive everything, but certainly bigger projects need it.

Share this post


Link to post

None of them. A compiler is a one-way-only tool. What you'd need is a decompiler, such as IDA Pro.

 

Look, I don't want to be mean, but the questions you're asking show that you really have no idea what is involved. Reverse-engineering is extremely complex and requires a good grasp of low-level programming. There's stuff I'd like to reverse-engineer but 1) I don't have the budget for good software like IDA Pro and 2) looking at assembly code gives me headaches, so none of my efforts ever yielded anything else than discouragement.

Share this post


Link to post
19 minutes ago, Gez said:

None of them. A compiler is a one-way-only tool. What you'd need is a decompiler, such as IDA Pro.

 

Look, I don't want to be mean, but the questions you're asking show that you really have no idea what is involved. Reverse-engineering is extremely complex and requires a good grasp of low-level programming. There's stuff I'd like to reverse-engineer but 1) I don't have the budget for good software like IDA Pro and 2) looking at assembly code gives me headaches, so none of my efforts ever yielded anything else than discouragement.

Yea sorry if I didn’t  note my lack of reverse engineering skills though I’m taking coding classes for it. The reason why I’m wanted to look at it’s code mainly for a research paper I’m doing.

Share this post


Link to post
Quote

You might want to take a look at the MBF source code since Lee Killough did a bunch of work reverse engineering and recreating the game logic of the Press Release Beta. Here's a reasonable starting point.

Just wondering did killough worked  or set contribution on assessing ID on doom's code? I found a .txt file that included his name

Share this post


Link to post
7 hours ago, Angelloproduct said:

Just wondering did killough worked  or set contribution on assessing ID on doom's code? I found a .txt file that included his name

Why wonder, when there is a Wiki?

Share this post


Link to post
On 2/10/2020 at 10:21 PM, Gez said:

None of them. A compiler is a one-way-only tool. What you'd need is a decompiler, such as IDA Pro.

 

Look, I don't want to be mean, but the questions you're asking show that you really have no idea what is involved. Reverse-engineering is extremely complex and requires a good grasp of low-level programming. There's stuff I'd like to reverse-engineer but 1) I don't have the budget for good software like IDA Pro and 2) looking at assembly code gives me headaches, so none of my efforts ever yielded anything else than discouragement.

 

Ghidra from the (in)famous NSA is a viable alternative to IDA + HexRays nowadays, and it's completely free (both free of charge and also open source). You just have to deal with the fact that you need Java to run it, and it can be a lot slower especially with bigger files. Ghidra's decompiler even works with non-x86/x64 code, unlike HexRays!

 

Doesn't help with 2 though, but just wanted to give a mention to Ghidra if someone interested in this subject happens to stumble upon this thread.

Share this post


Link to post

I'm also interested in this, there are some functionality that was scrapped in the older alphas and betas of Doom, such as the Sierra Hi-Color support and additional rendering modes, that would be nice to add to FastDoom. I've been reverse engineering the COLORS12 and COLORS15 lumps from the prerelease beta, and for now i've discoverd that COLORS15 is using RGB555 pixel format, but i still don't know what format is using COLORS12 (i think COLORS12 is wrong as it should be using RGB444 format, and that's why it isn't used in the alphas/betas at all).

 

Maybe somebody can check my discovery, and if the information is correct add it onto the DoomWiki @Redneckerz

 

colors15.png.c5b03916595bccf9f344b13875d6f846.png

Share this post


Link to post

There's no early source for Doom that I've ever seen, they are probably lost to time. I haven't even seen any of the alpha or beta binaries either, short of a floppy disk that had a then-unreleased beta that ended up being version 0.4 or 0.5.

Share this post


Link to post

While the idea sounds nice, isn't part of the beauty of alphas, betas, in other words "prototypes" seeing the differences in the engine and code of the game compared to the final product? I think it would be more interesting to see the older versions become supported unofficially on an existing port or something along those lines rather than a dedicated port made just to run the prototype builds.

 

Edit: misread this as "is there any source port for 1993's doom alpha and beta build I can look unto?"

 

which would be no, as the code was never released, and many of these were leaked online or posted by Romero years after Doom's release, which in both instances there probably wasn't any source files alongside these files. Id was smarter about that than some companies of the time like Q-Studios (which merged into Monolith) when they left the Blood prototype on a PC they took for repairs and it got leaked, along with the entire source code of that build.

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
×