FrenkelS / Doom8088

Doom for 16-bit DOS computers
GNU General Public License v2.0
140 stars 5 forks source link

Load WAD into EMS #48

Open FrenkelS opened 1 month ago

FrenkelS commented 1 month ago

EMS is used as an Upper Memory Block of 64 kB. XMS is used to store the WAD file in, so it acts like a file that can be read very fast.

XMS isn't supported on an 8088, while EMS is.

Instead of using EMS as an Upper Memory Block, use it as storage for the WAD file.

vallenrod commented 2 days ago

Also popular Tandy 1000 TL (TL/2 TL/3) is a somewhat crippled 286 machine. It does not support XMS despite 286 CPU onboard. However when equipped with a Rampat Plus! memory expansion it does support up to 16MB of EMS. Because of that the "Load WAD into XMS" feature prevents the game from running on a TL with Rampat Plus card, I believe Rampat's driver reports XMS as present but it is not functional and the game crashes.

FrenkelS commented 2 days ago

Interesting. I guess I should implement a noxms command line argument.

Do Wolfenstein 3D and Commander Keen 4 also crash?

vallenrod commented 1 day ago

Keen 4 works for me, Wolf3d freezes immediately, there is a 8088 version that uses just EMS and works ok.