Updated: June 29, 2006
Would you like to play good ole games like Warcraft, Wolfenstien, Doom 2, X-Wing, and others? Would you like to
experience the 256-color beauty of 16-bit software? Sounds good, eh?
I have decided to look back at older operating systems about the time Windows XP SP2 was released. Following an
update on one of my Windows machines, I suddenly realized that I could no longer play a very favorite game of
mine, Caesar III. And then, after trying to install Transport Tycoon Deluxe once again (as a compensation for
having lost Caesar), I was unpleasantly surprised to discover this funny little game would not run on Windows
XP. Even though I have not played TTD since the days of Windows 98, and the sudden loss of two of my better
games made me introspect profoundly.
Nothing I would do helped. Running applications in other modes under Windows XP did not work. Neither did the
use of a variety of patches, specially designed to solve these kinds of problems. Then, I stumbled upon a great
product called VMware Player. VMware Player is a virtualization software that allows you to run a variety of
PC-based operating system as an application within your existing OS. Sounds great. You can read more about
VMware Player in an article called VMware Player - a great friend.
I download and installed the VMware Player and started installing older operating systems that I had, hoping to
restore the ability to play old games. Luck struck me twice. I was able to successfully install Windows XP Home
SP1 as a virtual machine on one of my Windows XP Pro SP2 hosts. And inside the guest OS, I managed to install
Caesar III and play it once again. Yes! And then, I came across Open TTD, the open-source clone of Transport
Tycoon Deluxe, which allowed me to play this great game natively in Windows XP SP2.
You may want to read about how to install Windows XP in general and as a guest OS
inside VMware Player in particular. You can read about my success with Caesar III in detail. You can also read my game review. You can read about Open TTD how to install and play as well as the separate game review. And then I got bold. Caesar III was a game released around 1998.
Transport Tycoon Deluxe dates back to 1994. How about going even further back in time? How about DOS?
How to install DOS
If you do not know what DOS is, or do not care about it, you can stop reading right now. MS-DOS was one of
the more popular desktop operating systems in the 80s and early 90s. It is now no longer supported for quite some
time and getting a copy of it would probably be quite hard. But that should not worry you. Instead, there is the
, a "100% MS-DOS compatible OS" (quote from the site).
I decided to try FreeDOS as my DOS platform. And since I could not afford to dual-boot FreeDOS on any of my
machines, I opted to try it out in VMware Player, the cheapest, the fastest and the most sensible solution. This
way, I could easily debug errors along the way, without any permanent changes or even damages to the system. You
should follow my Linux From Scratch
article to learn how to:
- Install and use VMware Player and QEMU.
- Create a .vmx virtual machine configuration file.
- Configure the .vmx file to boot from a virtual CD (mounted .iso).
- Create a virtual hard disk.
Nevertheless, I will elaborate some of the basics that I did to create my DOS environment.
- I downloaded the bootable FreeDOS .iso.
- I created the following .vmx configuration file (below); you can copy it and use it as your own. Just make
sure you save it as an All Types file rather than a .txt file (in any text
editor, e.g. Notepad).
config.version = "8"
virtualHW.version = "3"
guestOS = "other"
displayName = "FreeDOS"
numvcpus = "1"
memsize = "64"
MemAllowAutoScaleDown = "FALSE"
MemTrimRate = "-1"
uuid.action = "create"
tools.remindInstall = "TRUE"
hints.hideAll = "TRUE"
tools.syncTime = "TRUE"
usb.present = "TRUE"
usb.generic.autoconnect = "FALSE"
serial0.present = "FALSE"
serial1.present = "FALSE"
parallel0.present = "FALSE"
# Sound settings
sound.present = "TRUE"
sound.virtualdev = "sb16"
logging = "TRUE"
log.fileName = "FreeDOS.log"
log.append = "TRUE"
log.keepOld = "1"
isolation.tools.hgfs.disable = "FALSE"
isolation.tools.dnd.disable = "TRUE"
isolation.tools.copy.enable = "TRUE"
isolation.tools.paste.enabled = "TRUE"
ethernet0.present = "TRUE"
ethernet0.virtualDev = "vlance"
ethernet0.connectionType = "nat"
ethernet0.addressType = "generated"
ethernet0.generatedAddress = "00:0c:29:80:9c:48"
ethernet0.generatedAddressOffset = "0"
floppy0.present = "TRUE"
floppy0.startConnected = "TRUE"
floppy0.autodetect = "TRUE"
ide1:0.present = "TRUE"
ide1:0.deviceType = "cdrom-raw"
ide1:0.startConnected = "TRUE"
ide1:0.fileName = "auto detect"
ide1:0.autodetect = "TRUE"
ide1:1.present = "TRUE"
ide1:1.fileName = "fdbootcd.iso"
ide1:1.deviceType = "cdrom-image"
ide1:1.mode = "persistent"
ide1:1.startConnected = "FALSE"
ide0:0.present = "TRUE"
ide0:0.fileName = "freedos.vmdk"
ide0:0.mode = "persistent"
ide0:0.startConnected = "TRUE"
ide0:0.writeThrough = "TRUE"
ide0:0.redo = ""
uuid.location = "56 4d 2e 31 1d 13 5d 4f-0d a6 5c b7 54 80 9c 48"
uuid.bios = "56 4d 2e 31 1d 13 5d 4f-0d a6 5c b7 54 80 9c 48"
A great site that can help you in the creation of virtual machine configuration files is EasyVMX!. The site
provides an interactive interface for the creation of .vmx configuration files, which can then be downloaded and
used. I then used QEMU to create my virtual hard disk; I created a small 500Mb disk by typing the following
command in the QEMU directory (command line):
qemu-img.exe create -f vmdk freedos.vmdk 500M
Then, with all files grouped in one folder, I started the VMware Player, booted off the CD (.iso) and
installed FreeDOS. The installation is rather straightforward. I will not go into details, however, if I happen
to get lots of emails (> 2) asking for detailed step-by-step guide, I might consider adding it later on. But
again, it's very simple, just follow the instructions on the screen.
One of the marvels I discovered about FreeDOS was the CD-ROM support. I was rather enthusiastic, because I did
not feel keen about working with floppy disks. So, I waited for the installation to complete. I rebooted. And
then, I was presented with a number of choices. Of course, I decided to go for option 1, with all the drivers and
It did not work. Most of the drivers failed to initiate. I did not have High Memory. I did not have a mouse. I
did not have a CD-ROM. Hmmm. I spent the next 2-3 days trying to figure out why the things did not work out
properly. Eventually, I came to realize a few startling points:
- Paths to certain files and their names were not correct (in the fdauto.bat
- The CD-ROM driver was bad (in the fdconfig.sys file).
Modifying the system files
Well, without turning this article into a saga of trial and error, describing every step I did, I managed to
solve all of the problems. I changed the original fdconfig.sys
files to load the working drivers and execute the correct paths and filenames. I
replaced the CD-ROM driver provided with FreeDOS with a working aoatapi.sys
And finally, I installed dosidle.exe
to keep the CPU from working at full throttle
non-stop (that's the way DOS works).
Because I'm unaware of the legal issues pertaining to aoatapi.sys
, I will certainly not host them or direct-link to any of the sources available on
the Internet. I cannot also guarantee the quality of these sources.
Therefore, the best advice I can offer you is to search for aoatapi.sys
using search engines. I have managed to find reliable copies within
minutes. You can try Google search for aoatapi.sys here
. You're welcome
to your own choice or search engines and words.
The first thing I did was copy the two files onto a floppy disk and then copy them onto the hard disk of the
virtual machine. I executed dosidle.exe
and got my CPU breathing normally again.
Below you can find my modified fdconfig.sys and fdauto.bat.
SET DIRCMD=/OGN /4
MENU 1 - Load FreeDOS, with maximum RAM free, using EMM386
MENU 2 - Load FreeDOS, including HIMEM XMS-memory driver
MENU 3 - Load FreeDOS without drivers
1?DEVICE=C:\FREEDOS\BIN\EMM386.EXE NOEMS X=TEST VDS
REM 1?DEVICEHIGH=C:\FREEDOS\BIN\ATAPICDD.SYS /D:FDCD0001
IF not "%CONFIG%"=="1" goto noperuse
rem echo Load PERUSE scrolling driver?
rem lh c:\bin\peruse.exe
rem echo PERUSE loaded
IF "%CONFIG%"=="3" goto nomouse
lh c:\freedos\bin\ctmouse.exe /3 /V
if not exist CDRCACH$ goto normalcd
echo Activating cached CD-ROM drive now.
rem lh c:\freedos\bin\shsucdx.exe /D:CDRCACH$,N
lh c:\freedos\bin\shsucdx.com /D:CDRCACH$,N
rem the above goto avoids double SHSUCDX loading.
rem if not exist CDROM001 goto nomorecd
if not exist fdcd0001 goto nomorecd
echo Activating uncached CD-ROM drive now.
rem lh c:\freedos\bin\shsucdx.exe /D:CDROM001,N
lh c:\freedos\bin\shsucdx.com /D:FDCD0001,N
IF "%CONFIG%"=="3" goto noshare
rem LH c:\freedos\bin\share.exe /L:20 /F:2048
lh c:\freedos\bin\share.com /L:20 /F:2048
IF "%CONFIG%"=="3" echo The environment contents are:
rem echo. displays an empty line...
IF "%CONFIG%"=="3" echo.
IF "%CONFIG%"=="3" echo goto nopause
echo Welcome to FreeDOS. Press enter to go on and see environment:
echo FreeDOS is now at your service :-)
Copy & paste the text into a text editor, save the files (I suggest .bak extension, All Types
type), place them on a floppy and copy them onto the hard disk of your virtual
machine. Backup the original fdconfig.sys
and rename the newly created .bak to .bat and .sys respectively. Please bear in
- I installed FreeDOS under C:\FREEDOS.
- I placed the aoatapi.sys and dosidle.exe in the
root directory, i.e. C:\.
- Your country and language settings may differ.
- I left the existing non-functional command lines, I only commented them so they would not run. For
instance, I left the PERUSE and mouse lines, although when active they would not execute properly - the PERUSE
driver could not be found and the mouse would not work - however commented they have no impact. This is also
true for CD-ROM, share etc.
- I left the original assignment of letters to CD-ROM drivers beginning at N (N:, O: etc.), however you can
change this to anything you like, provided there are no conflicts.
Make necessary changes to file paths (if needed) in the fdconfig.sys
to reflect your installation choices. Reboot. Luckily, your OS will work
Your OS environment should look like the image below, you should have a mouse available (test it by typing edit
, for instance; you should be able to see a mouse cursor), and you should
have at least one CD-ROM driver available, if you used my .vmx conf file. Likewise, dosidle.exe
should work, too. Basically, that's it. You have a working DOS now.
In one of the next articles, I will write about my success (or lack thereof) at running the good ole games
that built and shaped our character(s) in the early 90s. I'm aware that old games uses to query the serial and
parallel ports (COM1, LPT1). To the best of my knowledge, some modern Windows OSes do not quite like that. I have
observed this phenomenon with VMware Player, too. It's possible that the denied access to hardware, which is the
main reason most of these games no longer run, could still impact the ability to play them. Nevertheless, I'll
give it a try.
I have also heard that much like Open TTD, various projects exist, which have enabled the contemporary PC user to
experience games like Doom and Duke Nukem 3D in modern operating systems. I will check these hopefully true
rumors and keep you updated. On the other hand, if you have any news or suggestions for me, please email me. I
will post them with due credits.
You will find the updates in my Reviving
old games section, which
also covers Caesar III and Open TTD. You can also read my reviews and view screenshots of these fine games in the
Computer games category.