VOGONS


First post, by xjas

User metadata
Rank l33t
Rank
l33t

Have any of you guys managed to make a working DOS build of ANY of the versions of Descent 2 that are out there? I'm not having any luck.

Source code in question (from the D2X project page, which, remarkably, is still up.)

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!

Reply 1 of 17, by akula65

User metadata
Rank Oldbie
Rank
Oldbie

You might want to pull the initial source release down and see if it is different (better):
https://web.archive.org/web/20001013121627/ht … e&altsites=d3f2
I know the Parallax Online link works, and some of the others may also work.

Reply 2 of 17, by xjas

User metadata
Rank l33t
Rank
l33t
akula65 wrote on 2020-05-28, 10:45:

You might want to pull the initial source release down and see if it is different (better):
https://web.archive.org/web/20001013121627/ht … e&altsites=d3f2
I know the Parallax Online link works, and some of the others may also work.

^^ 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!

Reply 3 of 17, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

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.

How To Ask Questions The Smart Way
Make your games work offline

Reply 4 of 17, by akula65

User metadata
Rank Oldbie
Rank
Oldbie

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.

Reply 5 of 17, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

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.

Attachments

  • Filename
    list.txt
    File size
    5.02 KiB
    Downloads
    80 downloads
    File license
    Fair use/fair dealing exception

How To Ask Questions The Smart Way
Make your games work offline

Reply 6 of 17, by xjas

User metadata
Rank l33t
Rank
l33t

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!

Reply 7 of 17, by akula65

User metadata
Rank Oldbie
Rank
Oldbie

Jeremy Stanley made a D1X for Win32 and Linux circa 2003 (use the Wayback Machine):
http://www.xmission.com/~jstanley/
Also, Lloyd Standish put together some D2X-XL Ubuntu-Debian Packages (use the Wayback Machine):
http://files.lstandish.com/d2x-xl/

Reply 8 of 17, by xjas

User metadata
Rank l33t
Rank
l33t

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!

Reply 11 of 17, by xjas

User metadata
Rank l33t
Rank
l33t

^^ 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?

akula65 wrote on 2020-05-29, 01:41:

It's a bit thin on Version 1.3x source, but check it out:
https://web.archive.org/web/*/http://ftp.morp … s.net/pub/d1x/*

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.

Filename
d1x137d3d_unofficial_alpha.zip
File size
310.61 KiB
Downloads
52 downloads
File license
Public domain
scrn0000.png
Filename
scrn0000.png
File size
240.35 KiB
Views
1348 views
File license
Public domain

^^ 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!

Reply 12 of 17, by leileilol

User metadata
Rank l33t++
Rank
l33t++

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).

apsosig.png
long live PCem

Reply 13 of 17, by jmarsh

User metadata
Rank Oldbie
Rank
Oldbie
xjas wrote on 2020-05-29, 05:23:

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.)

Reply 14 of 17, by akula65

User metadata
Rank Oldbie
Rank
Oldbie

It doesn't get as much attention as D2X-XL or DXX, but drakona and roncli have been working on DXX-Retro within the last few years:
https://github.com/CDarrow/DXX-Retro
https://roncli.com/gaming/descent/retro

Reply 15 of 17, by xjas

User metadata
Rank l33t
Rank
l33t

Ogod.

family tree.png
Filename
family tree.png
File size
245.5 KiB
Views
1300 views
File license
CC-BY-4.0

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:

Filename
family tree.7z
File size
3.82 KiB
Downloads
38 downloads
File license
CC-BY-4.0

...and yes, I missed DXX-Retro. Goddamn it.

twitch.tv/oldskooljay - playing the obscure, forgotten & weird - most Tuesdays & Thursdays @ 6:30 PM PDT. Bonus streams elsewhen!

Reply 16 of 17, by xjas

User metadata
Rank l33t
Rank
l33t

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.)

Filename
d1srcpc.exe
File size
1.44 MiB
Downloads
49 downloads
File license
Fair use/fair dealing exception

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:

Environment variables
PROMPT=$P$G
COMSPEC=C:\COMMAND.COM
DOSDIR=C:\SYSTEM
DIRCMD=/OGN
BLASTER=A220 I5 D1 H5 T4
PATH=C:\;C:\SYSTEM;C:\FDOS\BIN;C:\Q;C:\DN32;C:\PROG\WATCOM\BIN;C:\PROG\WATCOM\BINB;C:\PROG\WATCOM\BINW;C:\PROG\MASM611\BIN
WATCOM=C:\PROG\WATCOM
EDPATH=C:\PROG\WATCOM\EDDAT
WIPFC=C:\PROG\WATCOM\WIPFC
LIB=C:\PROG\MASM611\LIB
HELPFILES=C:\PROG\MASM611\HELP\*.HLP
ASMEX=C:\PROG\MASM611\SAMPLES
TMP=E:\MASMTMP
INCLUDE=C:\PROG\WATCOM\H;C:\PROG\MASM611\INCLUDE;e:\d1srcpc\lib;e:\d1srcpc\includes
INIT=C:\PROG\MASM611\INIT;e:\d1srcpc

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.)

My MAKED1.BAT
rem d1vars sets up compiler variables
rem call d1vars.bat
set LIBDIR = e:\d1srcpc\main
set CCFLAGS = /dNETWORK /dRELEASE /dNDEBUG
cd misc
wmake /ms
pause
cd..
cd includes
wmake /ms
pause
cd ..
cd fix
wmake /ms
pause
cd ..
cd cfile
wmake /ms
pause
cd ..
cd 2d
wmake /ms
pause
cd ..
cd bios
wmake /ms
pause
cd ..
cd iff
wmake /ms
pause
cd ..
cd div
wmake /ms
pause
cd ..
cd mem
wmake /ms
pause
cd ..
cd vecmat
wmake /ms
pause
cd ..
cd 3d
wmake /ms
pause
cd ..
cd texmap
wmake /ms
pause
cd ..
cd ui
wmake /ms
pause
cd ..
cd main
cd editor
wmake /ms
pause
Show last 4 lines
cd ..
wmake /ms
cd ..
Echo Make complete.

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.

Filename
Errors and logs.7z
File size
6.25 KiB
Downloads
42 downloads
File license
Public domain

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!

Reply 17 of 17, by leileilol

User metadata
Rank l33t++
Rank
l33t++

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:

https://github.com/InsanityBringer/ChocolateDescent

apsosig.png
long live PCem