Friday, December 12, 2008

DOS4GW.EXE Version 2.01a and Alternative DOS Extenders

The Tenberry DOS extender DOS4GW.EXE was used by many early DOS games. I still enjoy playing many of these games and DOS4GW.EXE is usable with DOSBox, so they can be played on Linux.

However, the version of DOS4GW.EXE that was provided was whatever was current at the time. The most recent version that includes many bugfixes that possibly affected the games when used with DOSBox have been fixed in the latest version, 2.01a.

It's not free at US$49, but you can downloaded it here. Simply substitute it for whatever version of DOS4GW.EXE your game provided and enjoy the bug-fixed goodness. Tenberry also makes a "high-performance" "pro" version of DOS4GW.EXE, but it costs $300. I think that they could sell quite a few of these to hobby users (since you know, DOS is dead) for US$5.

Open Souce to the Rescue
There do seem to be better performing, free and Open Source alternatives available and worth a look. First, though, let's understand DPMI, or DOS Protected Mode Interface. It allows DOS programs to run in Protecrted Mode and have access to features of the processor not available in Real Mode. This is mostly to allow DOS apps access to more RAM. While you would think that full DPMI 1.0 compliance is great, Windows 95-to-Vista only supports DPMI 0.9 (plus the math co-processor and int 0x2f functions from DPMI 1.0) so if your app uses 1.0 features not supported by Windows, it will not run in a Windows DOS-box. As a result, most DOS extenders are written to the 0.9+ Microsoft spec.


An alternative DOS extender is DOS/32A and the download link is here or here. It is Free Open Source Software and can be used as a drop-in replacement for DOS4GW.EXE (you just have to re-name it to DOS4GW.EXE), but is much faster and more efficient. You may find that it works "more better" with your particular game. I know that Carmageddon runs better with it. If your DOS game uses DOS4GW, you should use this.


Another DOS extender of interest is the HX DOS-Extender. The advantage to it is that has built-in Win32 PE file format support, providing a win32 API so win32 console apps will run. Most interestingly, it has a GUI extension that allows some simple Win32 GUI apps to be run as a "stand-alone" application without the need for Windows, a Windows emulator or WINE; there is 16-bit support as well. Opengl support is also provided, but is software only. There is ongoing development and it is compatible with Bochs, Qemu, DosBox, VMWare and VirtualBox. Sadly, this cannot be used in a Linux environment since Linux DosEmu will not allow a ring 0 application like HDPMI to run under its control, instead implementing its own DPMI host. It can be used with DOSBox.

I recall seeing some DOS games (like QUAKE, which actually use an alternate version) using CWSDPMI.EXE , so here's the link to the homepage; source and binary downloads are available although Rice.edu seems to have taken it offline for now, so it's only available from the Internet Archive (above link fixed). It supports memory swapping. If your DOS game uses CWSDPMI.EXE, get the current version.



DPMIONE has an interetsing feature -- it is fully DPMI 1.0 compliant, takes up less lower memory that the others, is only loaded once, includes a built-in extender, but is non-commercial use only. Download it here.


SUMMARY
While running old games is fun, the real value of applications like DOSBox and these modernized DOS extenders is the ability to run legacy commercial 16-bit and 32-bit apps on a more robust and secure operating system on modern hardware at little expense and with relatively easy and rapid development.

NOTE:
With over 2000 views, any comments and feedback would be appreciated. I hope you found this information useful. I'm curious to know what applications you use with this.

RESOURCES

DOSBox: AUTOEXEC.BAT and CONFIG.SYS emulation.

Autoexec.bat and Config.sys information





To create a formatted floppy image using Linux.It will not be bootable unless you install MSDOS, DR-DOS or FreeDOS on it.

$ mkfs.vfat -C "1440floppy.img" 1440
$ mkfs-vfat -C "2880floppy.img" 2880 
# you can use the bigger floppy size


1 comment:

Man MKE said...

Thanks. I have some old MS-DOS apps and a few games (both DOS and early Windows) that I can't get to run in Vista or Windows 7. DOSBox? So far no good. While a bit over my head, your page was helpful and points me in a direction I think may provide a solution. No rush on this for busy me, but I've copies the information, will grab some of the add-ons you suggested, and give 'em a try. Thanks for your effort.