Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Redneckerz

Doom128/Heretic128/Hexen128/Strife128: Gibbon's ultimate vanilla source mods for DOS

Recommended Posts

It should probably be packaged with DOS32A.EXE, renamed DOS4GW.EXE, because it won't run without it. Although upon exit I get a warning that "real mode interrupt vector has been modified: INT 00h"

Share this post


Link to post
7 hours ago, maxmanium said:

It should probably be packaged with DOS32A.EXE, renamed DOS4GW.EXE, because it won't run without it. Although upon exit I get a warning that "real mode interrupt vector has been modified: INT 00h"

Issue with that is it would also need to be packaged with a dosbox config file because it needs 32MB of memory to run too.

 

Ill add the info to the readme.  I was assuming everyone had DOS4GW anyway, I'll add it to the packages.

 

I don't get any such warning.  What's your dosbox config?

Share this post


Link to post
2 hours ago, Gibbon said:

Issue with that is it would also need to be packaged with a dosbox config file because it needs 32MB of memory to run too.

 

Ill add the info to the readme.  I was assuming everyone had DOS4GW anyway, I'll add it to the packages.

 

I don't get any such warning.  What's your dosbox config?

 

Is there any specific relevant information you're looking for? The whole config file?

Share this post


Link to post
44 minutes ago, maxmanium said:

 

Is there any specific relevant information you're looking for? The whole config file?

That would help yes, the whole thing.

 

Most of the time, one small setting can have huge effects on dosbox.

Share this post


Link to post
3 hours ago, Gibbon said:

Ill add the info to the readme.  I was assuming everyone had DOS4GW anyway, I'll add it to the packages.

Appreciated. I had to gobble up an exe from the attic. Perhapa DOS32A is even better.

 

Silly question, but stock Doom exes do not need any auxillary progs - can something be integrated?

3 hours ago, Gibbon said:

I don't get any such warning.  What's your dosbox config?

You also added DPMI to your autoexec - perhaps you can write an ideal-config template for DOSBox?

Share this post


Link to post

Renaming DOS32A.EXE to DOS4GW.EXE looks like a common approach for running older exes (which lack sources), so this might work here; Albeit I thought that the usage of the name of DOS4GW.EXE for what is actually DOS/32 can be confusing.

 

I'm not entirely sure if this is allowed by DOS/32's license in this case, but another option might be to bind DOS/32 into the game exes. Given that it's intended for use with older EXEs from the 90s in general, it might be.

 

https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/util/system/dos32a/dos32a.txt

Share this post


Link to post

Good point, I had it from DJGPP and WATCOM (exe date is 1993) so whatever the licence is..  no idea.  It is a bit ambiguous at this stage and I just zip and up throw around watcom's DOS4GW.EXE

Share this post


Link to post
2 hours ago, NY00123 said:

Renaming DOS32A.EXE to DOS4GW.EXE looks like a common approach for running older exes (which lack sources), so this might work here; Albeit I thought that the usage of the name of DOS4GW.EXE for what is actually DOS/32 can be confusing.

 

I'm not entirely sure if this is allowed by DOS/32's license in this case, but another option might be to bind DOS/32 into the game exes. Given that it's intended for use with older EXEs from the 90s in general, it might be.

 

https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/util/system/dos32a/dos32a.txt

 

2 hours ago, Gibbon said:

Good point, I had it from DJGPP and WATCOM (exe date is 1993) so whatever the licence is..  no idea.  It is a bit ambiguous at this stage and I just zip and up throw around watcom's DOS4GW.EXE

Here is the license:

 

Quote

DOS/32 Advanced DOS Extender Liberty Edition Software License

Copyright © 1996-2005 Supernar Systems, Ltd. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. The end-user documentation included with the redistribution, if any, must include the following acknowledgment:

"This product uses DOS/32 Advanced DOS Extender technology."

Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear.

4. Products derived from this software may not be called "DOS/32A" or "DOS/32 Advanced".

THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 

Copyright © Supernar Systems, Ltd. 1996-2005
All Rights Reserved.

 

Edited by Redneckerz

Share this post


Link to post

This is amazing stuff.

 

It would be great to eventually support loading deh patches natively, since DeHackEd doesn't recognize this EXE.

Share this post


Link to post
29 minutes ago, esselfortium said:

This is amazing stuff.

 

It would be great to eventually support loading deh patches natively, since DeHackEd doesn't recognize this EXE.

Work is on the way to have a 128-series compatible version going on aswell. (Or well, one that supports gamesrc-ver-recreation.)

 

If that works, then i suppose a new iteration of Chocorenderlimits is in order? ;)

 

As for native DEH support: @Gibbon now that would be an absolute killer feature for a vanilla engine.

Share this post


Link to post

Indeed it would and yes I probably will add Deh support as well as make sure that dehacked will work with it.

 

Of course there are also other things that need tackling to make as many features from DOOM32 added into this one..  SIGIL support, Medusa effect fixes (this will compliment the tutti fixes), merging deh files to make standalone exe's etc..

 

Since all my stuff are 'lone wolf' projects, it's added to my bucket list.

 

Also, the 4-clause BSD licence is not GPL compatible so that's a no on any form of merging.  4-Clause BSD isn't a free or open source software licence at all.

So it will stay as a standalone binary and just plop it into your dosbox.

Share this post


Link to post
1 hour ago, Gibbon said:

Also, the 4-clause BSD licence is not GPL compatible so that's a no on any form of merging.  4-Clause BSD isn't a free or open source software licence at all.

So it will stay as a standalone binary and just plop it into your dosbox.

 

While the license is a bit different, it indeed has its own variation of the advertising clause. Here's a copy of the 4-clause BSD license for reference: https://spdx.org/licenses/BSD-4-Clause.html

 

Since the built exe can work without binding or even using DOS/32, I'm not sure that binding DOS/32 will be considered the creation of "derivative work" as defined in the GPL. There are also the original non-GPL terms by which the Doom, Heretic and Hexen sources were originally distributed, albeit Heretic and Hexen's terms were an EULA not intended for the distribution of source code. Either way, as usual, it should better be assumed that IANAL.

Share this post


Link to post
17 minutes ago, NY00123 said:

 

While the license is a bit different, it indeed has its own variation of the advertising clause. Here's a copy of the 4-clause BSD license for reference: https://spdx.org/licenses/BSD-4-Clause.html

 

Since the built exe can work without binding or even using DOS/32, I'm not sure that binding DOS/32 will be considered the creation of "derivative work" as defined in the GPL. There are also the original non-GPL terms by which the Doom, Heretic and Hexen sources were originally distributed, albeit Heretic and Hexen's terms were an EULA not intended for the distribution of source code. Either way, as usual, it should better be assumed that IANAL.


It isn't so much the derivative work that's the problem.  It is the additional restriction that the 4th clause brings.  GPL prohibits any additional restrictions on usage, but the 4th clause brings that additional restriction.

 

As for the DEH integration, I think I can take the code from BOOM and modify it for Watcom.  Since BOOMs version is fairly simplistic and plugs in nicely to a mostly vanilla'ish codebase.

Share this post


Link to post
10 hours ago, Gibbon said:

That would help yes, the whole thing.

 

Most of the time, one small setting can have huge effects on dosbox.

 

dosbox.zip

Share this post


Link to post

Also, how much bug fixing would be "allowed" so to speak? Really I just think it'd be great to be able to load sprites and flats the normal way -- so DOSBox users don't have to use DeuSF.

Share this post


Link to post
26 minutes ago, maxmanium said:

Also, how much bug fixing would be "allowed" so to speak? Really I just think it'd be great to be able to load sprites and flats the normal way -- so DOSBox users don't have to use DeuSF.

Pretty much everything DOOM32 has plus Tutti and Medusa fixing.

Share this post


Link to post
8 hours ago, Redneckerz said:

Work is on the way to have a 128-series compatible version going on aswell. (Or well, one that supports gamesrc-ver-recreation.)

 

If that works, then i suppose a new iteration of Chocorenderlimits is in order? ;)

 

As for native DEH support: @Gibbon now that would be an absolute killer feature for a vanilla engine.

I'm currently waiting for further development on 128 before I do any more work on Dehacked128, namely once the medusa effect is fixed. 

Share this post


Link to post
5 hours ago, Gibbon said:

It isn't so much the derivative work that's the problem.  It is the additional restriction that the 4th clause brings.  GPL prohibits any additional restrictions on usage, but the 4th clause brings that additional restriction.

 

Yes, this is indeed the clause that makes the original 4-clause BSD license incompatible with the GNU GPL.

 

A big question is which combinations are still allowed by the GPL, if any. For example, there are instances in which a GPLed program is allowed to be linked with a proprietary system library. For more details, the contents of the relevant GPL document should be inspected. https://www.gnu.org/licenses/gpl-faq.en.html#SystemLibraryException

 

5 hours ago, Gibbon said:

 

As for the DEH integration, I think I can take the code from BOOM and modify it for Watcom.  Since BOOMs version is fairly simplistic and plugs in nicely to a mostly vanilla'ish codebase.

 

 

This clearly sounds like a useful approach for the user. Once the relevant parser from another source port is added, some amount of work might be required for replacing hardcoded contents like strings. Hopefully, there won't be as much work for the arrays defined in INFO.C, because there aren't that many of them. Maybe function pointers will need more work for going through them.

Share this post


Link to post
Posted (edited)

Following up on this:

 

https://github.com/atsb/DOOM128/releases/tag/19.04.2022

 

https://github.com/atsb/HERETIC128/releases/tag/19.04.2022

 

https://github.com/atsb/HEXEN128/releases/tag/19.04.2022

 

All have been updated to implement NOVERT.  All these builds will no longer have the annoying vertical mouse movement and users will not need any silly third-party software to implement that.

 

It is now actually playable :)

Share this post


Link to post
3 hours ago, Gibbon said:

Following up on this:

 

https://github.com/atsb/DOOM128/releases/tag/19.04.2022

 

https://github.com/atsb/HERETIC128/releases/tag/19.04.2022

 

https://github.com/atsb/HEXEN128/releases/tag/19.04.2022

 

All have been updated to implement NOVERT.  All these builds will no longer have the annoying vertical mouse movement and users will not need any silly third-party software to implement that.

 

It is now actually playable :)

Super epic stuff Gib. When i get back from holiday ill update accordingly.

 

By the way, did you look into adapting Boom code to Watcom to get DEH integration going?

 

Secondly: i can't check, but the medusa effect was fixed?

 

@OpenRift if Medusa is fixed, perhaps now the time is right for Dehacked128?

Share this post


Link to post
Posted (edited)

Medusa isn't 100% fixed.  There are still some instances of them which I'm trying to squash, there are a few differences between this codebase and say..  Inter-Doom DOS, so I can't just copy things in.  Largely it is a 'compare and fix' approach, what, with my...  11 projects?  It goes a little slower than I'd like :P

 

Dehacked will come, but that will take quite the effort since it literally alters everything.

Share this post


Link to post

I guess @Redneckerz should change the title as we now have a STRIFE128 too.

 

Here: https://github.com/atsb/STRIFE128/releases/tag/v042022.1

 

I did this as there are not too many DOS Strife source ports, and I needed another source port apart from vanilla Strife for something that Myself and OpenRift are working on.  So voila, enjoy kicking the Order's butt!  Again all credits to NY00123 and co are there.

Share this post


Link to post
9 hours ago, Gibbon said:

I guess @Redneckerz should change the title as we now have a STRIFE128 too.

 

Here: https://github.com/atsb/STRIFE128/releases/tag/v042022.1

 

I did this as there are not too many DOS Strife source ports, and I needed another source port apart from vanilla Strife for something that Myself and OpenRift are working on.  So voila, enjoy kicking the Order's butt!  Again all credits to NY00123 and co are there.

Wonderful.

 

There goes my weekend.

 

Ill see if i can get this (and ZZDoom/RZDoom) done by the weekend. Its time for a write-a-ton again.

Share this post


Link to post
Posted (edited)

I spent a bit of time messing around with these in various DOSBox forks and have concluded that a list of recommended config settings could be helpful. If there's a readme I couldn't find it, and I also had never heard of DOS4GW until today, if that helps to paint a better picture of my DOS ignorance (and probably in general too).

 

Ultimate Doom seems to hang for me when trying to start the game:

Spoiler

j1sYArY.png

 

Heretic and Hexen work great, though I actually prefer vertical mouse movement in Hexen for whatever reason, unless playing as the mage. Doom 2 works, though the mouse bind to move forward and use doesn't seem to work. I haven't yet tried Strife.

 

This one took a few tries to figure out, but if an active sound device uses irq 5 in the config file, sounds echo infinitely, like something else is also using it.

 

My own personal problems aside, I do enjoy playing random wads without the fear of going deaf when saving, so great work!

Edited by Lippeth

Share this post


Link to post

How do you run this? Does this need just the WAD or does it use the entirety of the original executable?

Share this post


Link to post
19 hours ago, YeOldeFellerNoob said:

How do you run this? Does this need just the WAD or does it use the entirety of the original executable?

Same as Doom.  You need the exe and the iwad.  You do however also need DOS4GW which is provided in the download as my increased limits push it over into extended DOS mode as a requirement :)

Share this post


Link to post
Posted (edited)

Thanks @Redneckerz!

 

While it is slightly related, I forked the id-setup program and made three rebranded (and prettier) setup utilities for DOOM128, DOOM128 (DOOM2) and HERETIC128.

All will look for the relevant executable.  More TURBO C goodness.

 

https://github.com/atsb/SETUP128/releases/tag/v02.05.2022

 

Edit: I re-enabled the assembler code to add the 'funky blue' back.  Because I'm a dirty filthy purist :D

Edited by Gibbon

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
×