Anybody who's interested can grab the sources for my unofficial DOS port and then check them out.
As I already wrote beforehand, there were unfortunately multiple problems that I went through with this port, mostly instabilities while running Duke3D under EDuke32-DOS using a specific environment or two.
One main concern that's present for 32-bit DOS apps, making use of DPMI, is the need to lock certain chunks of memory, especially data accessed by interrupt handlers.
There was a kind of an attempt of mine to lock anything on startup, but this isn't necessarily reliable. It's also possible that the specific environment in which you run the game can override certain behaviors related to memory management.
Eventually, this was mostly an experiment done to see if I could run Ion Fury under DOS, at least with a relatively new PC.
The answer was that under the right conditions, and with an important feature being disabled, I could start the Preview Campaign and then finish it. The feature that I had to disable was the saving of snapshots, as you're moving between differing hub maps belonging to the same hub.
oasiz, on 01 September 2020 - 12:08 PM, said:
One would need to re-implement the ASM routines that have been ripped out ages ago.
In other words, quite a bit of work.
From what I recall, EDuke32 still has assembly versions of differing pragmas; It also has a.masm and a.nasm. What it does not have is assembly code for the low-level audio mixing routines.
EDuke32, however, added (and modified) so much over the original, that its system requirements would obviously be higher, even if we ignore the differences in performance between ASM code and C. Higher memory requirements was actually a potential contributor to problems that I had experienced under at least a couple of setups of DOSBox variants, like crashes.