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

Freshly built 3.29 Dev Beta 5 Joel-2 (DOS, COD10SRC-based)

Recommended Posts

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.

 

etrn06.PNG.4b9fde5f1fd119edb5fb124ec6189dd4.PNG.5c2849f27d3cc53d2a44e110ecdbd4e9.PNG

 

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.

 

etern12.png.0b1eb276638522a64afea0a4104c37e6.png.9f35e93892e79d143f94c172baa8d329.png

 

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 by ludicrous_peridot

Share this post


Link to post

@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!

Share this post


Link to post

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".

Share this post


Link to post
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 by Redneckerz

Share this post


Link to post
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.

 

 

Share this post


Link to post
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 :)

Share this post


Link to post

@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.

 

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post

@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.

 

Share this post


Link to post

@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.

Share this post


Link to post

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 by ludicrous_peridot

Share this post


Link to post

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.

 

__etrn01_pcx.png.b13f34d5cbb4228d7558fe72a5db1101.png

 

Spoiler

etrn01_pcx.png.b8e3708f007864b6688a30b18ab35add.png

Spoiler

etrn06_pcx.png.9afa8840438348ee256b748c1950ec7b.png

Spoiler

etrn02_pcx.png.9f23799502ca82e07086e050371b29c9.png

Spoiler

etrn00_pcx.png.6b088e9da050612c75aa88ebe0190e1e.png

Spoiler

__etrn02_pcx.png.0575e65bd03ee64f2676a6961d4d3ec8.png

Spoiler

_etrn01_pcx.png.b4532930ea5700d961dfe41bb14d7f23.png

Spoiler

_etrn02_pcx.png.dcd3716b474f9c291e515c46902573a6.png

Spoiler

etrn12_pcx.png.f4e27f692fe8a276ffd4d1fa384d505a.png

Spoiler

etrn05_pcx.png.6f088631df5ae2754e68d72518432022.png

 

Edited by ludicrous_peridot

Share this post


Link to post

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

fauxtrans.png.b8b816f1be620a452e2f0e8159b26a48.png

 

Blood color translation options, including "intelligent" selection of color

Spoiler

bloodcolor.png.0a9f28aa3e12511f457ede00e3be53ce.png

 

 

Share this post


Link to post

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.

Share this post


Link to post

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 by ludicrous_peridot : higher detail recording

Share this post


Link to post

"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 :)

Share this post


Link to post

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.

Share this post


Link to post
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.. ;)

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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. :-(

Share this post


Link to post

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 by ludicrous_peridot

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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!

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
×