The original source was released without the sound & network code, as those were under a proprietary license. I'm fine with just commenting that stuff out and having a silent build, for now. The original devs used Watcom C, so I'm hoping OpenWatcom will work, but the bigger problem is they used a proprietary MAKE called Opus Make which was expensive & isn't readily available anymore. I guess I'd have to port it to Wmake at least, but I'm not sure how to go about doing that.
There used to be a free demo of Opus Make available here, but the submission form doesn't work anymore and it looks like the website is long abandoned. If anyone has a copy of the DEMO kicking around, hit me up.
[Note: removed a bunch of stuff about D2X to clarify the thread - D2X was really a Linux/Win32 only port, despite claims otherwise, and setting up the DJGPP/Autoconf environment required to not-build it because it doesn't work anyway is an unholy mess. It'd essentially have to be de-ported to work.]
Honestly, the state of the sources for this game is pretty dire these days, so much stuff has been lost. 🙁
twitch.tv/oldskooljay - playing the obscure, forgotten & weird - most Tuesdays & Thursdays @ 6:30 PM PDT. Bonus streams elsewhen!
^^ thanks! That IS slightly different from the copy I was using - makefiles in different places at least, and an INIT directory that's not present in the other one. Wasn't expecting that. I grabbed all the original releases from the DDN.
Interestingly the Descent *1* source is said to build out-of-the-box (with the proprietary sound & net code already commented out) and uses "GNU (or compatible, such as Microsoft, or Borland) Make utility". I might have been barking up the wrong tree a bit here...
BTW my intention is to put together a "reference" easily-buildable version of the Descent 2 source, with clear build instructions & as few changes as possible, up on Github so that people interested in modding it can do so more easily. The two existing source ports are so far removed from the DOS version they're essentially their own thing these days. Maybe make this into a sort of "Chocolate D2" or MBF-like project.
I'm also archiving every source port I can find now, after seeing how much stuff has fallen off the internet already. The Descent "community" was kinda destroyed by infighting in the early-2000s, and a lot of the original homebrew devs rage quit or moved on & didn't look back, which is why it never had the kind of project continuity that Doom saw. TBF we're lucky to even have the two ports that still exist.
twitch.tv/oldskooljay - playing the obscure, forgotten & weird - most Tuesdays & Thursdays @ 6:30 PM PDT. Bonus streams elsewhen!
I recently went through the doom ports to identify OS compatibility. It's still a WIP though.
SDL 2 broke <XP but this is never mentioned by any of the ports but that's the standard since nothing is ever mentioned ever.
Finding last good DOS version of ports or ports you don't know about.
Tricks like adding 127.0.0.1 to localhost for doomsday port since it crashes trying to contact the internet for a site that no longer exists. wtf is that in there.
Some ports switched to 64bit so have to find the last official 32bit build but would be nice to have the lastest commit binary.
Some ports switched to Vista/7+. (Of course Vista is never mentioned but would likely still work).
I'm sure the next thing will likely be DX12/vulkan only just because and you'll have to dig to find out when that happened and what the last binary was. Arrgh.
I'm debating wether it's worth having a curated site on archive.org and/or a continuosly updated torrent. Don't know if IFS is the better option or not.
I hate having to deal with web interfaces tho, SMB, NFS are so much easier on the backend for changing things.
BTW my intention is to put together a "reference" easily-buildable version of the Descent 2 source, with clear build instructions & as few changes as possible, up on Github so that people interested in modding it can do so more easily. The two existing source ports are so far removed from the DOS version they're essentially their own thing these days. Maybe make this into a sort of "Chocolate D2" or MBF-like project.
Good luck with the project!
I recently went through the doom ports to identify OS compatibility. It's still a WIP though.
An unenviable task. Hope you can follow through on it.
Here is a taste, this folder only contains the latest versions for each OS. The old versions are in a seperate folder so not in this list. The old versions you do see in the list are when I was tracking down what works.
Yeah, I'm kind of doing the same thing, with the intent of dumping the lump of it up on Archive.org. I'm saving copies of webpages & adding notes about where things came from, etc. so it's not completely out of context.
Just for reference here: D1X 1.40 is the last DOS Descent 1 port that had binaries released, although sources for 1.43 are still out there and should still build on DOS with a bit of work. There never was a D2X (or any community version of D2) for DOS with the sound & networking code re-implimented. The last original version of D2X, 0.2.6-PRE2, builds on Linux & Win32, but it's really rough and not really a playable experience. The sources to D1_3DFX were lost when the author quit the scene 🙁 and it was never finished. D1X completely superceded it quickly anyway, but only has software rendering.
(D1X 1.3/1.4 had a ton of improvements over vanilla D1, and is actually what we all used to play on Kali, etc. back when it was current. Most importantly it had a frame cap and "short packets" that reduced lag in netgames on a slow connection a lot. It was pretty stable too.)
After those, the Dxx-Rebirth project took over: Dxx-Rebirth 0.56 is the last version that runs on Win98SE without KernelEX. 0.58 runs with KernelEX and also on 2000/XP. The "current" 0.60 beta 2 builds on XP, but the release binaries are Win7+ due to some compiler flag or other.
There used to be really simple instructions to build 0.60 on XP on the Dxx-Rebirth forum, however, in the span of a few months since I last visited there, the main dev (Zico) "archived" the forum and replaced it with a Discord, shut down the Discord, deleted the forum archive, and "retired" from the project. 15 years of tech support, build instructions, gameplay-altering patches, file format sussing, porting, modding discussion, level editing, etc. flushed down the drain just like that. 10/10 well done.
Most of the other ports around are based on Rebirth - the Amiga AGA one is from Rebirth 0.57, Amiga RTG = Rebirth 0.58, Wii = Rebirth 0.57, and I'm not sure on the Xbox port (xDescent) yet - I'm still trying to track the source code for that down. It dates to 2006 so probably Rebirth 0.56. There was also an Amiga *OCS* port in progress on on the Rebirth forum, but who knows what happened to that now.
TBH Rebirth is looking pretty deadly these days, there's some super low-level activity on its Github but it doesn't seem like much is happening anymore. D2X-XL hasn't been updated since 2015 and is a bit of a buggy mess with a lot of feature creep, but at least the (only) dev is still active - he just updated his version of the level editor.
twitch.tv/oldskooljay - playing the obscure, forgotten & weird - most Tuesdays & Thursdays @ 6:30 PM PDT. Bonus streams elsewhen!
Thanks! I have J Stanley's builds & the 1.43 source from there. (I think you might have pointed those out to me ages ago in a thread on here...) What I don't have are sources for any of the <=1.40 builds that were hosted on Warpcore's CVS, which is long gone. I might have some snapshots on my backup CD-Rs, but that's gonna be a bunch of work to go through. I definitely have a lot of pre-1.40 binary packages saved though.
I'll grab those XL builds too, it looks like they're earlier than anything on Dieter's official sourceforge repo. I'm gonna have to do more digging with XL, keeping up with it was always a bit of a moving target.
twitch.tv/oldskooljay - playing the obscure, forgotten & weird - most Tuesdays & Thursdays @ 6:30 PM PDT. Bonus streams elsewhen!
^^ oops, I must have gotten it crossed up with one of the other ports I was looking at. I had about 20 readmes open when I wrote that...
That's actually interesting, not many projects started with the Mac build AFAIK. I guess there was some PPC optimization or native assembly code in there?
Oh man, how did you track that down? I wasn't even aware of that FTP - great find! I have some downloading to do...
Here's something I dug up from my own archives today - a direct3D port! Dated 18.07.1999 (archive is original.) It's fairly glitchy, but it does play on my Win7 rig. I might have the source for this seeing as I found it in my old email attachments from the developer's mailing list - still hunting for that. J Stanley's 1.43 OGL build is in a much more playable state though.
^^ D1X 1.43 OGL running with the "radar" (shift-F3) - haven't seen that in a while! I remember trying really hard to get some advantage out of that radar in net games, but it just wasn't very useful in practice. 😜
twitch.tv/oldskooljay - playing the obscure, forgotten & weird - most Tuesdays & Thursdays @ 6:30 PM PDT. Bonus streams elsewhen!
I think the last version of DXX-Rebirth i've tried that worked on Win98 was 0.57 but I forget if I kernelex'd. I at least did run it with a PowerVR PCX2 where the framerate was playable and everything looked fine except for the additive-blended screen tinting (which, trivially, could be changed to a blend with some color normalization for a similar effect).
That's actually interesting, not many projects started with the Mac build AFAIK. I guess there was some PPC optimization or native assembly code in there?
It had endian fix-ups in a lot of places (since the mac was big-endian), a few other bug-fixes (it was newer than the DOS source), was hard-coded to use 640x480 and some other mac-specific stuff like CD audio instead of midi.
Most of the removed DOS stuff was still there, just #ifdef'd out.
(DOS D1 also supported 640x480 if you used the "-640x480" command line option.)
Yeah, so I spent a couple hours that I SHOULD have spent doing something else, making ... this thing. I'm sure it's full of inaccuracies and is missing a ton of stuff, like all the Android/PocketPC ports and handheld consoles. Consider it a super-rough draught. I tried to go by file dates inside archives & dates written in readmes if I could, and some of the links are pretty dubious. I don't actually know how any of the early Amiga ports fit together or whether they were based off the Mac source at all.
If any of you have ideas on how to display all this in a way that isn't an unholy abomination (and includes some space for additional info, like "builds on...", "binaries available for...", etc.), I'd love to hear it. Alternately, if you'd rather become the maintainer of this catastrophic mess, be my guest. 😜 I need to think about something else for a while.
Here's the source file which you can open on app.diagrams.net, if you're really bored:
Ok, back to actually compiling this time. I'm concentrating on the Descent 1 source, since it was said to compile out of the box. Well, it doesn't quite, and I'm really not sure what's going wrong.
I'm using:
OpenWatcom 1.9
OpenWatcom's Wmake with the /ms switch <-- I don't think OpusMake is required for this version, see below
MASM 6.11 patched to 6.11D
I'm using the OFFICIAL source release from Parallax, which supposedly contains Kevin Bentley's modifications to make it build. Just to make things easier, I've attahced it here (note: self-extracting RAR file. You can just open it with 7zip or whatever if you don't want to run the exe.)
In order to start building, I had to:
- edit D1VARS.BAT and change everything to the appropriate location - actually I REMed most of this out as I set all the variables for Watcom/MASM in autoexec.bat.
- edit MAKED1.BAT and change LIBDIR to the appropriate location
- change all instances of 'make' in MAKED1.BAT to 'wmake /ms' (if you don't use the /ms switch, you get errors about trailing \es)
Note: D1VARS.bat has some references to MSVC - that's not listed as a requirement in the official build instructions, and I don't have it installed, so I commented those out.
For the record, here's my environment just before I start the build - click to expand:
Note that Watcom is installed in C:\PROG\WATCOM and the source tree is in E:\D1SRCPC (which is a RAM drive because nobody wants to sit around waiting for stuff to compile on an old 20GB ATA33 spinny thing anymore.)
MAKED1.BAT goes through the source directories one-by-one, in a specific order, and builds them. It does not appear to use the MAKEFILE in the source root dir, which looks to be OpusMake format and references files that aren't present in this distribution (Makefile.def <-- this is in the D2 source though.)
Here's the result:
INCLUDES - builds fine
FIX - builds fine
CFILE - builds fine
2D - I get a bunch of 'inconsistent return type' errors in CANVAS.C
BIOS - pointer type mismatches (warning) in KEY.C, but 'inconsistent return type' error in MOUSE.C
IFF - a bunch of warnings, but two 'type of parameter ... does not agree with previous definition' errors in IFF.C
DIV - builds
MEM - builds
VECMAT - builds
3D - a whole bunch of warnings in a ton of files, mostly inconsequential (a lot about line formatting), but then Wmake/Wlib quits on 3D.LIB with "Stub exec failed: DOS4GW - Arg list too big". I have no idea how to even start solving this.
TEXMAP - I get the same Wlib error in Texmap.lib
UI - A few warnings here but it seems to build
Main\EDITOR - "Type of parameter 1 does not agree with previous definition" in MED.C
MAIN - I get a ton of warnings in a bunch of files, but then it fails at "Error! E1062: Inconsistent return type for function 'digi_set_max_channels'" in DIGI.C
(I'm mostly going into so much detail here to document my process for future reference.)
I've attached all the errors and logs my build is generating right now, along with the MAKED1.BAT and D1VARS.BAT I'm using. Note that you'd have to run D1VARS.BAT manually if you try this yourself as I commented it out in MAKED1.BAT.
If anyone has an idea of what's going wrong here, especially the WLIB errors in 3D/ and TEXMAP/ which I have NO idea how to solve, I'd be really greatful for any help! Remeber this was the version of the code that was supposed to build out of the box. If I can get this going, I think I'd be about halfway to getting Descent 2 to build as it looks like most of the problems to be solved are similar.
twitch.tv/oldskooljay - playing the obscure, forgotten & weird - most Tuesdays & Thursdays @ 6:30 PM PDT. Bonus streams elsewhen!
Oh yeah I meant to post this earlier but raising a little more source port awareness. Not exactly the OG DOS thing but has more vanilla preservey goals, and comes from a doom community member so the term Chocolate isn't misused: