ludicrous_peridot Posted September 29, 2021 (edited) I recently got very intetested in playing DOS games and Doom in particular in native environment. So I went about to look for a good source port to use and as I did not follow guides for this, I have overlooked some obvious choices like DOS builds of EE. However I learned about CoD and its custom engine and downloaded it for that engine. Luckily I was able to use the port to play Doom with and without extra maps and mods, and my experience was actually better than with, say, SMMU or several others that I have tried. So for a few months CoD was my reference DOS source port, up until I switched machines and found that on the new one it was sadly too unstable. A few days ago I have learnt that COD source was actually available, so decided to give it a go at building it to see if things change for the better. I didn't have liballegro used for the original build, but @gerwin was kind to share sources of his modified version with MBF 2.0.4 on his port's thread and to explain how to build it. So first thing I tried was building with this advised environment and linking source provided by @Murdoch above to this modified liballegro version. When it build and ran ok, I went all in and put it Gerwin's low level video and audio routines, replacing the ones from Eternity. The upside for me was that I could run CoD engine on this particular G41 "frankie" DOS gaming machine, but after incorporating those additional changes could also have hi res mode on. Eternity proper was never able to swtich that on for my Intel card (not even later DOS builds of Eternity), but Gerwin's changes did the trick. Of course there's also this my special interest in using a very early Eternity preview to play Doom and mods, for which I've changed several annoyances for my personal liking. There are 3 builds available. COD10 is from unmodified sources shared by @Murdoch COD10FIX is from slightly altered sources, still on Eternity rails COD10MBF is a frankenbuild that incorporates "modern MBF" audio and video routines Changelog Spoiler COD10 • allegro.h replaced with the one built from MBF 2.0.4 souce package COD10FIX • engine now picks up assets wad (normally COD.WAD) from engine EXE directory, then from current directory if it was unavailable • engine now picks up levels wad (CODLEV.WAD) from engine EXE directory • non-printable chars are now properly filtered out from savegames names and other text input fields in the menu • starting the game from the first new level in pwad works differently now for Doom 1: - episode selection menu is shown always for Doom 1 - there's a menu item on episode selection screen called Load Wad selecting which starts the game at first changed level - in case vanilla Doom 1 is loaded (i.e. no new levels in pwads) this item takes player to e1m1 - for Doom 2 (aka commercial) there's no episode selection screen (i.e. same behavior as before) COD10MBF • platform specific system startup routines replaced with those from MBF 2.0.4 below are details of what has been changed as a result • graphical startup gone as a result although option for that remains in the menu • tick to real time scale adjustment is still supported, but is not dynamic and required engine restart to be picked up • video optimized assembly code replaced with that from MBF 2.0.4 • platform specific video mode and blitting code replaced with that from MBF 2.0.4 • VESA relared functions from MBF 2.0.4 have been incorporated • video mode selection is gone, replaced with 3 options for controlling rendering and menus updated for that - hi resolution mode - page flipping enabled - vertical trace is used • benchmark option removed from menu as baselines for videomodes are gone with the modes (it did not seem to work anyway) • incidentally platform specific keyboard and joystick code also replaced with one from MBF 2.0.4 • audio-device specific platform code and MUS to MIDI converter code replaced with those from MBF 2.0.4 • platform specific audio code interfacing Allegro lib replaced with that from MBF 2.0.4 • because of how sound setup works there, it is now longer possible to choose MIDI and digi card from the menu and control voice detection; instead setup.exe from MBF 2.0.4 package should be used, which creates setup.cfg that Allegro uses • sound effects pre-caching at startup is no longer optional and happens always, so option to control it is gone from the menu • connectivity related code has also been incorporated, however I have not really tested anything multiplayer in addition to this • "modern" MBF-style video mode and FPS counter overlay added (can't say I trust it very much though) • in cases when engine believes that assets wad is called the same way as IWAD it detects (e.g. both called DOOM2.WAD) it will now be loaded only once • restored graphical startup • removed option to show disk in the menu as it's not something supported after MBF video code moved in • engine will now persist smooth mouse turning option • experimental changes to horizontal turning with mouse Builds are available as attachments to the post. COD10.zip COD10FIX.zip COD10MBF.zip To try them out first download Caverns of Darkness e.g. from /idgames. Unzip the original package (the one I downloaded was called CC-COD.ZIP) and then overwrite the unzipped contents with contents of one of the above zips. As a somewhat unrelated bonus, I am including a hex-edited version of Eternal Doom shell, that runs ETERNITY.EXE instead of DOOM2.EXE for those willing to play Eternal Doom in Eternity Engine, starting through the shell for full experience... ESHELL.zip Edited October 5, 2021 by ludicrous_peridot 11 Quote Share this post Link to post
Redneckerz Posted September 29, 2021 @ludicrous_peridot this looks great and a great addition to those who wish to play COD on DOS. High res support on the MBF-infused Eternity Build (COD10MBF is still Eternity, right?) is a great addition, as is the bugfix release. I mean, COD has had more source forks than any other WAD in existence, so a few more won't hurt ;) Looking forward to the change logs! 2 Quote Share this post Link to post
ludicrous_peridot Posted September 29, 2021 Yes, this is still Eternity. SMMU has come a long way from MBF, including how low level (sound, video, etc) aspects of the engine were managed and configired. I wanted to simplify the task, so did a blanket "reverse upgrade" of these to "modern MBF" state of things. Because of this a lot of flexibility has been removed from menus, console commands, etc. I did not however make significant changes to the platform agnostic part, aside from fixing one bug and putting in several convenience features, so it's roughly the "same engine" fit to different "rails". 3 Quote Share this post Link to post
Redneckerz Posted September 29, 2021 (edited) 2 hours ago, ludicrous_peridot said: Yes, this is still Eternity. SMMU has come a long way from MBF, including how low level (sound, video, etc) aspects of the engine were managed and configired. I wanted to simplify the task, so did a blanket "reverse upgrade" of these to "modern MBF" state of things. Because of this a lot of flexibility has been removed from menus, console commands, etc. I did not however make significant changes to the platform agnostic part, aside from fixing one bug and putting in several convenience features, so it's roughly the "same engine" fit to different "rails". Splendid. Obviously given the many ways to play COD on modern platforms, we are talking a niche of a niche, but that's my jam. I love stuff like this, especially when its for older OSes like DOS, as this is essentially another source modification (Especially COD10MBF) Looking forward to whatever you will be doing from here on out. If you may, perhaps COD10FIX/COD10MBF can be pushed to /idgames? Edited September 29, 2021 by Redneckerz 0 Quote Share this post Link to post
ludicrous_peridot Posted September 30, 2021 11 hours ago, Redneckerz said: Looking forward to whatever you will be doing from here on out. I actually thought that was it, tbh. I had a binary that finally ran for me and gave me a good experience in DOS including being able to run CoD. But then I saw the 180° turn thread, and as I encountered this couple of times while playing (Eternity mouse code is still there), may be having a look at that issue too. 2 Quote Share this post Link to post
Redneckerz Posted September 30, 2021 5 hours ago, ludicrous_peridot said: I actually thought that was it, tbh. I had a binary that finally ran for me and gave me a good experience in DOS including being able to run CoD. But then I saw the 180° turn thread, and as I encountered this couple of times while playing (Eternity mouse code is still there), may be having a look at that issue too. Appreciate the builds and the ESHELL replacement for Eternity to play Eternal Doom is a great bonus, thank you! :) You were aware that Eternal Doom III (Which also runs from ESHELL) could be a standalone game? It required modifying the Doom 2 IWAD, but TeamTNT did sneak in an option to do so. See here. Either way, as for your builds, i did test them ofcours : COD10FIX and COD10MBF were configured with the COD and CODLEV.WAD's. Both bomb out with the following error:W_GetNumForName: KEYDEFS not found! Tracing this error led me to this 2010 post and the file keys.csc - Its an old Eternity bug, replacing the 0 byte file with a new one seems to work. However, since the file is not existent in either zip file, i cannot test this, so i assume this is a file used by developers. Another silly point of remark: Please include the changelogs for these zips within those zip files so it becomes clear how this COD.EXE deviates from the rest. Other than that i'd love to test this further, hencemore the above report :) 2 Quote Share this post Link to post
ludicrous_peridot Posted September 30, 2021 @Redneckerz, you are right: I have not included any instruction on running into the OP, so have edited that now. That error is actually how original COD.EXE behaved when KEYS.SCS was not found. Original COD package comes with a valid KEYS.CSC and for convenience I have now included that same file into each of the above zips. I've also experimented a bit with handling mouse movement for horizontal turns (COD10MBF only), so feedback on that is very much appreciated. 1 Quote Share this post Link to post
Redneckerz Posted September 30, 2021 14 minutes ago, ludicrous_peridot said: @Redneckerz, you are right: I have not included any instruction on running into the OP, so have edited that now. That error is actually how original COD.EXE behaved when KEYS.SCS was not found. Original COD package comes with a valid KEYS.CSC and for convenience I have now included that same file into each of the above zips. I've also experimented a bit with handling mouse movement for horizontal turns (COD10MBF only), so feedback on that is very much appreciated. Short reply as its night: ill test asap tomorrow. Appreciate including the original files. Watch this space. 0 Quote Share this post Link to post
TheNoob_Gamer Posted October 1, 2021 On 9/29/2021 at 3:09 PM, ludicrous_peridot said: those willing to play Doom Eternal in Eternity Engine, starting through the shell for full experience... Ngl I thought this was some sort of breakthrough discovery until I realized you are referring to Eternal Doom. Maybe. 2 Quote Share this post Link to post
Redneckerz Posted October 1, 2021 15 hours ago, ludicrous_peridot said: @Redneckerz, you are right: I have not included any instruction on running into the OP, so have edited that now. That error is actually how original COD.EXE behaved when KEYS.SCS was not found. Original COD package comes with a valid KEYS.CSC and for convenience I have now included that same file into each of the above zips. I've also experimented a bit with handling mouse movement for horizontal turns (COD10MBF only), so feedback on that is very much appreciated. So i did some testing, but i can't exactly pinpoint what is changed. I enabled mouse movement, but everything seems smooth as expected. The frankenbuild seems to do well. Would it be alright to publish these on idgames? I realize ill have to ask more people's permissions, but i was wondering how you feel about it. 1 Quote Share this post Link to post
Dusty_Rhodes Posted October 1, 2021 1 hour ago, TheNoob_Gamer said: Ngl I thought this was some sort of breakthrough discovery until I realized you are referring to Eternal Doom. Maybe. Yeah I was really confused with that one. No harm done though. 1 Quote Share this post Link to post
ludicrous_peridot Posted October 1, 2021 @Dusty_Rhodes, @TheNoob_Gamer thanks for catching this typo. @Redneckerz, I certainly don't mind. My only reservation would be having to re-upload if and when bugs are fixed or adjustnents are made. Plus I imagine I would need an extensive readme, something I am unlikely to do soon. With regards to the mouse would you mind sharing the configuration you were testing with? I guess if mouse movement feels alright I have not done any harm by actually changing stuff in the engine (even if minor), as opposed to uplifting platform specific parts, so I may want to keep that. I was looking to get rid of rapid turns that were reported in the topic I linked earlier for a later Eternity build. 4 Quote Share this post Link to post
AnotherGrunt Posted October 2, 2021 @ludicrous_peridot Simply turn off Smooth turning and decrease Mouse sensitivity on Horizontal and Verctical slider and crank down (or maybe crank up) DPI on your mouse. Other than that it is just good old DOS Eternity Engine. My guess is some crazy multiplication with an increased sensitivity bar is the bug. 1 Quote Share this post Link to post
ludicrous_peridot Posted October 5, 2021 (edited) I've made code for the builds above available: https://www.moddb.com/mods/tartar/downloads/tartar-src On 10/2/2021 at 5:37 PM, AnotherGrunt said: Simply turn off Smooth turning and decrease Mouse sensitivity on Horizontal and Verctical slider and crank down (or maybe crank up) DPI on your mouse. Other than that it is just good old DOS Eternity Engine. My guess is some crazy multiplication with an increased sensitivity bar is the bug. Correct me if I'm wrong the way I read you is there's a workaround for the bug? Lowering sensitivity did not help me much unfortunately plus it gets in the way of playing the game I'm used to. But then I'm running 3.29b5, so we may be seeing different bugs. To counter the issue I have altered G_Game.c changing how "crazy multiplication" works and filtering ridiculously huge values coming from the mouse support routines. This was the most straightforward thing to do, plus that's where turn smoothing happened in the original code. Still I'm not sure that G_Game.c is the appropriate place for filtering, and that original peripherals and hardware this was meant to played back in 2002 ever exhibited the huge values comparable to what I'm seeing on my machine. So I'm in doubts about whether I am going to keep it or revert. Haven't yet consulted "modern" vs "vanilla" sensitivity difference that you've mentioned on the other thread. Edited September 19, 2023 by ludicrous_peridot 1 Quote Share this post Link to post
ludicrous_peridot Posted October 19, 2021 (edited) As I'm stuck with an ancient LCD for my DOS gaming for a few months at least, I couldn't resist experimenting with higher resolutions and different scaling options to have crispier visuals. I am yet to share the new "experimental" build that I got as a result, but for now am posting screenies demonstrating different modes it supports. Spoiler Spoiler Spoiler Spoiler Spoiler Spoiler Spoiler Spoiler Spoiler Edited September 19, 2023 by ludicrous_peridot 1 Quote Share this post Link to post
ludicrous_peridot Posted November 6, 2021 While I'm still testing higher resolutions, made some additional changes that wanted to share... A new "faux translucency" option that does not use tranmaps. This doesn't allow compositing of several sprites (e.g. a translucent window will be hidden when a specter gets between it and the player), and looks checkered on a screenshot when seen on a modern monitor. One has to see it in action on a 17" CRT in 1280x1024 to believe that it in fact yields almost perfect 50% translucency effect. Spoiler Blood color translation options, including "intelligent" selection of color Spoiler 2 Quote Share this post Link to post
Redneckerz Posted November 12, 2021 I love seeing more of this, certainly unusual to see a custom source mod being reverted to being a general port again, based off the COD Engine, nonetheless. 1 Quote Share this post Link to post
ludicrous_peridot Posted November 27, 2021 (edited) The 3.29b5 source turned out to be a treasure trove of exotic actor code (minotaurs, helpful dwarves, clerics, flying masterminds and the like), ambient sounds for any occasion and a working grenade launcher. Couldn't resist exploring how all that stuff actually played out in a wad, but was even more interested in checking out the dialog system. It turned out the dialogs were fully operational. Here's a recording. It's a shame this did not pick up in 2000s. I could imagine how easy adding Bio/System-shock like narrative devices would have be to a mod with these... Edited November 27, 2021 by ludicrous_peridot higher detail recording 3 Quote Share this post Link to post
Quasar Posted November 27, 2021 "Fully operational" might be a stretch as I had intended for there to be capability to have Strife-like options (I didn't even know Strife existed at the time I wrote this stuff). But yeah you appear to have figured out how to work what was there to its full extent at least :) 1 Quote Share this post Link to post
printz Posted November 27, 2021 Curious if this will ever see the light of day in a @Quasar sanctioned way. Right now it reminds me of the DOOM Bible, in that there's lots of wonderful stuff which could have been made without being sure that the gameplay would have worked. Its value is increased specially because someone hyped it as an extraordinarily complex gameplay, but never went through with it, so people always get excited when someone tries to revive it. Moreover, due to the original story not being complete, there's a lot of room for new author's individual interpretation, which may get it wrong in the end. Just like the DOOM Bible, the Eternity story involves multiple characters, which may also fail to execute if these characters are live sidekicks. 2 Quote Share this post Link to post
Redneckerz Posted November 27, 2021 9 hours ago, Quasar said: "Fully operational" might be a stretch as I had intended for there to be capability to have Strife-like options (I didn't even know Strife existed at the time I wrote this stuff). But yeah you appear to have figured out how to work what was there to its full extent at least :) What ludicrous is showing off isn't even the full story of the Joel-2 build line as i am sure you will know, but a lot of that is still under wraps to get ready. It was only a thing at the beginning of this Millenium, though.. ;) 1 Quote Share this post Link to post
Quasar Posted November 30, 2021 On 11/27/2021 at 12:28 AM, printz said: Moreover, due to the original story not being complete, there's a lot of room for new author's individual interpretation, which may get it wrong in the end. Just like the DOOM Bible, the Eternity story involves multiple characters, which may also fail to execute if these characters are live sidekicks. I mean, technically the story was complete. You started at the TTRF, met Roland Trague, he sends you into the portal to try to fix the timeline. You start jumping all through random parts of time, even coming back to the TTRF in an alternate timeline to find Trague dead, but eventually end up in a place called the Halcyon in a timeline where medieval magic-using humans fought the demons to a pyrrhic victory in which both sides suffered tremendous loss. Humans are nearly extinct but a dwarf named Halif Swordsmythe who had a special divine pact that makes him immortal (he will always be resurrected shortly after any blow that would kill him - sparing him none of the pain, which is kinda metal to think about it) continues his fight. Etcetc you eventually go further back in time to the Halcyon's glory days, but they think you're a demon and arrest you and sentence you to death. You prove yourself by defeating the grand templar in ritual battle though, fulfilling their prophecy of a savior figure. You go on to drive the demons out of all parts of the Halcyon and join a celebration at the City of Hope, but there the Archdemons reveal themselves and you have to track them down. At the end it was ambiguous, with you making one last time jump and hoping it would take you back to something resembling the future you left originally. Gotta leave room for a sequel, ya know. If I were doing it now I'd definitely change some things, like stripping out any references to mainstream religion in the Halcyon's lore. 2 Quote Share this post Link to post
printz Posted November 30, 2021 7 hours ago, Quasar said: even coming back to the TTRF in an alternate timeline to find Trague dead, Is it surely an alternate timeline? Or did you get to the real timeline, and found Trague killed by an assassin while you were away? 7 hours ago, Quasar said: but eventually end up in a place called the Halcyon How do you end up there? Do you take the portal again as soon as you find Trague dead, or are you vortexed by outside forces? 7 hours ago, Quasar said: Etcetc you eventually go further back in time to the Halcyon's glory days Do you find the portal in the Halcyon, is it operational, and it does a better job at bringing you back to Halcyon's past? Because at the beginning, the portal would send you "all through random parts of time", including ones you don't really want (such as that possibly alternate time with Trague dead). In any case, messing up with time travel would fit pretty great with messed-up space travel facilitated by linked portals. 1 Quote Share this post Link to post
HavoX Posted November 30, 2021 (edited) 8 hours ago, Quasar said: I mean, technically the story was complete. You started at the TTRF, met Roland Trague, he sends you into the portal to try to fix the timeline. You start jumping all through random parts of time, even coming back to the TTRF in an alternate timeline to find Trague dead, but eventually end up in a place called the Halcyon in a timeline where medieval magic-using humans fought the demons to a pyrrhic victory in which both sides suffered tremendous loss. Humans are nearly extinct but a dwarf named Halif Swordsmythe who had a special divine pact that makes him immortal (he will always be resurrected shortly after any blow that would kill him - sparing him none of the pain, which is kinda metal to think about it) continues his fight. Etcetc you eventually go further back in time to the Halcyon's glory days, but they think you're a demon and arrest you and sentence you to death. You prove yourself by defeating the grand templar in ritual battle though, fulfilling their prophecy of a savior figure. You go on to drive the demons out of all parts of the Halcyon and join a celebration at the City of Hope, but there the Archdemons reveal themselves and you have to track them down. At the end it was ambiguous, with you making one last time jump and hoping it would take you back to something resembling the future you left originally. Gotta leave room for a sequel, ya know. Sounds like something from a science fiction novel. :-P ...but alas, it never came to fruition, and that's a real bummer, too. :-( Edited November 30, 2021 by HavoX 1 Quote Share this post Link to post
ludicrous_peridot Posted February 1, 2022 (edited) Been modding recently using info.c from this port for reference (a habit of sorts) and this particular bit here made me feel warm and fuzzy for a moment: { // MT_KEEN 72, // doomednum ... S_KEENPAIN, // painstate 256, // painchance sfx_None, // joel - suffer in silence little man S_NULL, // meleestate ... Edited September 19, 2023 by ludicrous_peridot 0 Quote Share this post Link to post
Murdoch Posted February 2, 2022 2 hours ago, ludicrous_peridot said: Been modding recently using info.c from this port for reference (a habit of sorts) and this particular bit here made me feel warm and fuzzy for a moment: { // MT_KEEN 72, // doomednum ... S_KEENPAIN, // painstate 256, // painchance sfx_None, // joel - suffer in silence little man S_NULL, // meleestate ... I have a questionable sense of humour. 2 Quote Share this post Link to post
ludicrous_peridot Posted February 22, 2022 On 9/30/2021 at 3:27 PM, Redneckerz said: You were aware that Eternal Doom III (Which also runs from ESHELL) could be a standalone game? It required modifying the Doom 2 IWAD, but TeamTNT did sneak in an option to do so. See here. It's been quite some time, but I have only now figured out what you were referring to here. And found out that the ESHELL.EXE posted actually had an error as source port would not in fact pick up parameters specified in the shell, at least in IWAD mode. Uploaded fixed version into Tartar distro. 1 Quote Share this post Link to post
Redneckerz Posted February 22, 2022 3 hours ago, ludicrous_peridot said: It's been quite some time, but I have only now figured out what you were referring to here. And found out that the ESHELL.EXE posted actually had an error as source port would not in fact pick up parameters specified in the shell, at least in IWAD mode. Uploaded fixed version into Tartar distro. It never really was advertised as a option and its still a unique option even today. You also needed quite a lot of hard drive space back in the day to do this (Essentially you needed a copy of your Doom2 IWAD to perform this so you could keep your original IWAD clean), so not sure how often it was used. It might be useful for to modernize it and have it point towards FreeDoom or a blank IWAD instead. I don't know how much EDIII needs before it runs standalone. Surprised it actually causes errors, thank you for spotting these and fixing them for Tartar! 0 Quote Share this post Link to post
ludicrous_peridot Posted September 4, 2022 (edited) Just stumbled at more sources for pre-329b5 versions here: https://www.doomworld.com/3ddownloads/quasar/ ; some of these are not on mancubus.net archive. EDIT: and it also has the terrain definition lump generator tool Edited September 9, 2022 by ludicrous_peridot 1 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.