Redneckerz Posted February 17, 2022 (edited) Introduction: (Approved by @Gibbon and @OpenRift) @Doomkid please take note for your Vanilla threads! Inspired by @nukeykt and @NY00123's works on gamesrc-ver-recreation: Sir Gibbon of England started his quest for more, better. He came across the tales of executable hacks and source modifications, and wondered, where the pot of source gold would be lying. Later, in a dream, NY00123 and Nukeykt came to him.They told him: ''Create the ultimate DOS based modification, Gibbon! The community of Doom needs it!'' So Sir Gibbon woke up the next morning, brought himself a typical English Breakfast together with Coco the Caco, his pet demon, and he set to work. The result: Doom128, Heretic128, and Hexen128. EDIT 29-4-2022: Now also with Strife128! Features: All 128-series source modifications take Doom32's limits as a basis - Itself derived from Doom2-plus. But the 128-series goes way, way beyond. The Doom32 limits are multipled by a factor of 16. This means hugely detailed and large limit-removing WADS are possible in DOS. Back to Saturn X works considerably well. In general, the limits are as follows: limit : old * k = new ------------------------------------------------------- visplanes[MAXVISPLANES] : 1024 * 16 = 16384 drawsegs[MAXDRAWSEGS] : 2048 * 16 = 32768 SAVEGAMESIZE : 2883584 * 16 = 46137344 activeplats[MAXPLATS] : 7680 * 16 = 122880 vissprites[MAXVISSPRITE] : 1024 * 16 = 16384 linespeciallist[MAXLINEANIMS] : 16384 * 16 = 262144 openings[MAXOPENINGS] : 200 * 256 * 16 = 819200 * {{c|MAXOPENINGS}} relies on the {{c|SCREENWIDTH}} constant, which is 200 (from a 320x200 screen, which is what is used in Vanilla Doom * Heretic128's SAVEGAMESIZE differs depending on the version of the executable used. Executables are built against: Doom128: Ultimate Doom 1.9, Doom 2 1.9 and Final Doom Anthology Heretic128: Heretic 1.0, Heretic 1.3 (Shadow of the Serpent Riders version) Hexen128: Hexen 1.1 Late Strife128: Strife 1.0 Limitations: DeHacked is currently not working on Doom128 (Neither are HHE files for Heretic128). Links: GitHub: Doom128 Heretic128 Hexen128 Strife128 DoomWiki: Doom128 Heretic128 Hexen128 Strife128 Edited April 30, 2022 by Redneckerz : Added Strife128 Wiki reference 22 Share this post Link to post
BlueThunder Posted February 18, 2022 This is quite awesome, A good reason to turn on my old super socket 7 machine to test them out. 👍 3 Share this post Link to post
maxmanium Posted February 18, 2022 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" 2 Share this post Link to post
Gibbon Posted February 19, 2022 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? 1 Share this post Link to post
maxmanium Posted February 19, 2022 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? 0 Share this post Link to post
Gibbon Posted February 19, 2022 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. 0 Share this post Link to post
Redneckerz Posted February 19, 2022 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? 1 Share this post Link to post
NY00123 Posted February 19, 2022 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 3 Share this post Link to post
Gibbon Posted February 19, 2022 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 0 Share this post Link to post
Redneckerz Posted February 19, 2022 (edited) 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. Archived manual Edited February 19, 2022 by Redneckerz 2 Share this post Link to post
esselfortium Posted February 19, 2022 This is amazing stuff. It would be great to eventually support loading deh patches natively, since DeHackEd doesn't recognize this EXE. 6 Share this post Link to post
Redneckerz Posted February 19, 2022 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. 3 Share this post Link to post
Gibbon Posted February 19, 2022 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. 4 Share this post Link to post
NY00123 Posted February 19, 2022 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. 1 Share this post Link to post
Gibbon Posted February 19, 2022 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. 0 Share this post Link to post
maxmanium Posted February 19, 2022 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 0 Share this post Link to post
maxmanium Posted February 19, 2022 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. 0 Share this post Link to post
Gibbon Posted February 19, 2022 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. 0 Share this post Link to post
OpenRift Posted February 19, 2022 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. 1 Share this post Link to post
NY00123 Posted February 19, 2022 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. 1 Share this post Link to post
Gibbon Posted April 19, 2022 (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 :) 3 Share this post Link to post
Redneckerz Posted April 19, 2022 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? 0 Share this post Link to post
Gibbon Posted April 19, 2022 (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. 4 Share this post Link to post
Gibbon Posted April 29, 2022 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. 5 Share this post Link to post
Redneckerz Posted April 29, 2022 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. 0 Share this post Link to post
Lippeth Posted April 30, 2022 (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 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 April 30, 2022 by Lippeth 2 Share this post Link to post
YeOldeFellerNoob Posted April 30, 2022 How do you run this? Does this need just the WAD or does it use the entirety of the original executable? 0 Share this post Link to post
Gibbon Posted May 1, 2022 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 :) 1 Share this post Link to post
Gibbon Posted May 2, 2022 (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 May 2, 2022 by Gibbon 3 Share this post Link to post