Breaking the limits: Installing Windows 2000 in DOSBox-X
#retrocomputing #windows #preservation #emulation #operatingsystemsDOSBox was one of the first emulators I used when I learned about emulation back in the early 2000s. Originally developed with its own DOS implementation for running games and legacy applications in mind, newer forks like DOSBox-X and DOSBox Staging started to support “real” system emulation as well, providing similar functionality as PCem or 86Box.
While originally only targeting MS-DOS emulation, DOSBox-X provides official support for Windows 95 and Windows 98.
“Well,” I said to myself, “if they already support Windows 9x, I could try running Windows 2000 on it! It shouldn’t be that hard, right?!”
At the time of writing this article, running Windows 2000 isn’t officially supported by the DOSBox-X project. Don’t blame the developers for any issues - this is very experimental.
But Windows 2000 isn’t DOS!
Yes, that’s correct. While Windows 95, 98, and ME (also referred to as the “Windows 9x series”) are using MS-DOS as part of their kernel, Windows 2000 runs on the Windows NT platform. Clearly, I won’t be able to start it using the DOS runtime environment DOSBox-X provides, but using their full system emulation should be possible.
As the base configuration for DOSBox-X, I used the configuration template for Windows 98 provided in the DOSBox-X wiki. Since the recommended system specifications for Windows 2000 include 128 MB of RAM, I modified the configuration file accordingly.
I started by creating a virtual hard drive image with a size of 8GB using the IMGMAKE
command and mounted both the virtual hard drive as well as the Windows 2000 ISO file.
Since I wasn’t able to boot the Windows 2000 ISO image, I used the boot floppy images shipped on the Windows 2000 disc to start the installer.
A promising start
I was pretty surprised that the floppy-based installer started without any issues. Expecting a smooth journey, I cycled through the three floppy images.
After loading the files from the third floppy, the Windows 2000 installer checked the system hardware, tried to find the virtual hard drive - and failed.
Great, what an amazing start! I tried to reboot the virtual system a couple of times, but without success. It looks like the IDE driver in Windows 2000 doesn’t support the virtual IDE interface created by DOSBox-X. Sure, you can load additional drivers when starting the Windows 2000 setup by pressing the F6
button, but without a matching driver, this won’t work either.
Plan B: Choosing the update route!
Luckily, I might be able to work around this issue by attempting to upgrade a Windows 98 installation to Windows 2000 instead.
To do so, I mounted the Windows 98 (Second Edition) ISO file in DOSBox-X. To make sure that the hard drive image is clean, I used the FORMAT
utility shipped on the Windows 98 CD-ROM to initialize the virtual hard drive.
While the retail versions of Windows 98 are not bootable by default, the CD-ROM for the OEM release can boot straight from the CD using the El Torito format. Since the release I had was indeed a OEM version, I didn’t have to work with a boot floppy this time. As recommended by the DOSBox-X documentation, I set the emulation core to normal
instead of dynamic_x86
to avoid crashes during the installation.
The installation itself was pretty easy and completed without any issues. I opted for a “minimal” installation since my plan was to replace the Windows 98 installation with Windows 2000 after the first boot.
Part one: Done!
Part 2: The Windows 2000 upgrade
Now it’s time for the exciting part of the project: attempting to upgrade the new Windows 98 installation to Windows 2000.
I loaded the Windows 2000 ISO image and launched the installer. After selecting the upgrade option, the setup asked if I wanted to convert the hard drive to the NTFS filesystem. Since I wasn’t able to boot from NTFS during my earlier attempts, I skipped this step and went with FAT32 instead.
I assume that the hard drive emulation is only able to boot from FAT, but this is just an educated guess and not being able to boot from NTFS might just be the result of a configuration error on my end.
Now that the first part of the setup is complete, I should be able to boot into both the Windows 98 installation and the Windows 2000 installation.
The moment of truth…
I restarted the virtual machine and selected the Windows 2000 setup from the boot menu. After loading the initial setup files from the hard drive, the Windows 2000 installer checked the system hardware, tried to find the virtual hard drive - and successfully detected it!
Immediately, the installer proceeded to the next stage of the installation by copying all the required systems files. Usually, these files are copied from the CD-ROM, but since I’m performing an upgrade instead of a clean installation, the files are copied from the hard drive itself.
A few minutes later, the system attempted to boot into the newly installed system. I honestly didn’t expect it to work, but to my surprise, it booted successfully on the first try.
What a relief!
Being able to boot into the next stage of the Windows 2000 installation indicated that it might just work.
And it did! The system started the final part of the installation, performing the hardware initialization and completing the final setup.
Mission complete?
After completing the final steps of the installation, I had to reboot the system one more time. At this point, I was feeling very confident that I would have a system that just works. I pressed the magic “reboot” button, patiently waited for the boot process to complete, logged into the system, and…
Oops.
The system started, but for some reason that I have yet to discover, explorer.exe constantly crashes. I attempted to restart it multiple times through the Task Manager and even rebooted the system, but without success.
As a result, I don’t have a functioning taskbar, and I’m unable to browse the system using the file explorer.
Luckily, I was able to run cmd.exe
through Task Manager, so accessing the system and launching additional programs was still possible.
Even though the Explorer was completely broken, Internet Explorer on the other hand worked just fine. Since Internet Explorer allows local file browsing, I had a very nice replacement on hand.
But well, I should probably fix it.
Update Rollup 1 to the rescue!
Since I had no idea what caused the crashes, my first troubleshooting step was to install all available updates.
The Windows 2000 ISO I used for the installation already included the latest Service Pack for Windows 2000. However, at the end of the Windows 2000 lifecycle, Microsoft released a package called “Update Rollup 1” which bundled all the updates they had released for Windows 2000.
The Update Rollup 1 package (Windows2000-KB891861-v2-x86-ENU.exe
) is still available online through various archival sites. I created a new ISO image with the update file, mounted it in DOSBox-X, and started the installation.
After what felt like an eternity and a reboot later, I noticed a slight difference compared to the previous reboot.
No more Explorer crashes and a working taskbar!
What about gaming?
With a working base system, I wanted to see what I can do with the system. First, I tried to run 3D Pinball Space Cadet.
The game works perfectly fine, with smooth graphics and flawless sound.
However, the next games I tried provided a much worse experience. Rollercoaster Tycoon starts just fine with smooth graphics, but the sound is completely unusable with heavy stuttering. I tried to work around it by tuning the DirectX acceleration settings, but I had no luck.
Next, I tried to install a copy of The Sims. The original installer for the base game repeatedly crashed DOSBox-X with an error message indicating some unimplemented features. The installer for The Sims: Deluxe Edition crashed Windows 2000 with a bluescreen. The only version I was able to successfully install was The Sims: Complete Collection.
Notice how I wrote install instead of run here? As soon as I tried to start the game, it simply crashed with an error message. At this point, I wasn’t too surprised - I guess that the CD-ROM emulation in DOSBox-X is simply not able to handle the SafeDisc copy protection of the game.
Closing words
From a usability point of view, this project doesn’t make any sense at all. For running games from the late 90s to the early 2000s, Windows 98 provides much better compatibility. You can either run Windows 98 in DOSBox-X or - if you want to be able to emulate a specific system - use a full system emulator like 86Box instead. Since 86Box emulates real, existing hardware, driver issues are much less likely as well.
But from a more technical perspective, this project was both interesting and impressive. Trying to see what emulation can achieve is always fascinating - and sometimes, you get results that seem to be impossible at first glance.
Do you have any comments or suggestions regarding this article? Please drop an e-mail to feedback@fabulous.systems!