If I could summarize what I think I understand:
- DOS4G/W is included in a lot of games, and it has bugs that cause the games to crash. (It wasn't totally broken, many people played these games fine back in the day)
They have a list of bugs here: https://web.archive.org/web/20190123202 ... rn4gw.html
- To work around bugs that effect you have to change your hardware configuration, software configuration, or replace the buggy DOS4G/W with a new DOS extender, normally DOS32/A.
There's been suggestions that even on real systems running with 256MB of RAM breaks old DOS games unless you change to a newer DOS extender. This makes sense to me, if someone wrote their software to track free space in a 16-bit integer, you're number will wrap if you have more free space than can be stored.
One work around suggested is to use XMSDSK to consume enough memory so the free space remaining seen by the game is less than 64MB.
https://www.vogons.org/viewtopic.php?f= ... sk#p994765
However I've been struggling to narrow down a simple test case where I can reproduce a problem that I can point the finger at the DOS4G/W. If changing RAM to 16MB had a positive effect on a game, then I can see the logic to try and make an AO486 build that has 64MB to allow us to run more "Terminate-Stay-Resident" programs, as well as the original games (which together may exceed 16MB).
For example if I try to install Red Alert (as was discussed on another thread) which runs DOS4G/W 2.0, it locks up when trying to copy files. I'm running FreeDOS and I have a few startup options FreeDOS gives me
- With JemExx: I get an exception running setup.exe, doesn't even start.
- With Jem386: Setup runs, but freezes when copying files.
- Safe Mode: Install runs fine.
If I drop my RAM setting from 256MB to 16MB, I can now start setup.exe with JemExx, but the setup locks up copying files. And even when setup completes and I go to the c:\westwood\redalert folder, most of the files haven't actually been copied. Now changing the RAM settings definitely makes the software start or crash with exception, but is this a bug in FreeDOS/JemExx or DOS4G/W? Why does copying files seem to work sporadically?
Trying to run Descent, I can install fine, but when I run the game I get different errors:
- With JemExx: I get an invalid op code exception.
- With Jem386: I get a divide by zero exception.
- Safe Mode: A bunch of invalid op codes
- No drivers: Two invalid op code errors.
I found some test programs already written for DOS which could be helpful in tracking down some of our problems in a more controlled way:
https://github.com/joncampbell123/doslib
As far as I can tell most of the test programs run with DOS32/A, but we could switch it back to DOS4G/W and try to create the original bugs reported by Tenberry in an effort to make AO486 more compatible with the buggy software. There are some bugs about RAM size in their release notes, but even if we avoid that problem we may crash because of some of the other bugs.
I think I'll focus on why Descent crashes because it crashes so quickly, and I'll use an MS-DOS environment rather than FreeDOS.