Planet Descent

Community => Mess Hall => Topic started by: InsanityBringer on September 14, 2019, 02:23:25 PM

Title: Chocolate Descent (testing build available)
Post by: InsanityBringer on September 14, 2019, 02:23:25 PM
Over the past month and a half, I've gotten interested in the idea of making a classic software focused Descent engine, which none of the current ones focus on. Rebirth does have a software renderer, but it has to be built with it specifically and it lacks certain features I want, like the ability to use high-resolution windows with low resolution game output. Wanting to also take a stab at porting an old game, I decided to start working on Chocolate Descent, in the same vein as Chocolate Doom. ( It uses SDL 2 to enable potential portability to multiple platforms, though currently the code only works correctly on Windows. In the coming months, I want to get Descent 2 ported and also get the mess running on Linux.

Some screenshots:

Video demonstrating new MIDI support. (
Early video with gameplay and buggy sound. (

Chocolate Descent is currently in development, and is at a state where I should be able to release Windows builds soon. A number of things are planned for the future (, and if you want to follow progress, the github repo can be found here. (

Testing build:
Here's the first testing build! (
Title: Re: Chocolate Descent
Post by: Scyphi on September 15, 2019, 05:47:21 AM
So basically...Vanilla Descent...but with benefits? Am I getting that right? Sorry, this all veers into technical fields I'm not so familiar with, so I'm mostly just going off what I'm seeing here in the screenshots...  :-[

I approve, either way, though. Rebirth and D2X-XL are both nice and all, but I've found there is something to be said about playing Descent as it originally appeared in 1994, an experience you somewhat loose with the other mods, so I'm for any project that seeks to restore/preserve that original gameplay experience, even if just for nostalgia.  ;D
Title: Re: Chocolate Descent
Post by: Kaiaatzl on September 15, 2019, 01:30:19 PM
Looks like one to watch!
I'd really like to have a simple software-rendered version of D1 and D2 that just runs on modern OS and adds OGG support for redbook or custom music tracks.  Nothing else necessary.  Just playing it exactly like DOS.  Even Rebirth never seems to get that quite right.
Title: Re: Chocolate Descent
Post by: InsanityBringer on September 16, 2019, 10:41:51 AM
Yeah, it's pretty much that, Scyphi. Classic Descent gameplay, classic Descent look, but with modern conveniences. While the game resolution is low and extra crunchy, the window can be of many resolutions, and you can even go borderless fullscreen, and it's automatically pillarboxed to keep the game's classic 4:3 resolution, so the cockpit doesn't look squashed.

OGG music is currently in, though it's a bit simple at the moment. If you place an ogg file in the /music/ directory, with the same name as one of the game's MIDI tracks (ie game01 for level 1), it will play that instead of the MIDI track. This will need some extension in Descent 2 to support the redbook audio tracks, but for now its fine if you want accurate SC55 or OPL recordings or the like. Or maybe drop the Mac/PSX soundtrack in there...

Speaking of ][...

Title: Re: Chocolate Descent
Post by: Kaiaatzl on September 22, 2019, 08:09:32 AM
Title: Re: Chocolate Descent
Post by: D2Disciple on September 23, 2019, 04:25:29 AM
This is super cool. Might have to break out the old CRT monitor and download this.  ;)

Let us know when it's released and I'll put it on the front page!
Title: Re: Chocolate Descent
Post by: InsanityBringer on October 04, 2019, 08:22:55 AM (

Chocolate Descent 2 looking pretty good. I hope I can get this whole mess released for testing soon but there's still a lot of tiny little things I need to get around to doing...
Title: Re: Chocolate Descent
Post by: Hunter on October 06, 2019, 03:00:16 PM
I'm gearing up to play some D1 again (its been a while), and I was only thinking the other day how neat it would be to experience the game in this fashion again.

As Bender would say: Neat  8)
Title: Re: Chocolate Descent
Post by: InsanityBringer on October 16, 2019, 02:51:30 PM
During testing, I was able to play all of Descent 1 without a single crash error, and all of Descent 2 and a number of missions with only one crash. I think that's a really good sign.

I'm probably going to get a testing build released sometime this week. At the moment I'm waiting on an overhaul of some code being performed by a third party contributor, dpjudas, that should hopefully make configuring the thing easier. A few caveats are that emulated CD music isn't available at the moment (you can use the music folder to play CD rips ATM, but it'll only load four level songs), there's no joystick code available in the SDL backend, and diagnostics code is limited. Beyond that, it's much more stable than I was anticipating, which is very nice. (no doubt there's a million lurking memory bugs though, waiting to manifest the moment I release a build....)
Title: Re: Chocolate Descent
Post by: InsanityBringer on October 17, 2019, 11:06:10 AM
Alright, so I have made a testing build.

It's available here. (

Look at the included ChocolateDescent.txt document for details. Please report any errors that show up, and if anyone's looking to play with joysticks, do let me know if that works at all. I don't have any sticks to test with, hampering the process. There's some basic gamepad code in play too, but it's very messy. You'll need to set your joystick type to the Flightstick in order to use gamepad buttons. The mapping of them isn't clean ATM, I'll look to improve this in future builds.
Title: Re: Chocolate Descent (testing build available)
Post by: Kaiaatzl on October 29, 2019, 05:11:55 PM
Still can't add dedicated ogg music for custom missions without support, but I did work around the 4-song limitation in D2 by just adding a descent.sng file into the root directory.  If you get the redbook tracks from one of the Rebirth dxa's, the same descent.sng that's in there seems to work without needing any changes besides extracting it into the right folders.
Mouse control feels a little sluggish compared to dosbox (at least the way I had it set up) or Rebirth on "normal" mode.  Not that the ship's turn rate is slow, its just seems that, in order to reach that max turn speed, I need to move the mouse faster than I would on dosbox or Rebirth.  And moving it faster obviously means moving it farther, which means more annoying picking-up of the mouse in turn.
Title: Re: Chocolate Descent (testing build available)
Post by: InsanityBringer on October 30, 2019, 10:56:27 AM
I can try adding a mouse scaling option in chocolatedescent.cfg to try to help out. Just some sort of multiplier applied to the raw values read from the mouse in SDL. It's never felt that off to me, I dunno why, but I'll play around with it.

On the subject of input, I dug up an ancient cheap USB joystick from my garage, so I gave the joystick code a thorough test and shook out some problems. It now works much better, you can bind hat switches to movement controls properly, and so on. I also fixed up the button code to make it a lot easier to map buttons from real joystick buttons to the names reported in game, so it should be much easier to work out binds. Sticks are still fairly limited, but Descent's joystick code is surprisingly limited tbh...
Title: Re: Chocolate Descent (testing build available)
Post by: Kaiaatzl on October 30, 2019, 04:42:09 PM
I'd like that.
The game's still perfectly playable and fun, it's just a little quality-of-life sorta deal.  :D

Oh, the other thing I noticed that I forgot about yesterday is that at least on my mouse, when I want to bind the right or middle button to a control I have to press the opposite one.   So for example if I'm binding afterburner to the middle mouse button when I've selected the control in the menu and I'm told to input the control I want, I have to press the right mouse button instead.
Kinda weird, kinda not huge, but still it's a thing. :)

EDIT: I've also noticed now that sometimes when a dialog box shows up with a prompt for the player (like say, the "secret teleporter found, proceeding to secret level" in D2) it only shows up for a split second before the "continue" option activates seemingly by itself.  Also sometimes happens on player death for the respawn control.
Also not a huge deal.
Title: Re: Chocolate Descent (testing build available)
Post by: InsanityBringer on November 04, 2019, 01:37:50 PM
I fixed the bug with the wrong mouse buttons, it turns out in certain contexts I wasn't translating SDL mouse button IDs to Descent mouse button IDs properly. What the text in the bind menu says is accurate to what you need to press in game. I think I also fixed the problems with mouse input not being flushed properly, this should fix the instant respawns and dialogs not showing up.

I should have another build out this week.