'Recovered' DOSDoom 0.2

People have lamented that the source for DOSDoom 0.2 has long since been lost. It occurred to me that the ports section includes a port called "PDoom" which is just DOSDoom 0.2 with some added cheat codes and other assorted bits. So I went through the PDoom source and deleted all of the obviously added stuff I could find, resulting in what ought to be pretty close to the original:

http://www.doomworld.com/linguica/dosdoom020.zip

I couldn't compile it to test it or anything because lol at setting up a circa-1997 DOS programming environment, but someone might find this of interest somehow.

1 person likes this

Share this post


Link to post

I'm certain someone around here will be able to do the appropriate testing to make sure it works as required.

Thank you for doing this, Linguica.

Share this post


Link to post

I wish someone would upload a Freedos VM with a robust djgpp setup for this era's code.

Share this post


Link to post

I have a DOS environment available, I will be able to build this.

EDIT: To prevent double post.

I tested it, it does not compile. After fixing some compilation errors (missing quotes, Doom's infamous usage of "close" for a vertical door type which conflicts with unistd.h). It runs the startup sequence but then it crashes. I compiled it with Windows 98 and test it on it, then to be sure I switched to real DOS and got a similar result.

To be sure of things, one would have to make sure PDoom also compiles and runs, if it does then the "reversal" is in error. If PDoom also fails then it would be the environment which has changed enough to break it. So it is possible that this will work with a 1999 DJGPP since it is broken with my 2012 DJGPP.

Here is a picture (which as of this writing has not been uploaded yet):


DOS is a huge pain to use though, needs a better shell.

Share this post


Link to post

People have had trouble compiling Boom 2.02 with recent DJGPP toolchains. There's no surprise that PDoom or DOSDOOM would pose problems too.

FWIW, you can use DJGPP as a cross-compiler from Linux or Windows if you really want a better shell. Or use DJGPP's own port of bash.

Share this post


Link to post

EIP 0x736F6361, lol. In memory: 61 63 6F 73, or in ASCII, "a c o s" - acos. The program called a string literal as a function? I don't wanna know how that happened.

Share this post


Link to post

Randy, would you mind test compiling the code from this commit? https://github.com/Doom-Utils/historic-ports/commit/ce8bbd699f29452edf7d02b912b49146a80144ed -- Can download this in Zip format, too. I hope it works fine; should largely be identical, but it's massively cleaned up from what Lingucia posted, including excising more dead bits of code from PDoom that Ling missed.

(Note for the future: the repository I just linked to can and does get history overwritten for better representation of old code. GitHub will do garbage collection every so often and kill orphaned commits/trees and that might make the above links invalid. Just look for the current DOSDoom branch for the 0.2 commit.)

Share this post


Link to post

I got this to compile somewhat easily with djgpp 3.45 from Windows 10 to MS-DOS.  The allegro support at this point is only for sound effects, and it doesn't seem to query what the card is capable of, or how it initializes.. so it sounds distorted. 

 

In i_sound.c I made the following changes to raw2SAMPLE

 

SAMPLE *raw2SAMPLE(unsigned char *rawdata, int len)
  {
  SAMPLE *spl;

  spl=malloc(sizeof(SAMPLE));
  spl->bits = 8;
  spl->freq = 5512;	//11025;
  spl->len = len/2;

This uses a lower frequency and sets the samples to half the length.  Now at least they sound normal(ish) and don't repeat.

 

Thanks for digging up this old relic it was fun to play with!

3 people like this

Share this post


Link to post

I finally got a VPN to work in China with YouTube, so if anyone wants to see it, here is dosdoom 0.2 on DOSBox.

 

 

 

Chainsaw glitches and all.

 

I'll add the changes to my horrible linuxdoom thing I keep dragging around over at https://sourceforge.net/p/crossdjgppv1/DooM/ci/master/tree/

Although Allegro doesn't like a straight GO32 environment, or GCC 1.27 so I don't see audio without a lot of work... 

1 person likes this

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