First post, by koverhbarc
I've been curious about this for while now. I thought I knew how Windows provided memory to DOS programs, but some games don't work under XP and I'm not sure why. Any ordinary DJGPP program runs under XP (including all those I've written), and I believe DPMI should be managed automatically.
And indeed - ignoring sound for now - DOS real-mode games work unless they attempt to do something with the hardware that XP can't emulate. But protected-mode games (I guess that's synonymous with '32-bit' - did any DOS games ever use 16-bit protected mode? Win 3.x games did, of course.) are different. I will use Doom as an example because it's so widely distributed and it illustrates more clearly than other games which can just hang.
I was going to say the original Doom executables wouldn't run but it seems my XP was corrupt; restoring it has fixed things and it now does run correctly - just as under real DOS - with no sound or PC speaker sound. But Doom source ports are different; as many know, the Doom source code released (almost uniquely) was not that for the version anyone played, and as a result all source ports have different memory management (also sound) than the original.
DOS source ports don't work, inevitably giving 'Could not allocate DOS near pointers' which is an odd error because 'near pointers' should be in conventional memory. The exception is the MBF 2.04 developed on this forum, which has been made 'XP-friendly' and does run. It is perhaps the closest I can get to playing the original Doom, with the same resolution, aspect ratio, and with sound (DOSBox couldn't emulate the aspect ratio, as the monitor actually needs to be gotten into 400-line mode, which the Windows video drivers don't support). Strangely, that program doesn't run under a command line started as a DOS program (rather than a Windows one) - giving segfault - while it doesn't matter for any other DPMI program.
Does anyone know about this memory-management stuff? Is Win98 an improvement over XP at all (without booting into 'MS-DOS mode') - I don't think so, but I do have copies of 98 that I could install if I was willing to screw around with my hard disk.