exoscoriae / eXoDOS

eXoDOS
69 stars 3 forks source link

Duke3D, its mods, and other Build Engine games #4862

Closed Python-Exoproject closed 2 months ago

Python-Exoproject commented 10 months ago

Discord user Config.sys noted that the sound canvas sound wasnt right if you had previously selected it and then on the second run pressed 'n' to keep the setting. This was due to the mididevice not getting set based on the sel file that was detected at the start of run.bat. I also noticed a number of other small things like when the user chooses to run setup to set their controls when they finish they are dropped back to the sound choice menu which if they selected something would just reset their controls again.

On the conf side of things config.sys also correctly pointed out that the machine type for these games should be set to machine=vesa_nolfb due to an issue that causes graphics glitches when using machine=svga_s3.

I also discovered that the launch bat for Duke3D Atomic edition somehow had 'echo on' instead of 'echo off' and the setconsole command is using /min instead of /minimize

Here is a zip with all of the required changes to fix the above done: eXoDOS.zip

Python-Exoproject commented 10 months ago

I also noticed that the approach to the network choice varied. I didnt touch it as im not as familiar with that side of things but im noting here in case its something you want to review.

These games are setup in a way that the user controls are wiped everytime they launch the network option, be they previously set for the network game or for the standard launch:

Duke3d, Duke Assault, Duke 3d Atomic, Duke Caribbean, Duke Z

These games are setup in a way that doesnt reset anything:

Nuclear Winter, Duke it out in DC, Duke its zero hour, Duke Penthouse

And lastly, Duke 3D Mania and Total Meltdown have no network choice at all

Im wondering if wiping the user config is needed as some of the games dont currently do it, and if it is maybe a solution to user controls being wiped might be:

(For terminology I will call the duke.cfg copied in from a sound choice for the main launch main.cfg and the one copied in for a network launch network.cfg)

On user choosing a network game check for a backup network.cfg, if it exists make a backup of main.cfg and replace it with network.cfg. If it doesnt then copy in fresh network.cfg from the \network\ folder. When exit the network game the network.cfg is backed up to save any user controls and main.cfg backup is restored. That way next time game is run the previous controls still exist for main or network launch

Python-Exoproject commented 10 months ago

I went and made the vesa_noflb tweak to all the other build engine games, along with making sure they were all offering the user access to the controls, sound options were working properly when user chose to play with previous setting, etc. I had to patch the cryptic passage exe with tppatch due to a well known runtime error that kept occurring. I also increased the default res we were using on some build games as they were still on 320x200 and fixed a crackling noise on Blood Gravis sound options when using Staging caused by a setting in the blood.cfg file.

Heres the fixes: BuildGames.zip

A number of these games (Cryptic Passage for Blood (1997), NAM (1998), Blood (1997), World War II GI (1999)) also offer network play and like the above comment for Duke3D they usually wipe the user config and could possibly use the method I mentioned there as well.

I also noticed that while Witchaven II uses the updated ETTiNGRiNDER fixed version to run the multiplayer option, the original Witchaven isnt. As this is multiplayer I have left it as is for now

Maybe the CD audio mixer volume setting for the three Redneck Rampage games needs review as well. Currently they are set to mixer cdaudio 20 but im thinking mixer cdaudio 30 or 40 might be better. Cant have it to loud though of the music overpowers the character comments during gameplay. Leave it up to you

Python-Exoproject commented 10 months ago

Lastly I found an expansion for WWII GI called "Platoon Leader" which I dont think we have in the collection.

WWII GI Platoon Leader.zip

exoscoriae commented 3 months ago

fixed the existing network launch options.

applied your conf fixes and sound card fixes that were in the zip above

exoscoriae commented 3 months ago

Duke 3D Mania doesn't appear to support multiplayer. The menu system it uses, DukeEdit, has no actual deatures in it to launch a multiplayer game that I can find.

It goes so far as to have a fake multiplayer it can do. But At so point does it let you delect a map, and then go to the network setup screen.

Total Meltdown's evel browser also appears to have no functionality to load a level and then call the multiplayer mode. These things are really poorly put together and clearly rely on the user to figure this stuff out manually.

If we want to enable multiplayer, we would need to build a custom launcher.

exoscoriae commented 3 months ago

fixed the games that had destructive multiplayer network launches

moved witchaven to the ETTiNGRiNDER version, however during a quick test network game it crashed as soon as I shot the other fellow with an arrow.

Added Platoon leader addon

exoscoriae commented 3 months ago

also bumped cd mixer for the RR games to 40

Python-Exoproject commented 2 months ago

Couple things left over for this ticket:

Witchaven: The game defaults to SB16 when network game is run but the user wasnt told so ive added that note Witchaven.zip


World War II GI: Currently the user is not able to select to play the expansion if they choose to stay with the previously selected sound device so Ive added a small menu that shows if the user keeps current sound choice asking them if they want main game or expansion WorldWarIIGI.zip


Duke Assault, Duke Caribbean, Duke 3D Atomic, Duke 3D, Duke!Zone II: With these games now changed to a network method that doesnt wipe previous user settings the warning

echo Note: Keys can be reconfigured within Setup, however make your sound
echo choice first. Choosing network will default to SB16. If you have custom
echo key binds, they will need to be set again.

can be cut down to just

echo Note: Keys can be reconfigured within Setup, however make your sound
echo choice first.


Blood: The new run.bat you created for the game has one issue. If you for example select setup, then from the setup menu choose Blood and set some custom controls these controls wont flow through to the other versions or the network option which is using the Plasma Pack version. Ive noted that all the versions of blood use identical BLOOD.CFG files so Ive created a workaround for this issue that solves the problem and simplifies the users setup choice. I also edited the comment

echo Note: Changing the sound card type will also reset any other game settings,
echo such as key bindings. Selecting Y will also allow you to choose to start
echo a network multiplayer game.

to be just the following as the logic was reversed so its actually pressing Y that brings up sound options. I also removed the second half of the note as now that its Y to do sound it didnt need to call out that pressing N would show the network option as you need to press N to play any of the versions anyway

echo Note: Changing the sound card type will also reset any other game settings,
echo such as key bindings.

Blood.zip

exoscoriae commented 2 months ago

re: Witchhaven - They all used to default to sb16. A few may not anymore, but it is the default behaviour for every single network option in the pack anywhere a sound selection can be made without overwriting the settings (and CD audio isn't available).

I added your note, however I don't really want to start noting every default sound option for every network game. Maybe it isn't as predominant as I think it is.

exoscoriae commented 2 months ago

all other proposed changes have been applied.