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

Restoration of differing Doom engine EXE revisions (also done for other games)

Recommended Posts

2 hours ago, ETTiNGRiNDER said:

Am I doing something wrong or is APODMX still a bit disappointing?  I got the Heretic source as released by Raven to compile using it (with only minor tweaks to get the compilation process to go through) but the music output isn't great.  I get that replicating the exact timbres might be hard but it seems to drop notes in some tracks and doesn't appear to work with any sound card setting besides "AdLib".

 

Last I checked, the music (via Adlib or Sound Blaster) does sound at least somewhat different, including also the volumes. Looking at the apodmx code, it seems to support Adlib, SB, MPU 401 and GUS?

 

For sound effects, apodmx appears to support SB and GUS, and at least for Doom, also the PC Speaker. The latter won't work with Apogee Sound System v1.1 or later, which explains why I chose 1.09 at the time.

 

More information can be found in recent posts of Nuke.YKT from the thread about Doom and Strife to which I linked. One major difference

is that DMX internally uses MUS, while the Apogee Sound System rather uses MIDI. Format conversions are supported up to differing extents.

 

3 hours ago, Redneckerz said:

 

So similarly to the recreated Doom/Heretic/Hexen sources, this would be an educational tool first and formost?

 

As a sidenote, its great that Ken chipped in for this - As notorious of a programmer as he was, the guy is a great tutor (and has done so on many occassions as his website shows).

Perhaps Duke4 itself could be an alternative. Though Ken is probably too busy with his Voxon work and his own private muckings to consider such, ofcourse.

 

I wonder what he thinks about Ion Fury, or The AMC Team or the Raze port.

 

For now gamesrc-ver-recreation/build is indeed similar to the other trees, in terms of documenting behaviors matching other versions (or at least attempts to do so) and possibly making these useful for source ports.

 

There's surely a lot which is covered by Ken's website.

 

If I'm not wrong, then at some point, Ken lost interest in checking (new) games, due to other engine developers still being in the industry and working on evolving tech.

 

I'm not sure he's following differing projects involving the Build Engine. I've found a quote of him here: https://steamcommunity.com/app/562860/discussions/0/1694914735993224533/

 

Re-quoting just in case:

 

Quote

"-I had to Google "Ion Maiden" to realize that this was a game being made by Voidpoint. Last year, I negotiated a contract with Voidpoint about using the Build Engine. As for the game itself, I know nothing about it, other than the fact that they are probably using a highly modified version of the Build Engine."
-Ken Silverman, 2018

Share this post


Link to post
On 2/6/2022 at 8:20 PM, Redneckerz said:

I wonder what he thinks about Ion Fury, or The AMC Team or the Raze port.

 

Got an update from TerminX, who heard the following from Ken. From what I was told, he liked Ion Fury, and even found a place where a familiar error from Duke Nukem 3D: Atomic Edition was reproduced:

 Too many sprites spawned.

 

Share this post


Link to post
On 2/6/2022 at 11:35 PM, NY00123 said:

For now gamesrc-ver-recreation/build is indeed similar to the other trees, in terms of documenting behaviors matching other versions (or at least attempts to do so) and possibly making these useful for source ports.

Would this help projects that now are standalone using EDuke32?

On 2/6/2022 at 11:35 PM, NY00123 said:

Re-quoting just in case:

Ken's tech goes places, with Ion Fury's Fury Engine :)

 

4 hours ago, NY00123 said:

 

Got an update from TerminX, who heard the following from Ken. From what I was told, he liked Ion Fury, and even found a place where a familiar error from Duke Nukem 3D: Atomic Edition was reproduced:


 Too many sprites spawned.

 

Looks like Ion Fury pays respect to the Duke in more than one way :) Good to know he likes the tech - A Build Engine game is instantly recognizable, in the same vein one could spot a Doom engine game from a mile away.

Share this post


Link to post
16 hours ago, Redneckerz said:

Would this help projects that now are standalone using EDuke32?

 

I wonder what do you refer to when writing standalone - I guess that not projects like Ion Fury or The AMC Squad, but rather separate game modules like Rednukem or NBlood?

 

I do know that reconstructed Build Engine code (even if not in gamesrc-ver-recreation at the time) assisted for compatibility when behaviors could be game-impacting, say clipping. EDuke32's revision of the Build Engine has separate versions of functions, like clipmove_compat, and a variable named enginecompatibilitymode is used for selecting the exact functions in use. There are also other behaviors which are changed, based on this variable.

 

Different values of enginecompatibilitymode are used not just for Rednukem, NBlood or PCExhumed, but also for VoidSW.

 

Albeit maybe not what you originally asked for, in terms of Duke3D game code, I know that certain bits in gamesrc-ver-recreation/duke3d helped fixing errors in EDuke32 game code specific to NAM and WW2GI.

 

16 hours ago, Redneckerz said:

Looks like Ion Fury pays respect to the Duke in more than one way :) Good to know he likes the tech - A Build Engine game is instantly recognizable, in the same vein one could spot a Doom engine game from a mile away.

 

This might depend on how far did games become from each other. Differing Build Engine games are based on distinct game codes, making them feel at least partially different (say in terms of physics); Earlier examples, like Lameduke, might give a different feeling due to the apparent lower frame rate; But there are indeed more than enough common traits which can be found.

Share this post


Link to post
7 hours ago, NY00123 said:

 

I wonder what do you refer to when writing standalone - I guess that not projects like Ion Fury or The AMC Squad, but rather separate game modules like Rednukem or NBlood?

I actually mena projects like AMC Squad.

7 hours ago, NY00123 said:

This might depend on how far did games become from each other. Differing Build Engine games are based on distinct game codes, making them feel at least partially different (say in terms of physics); Earlier examples, like Lameduke, might give a different feeling due to the apparent lower frame rate; But there are indeed more than enough common traits which can be found.

Then i guess this should break gamever-recreation and standalone EDuke32 mods, as they may differ. Thanks for addressing!

Share this post


Link to post
1 hour ago, Redneckerz said:

I actually mena projects like AMC Squad.

Then i guess this should break gamever-recreation and standalone EDuke32 mods, as they may differ. Thanks for addressing!

Since it's about projects like The AMC Squad, their development may continue regardless of what gamesrc-ver-recreation offers; After all, they may still use the stock EDuke32 behaviors. without changing the version compatibility variable. On the other hand, doing the latter might assist if some form of stability and/or expected behaviors as desired, in case these may change during development of EDuke32 itself.

 

Referring to the breakages mentioned by you, question is - what may get broken? I originally referred to how, e.g., Duke3D, Blood and SW use very different game codes, and thus may feel different; The same may apply when comparing these to binaries that use earlier engine revisions, like LameDuke; Even if only due to game-side differences between LameDuke and the released Duke3D game, rather than engine-side changes.

Share this post


Link to post
13 hours ago, NY00123 said:

Since it's about projects like The AMC Squad, their development may continue regardless of what gamesrc-ver-recreation offers; After all, they may still use the stock EDuke32 behaviors. without changing the version compatibility variable. On the other hand, doing the latter might assist if some form of stability and/or expected behaviors as desired, in case these may change during development of EDuke32 itself.

 

Referring to the breakages mentioned by you, question is - what may get broken? I originally referred to how, e.g., Duke3D, Blood and SW use very different game codes, and thus may feel different; The same may apply when comparing these to binaries that use earlier engine revisions, like LameDuke; Even if only due to game-side differences between LameDuke and the released Duke3D game, rather than engine-side changes.

The first thing that comes to mind that might get broken is CON script behavior. Have you tested your recreated builds against CON-heavy based mods to see if these execute properly?

Share this post


Link to post
7 hours ago, Redneckerz said:

The first thing that comes to mind that might get broken is CON script behavior. Have you tested your recreated builds against CON-heavy based mods to see if these execute properly?

If you're talking about DOS executables made via gamesrc-ver-recreation, then the most that I did was building exes and comparing them (e.g., their contents) to the originals; Albeit I do recall getting a functional play-through of Duke3D v1.5's original 3 demos.

 

When it comes to EDuke32's Build Engine, relevant changes that impacted behaviors came from Nuke.YKT for most. I checked with him for more details. Before the unrelated clipping overhaul of EDuke32 (impacting the EDuke32 game code, including Ion Fury), Nuke.YKT's changes were smaller, but he still had to apply modifications for Rednukem and NBlood demo compatibility. More code was added by him after the overhaul, so demo compatibility may remain. This was also done for PCExhumed.

 

As I wrote earlier, the engine compatibility variable was appropriately set for VoidSW, in addition to the game trees specific to the NBlood repository. The variable is also explicitly set in NetDuke32 (at the time, EDuke32-OldMP).

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
×