======================
== fabulous.systems ==
======================
Welcome to the world of fabulous.systems

Breaking the limits: Installing Windows 2000 in DOSBox-X


#retrocomputing #windows #preservation #emulation #operatingsystems

DOSBox 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.

Windows 2000: Inacessible boot device
Windows 2000: Inacessible boot device

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.

Welcome to Windows 98 setup
Welcome to Windows 98 setup

Windows 98: Component selection
Windows 98: Component selection

Windows 98: Please sit back and relax!
Windows 98: Please sit back and relax!

Windows 98: Booting for the first time
Windows 98: Booting for the first time

Windows 98: We have a working system!
Windows 98: We have a working system!

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.

Would you like to upgrade to Windows 2000?
Would you like to upgrade to Windows 2000?

Welcome to the Windows 2000 Setup Wizard
Welcome to the Windows 2000 Setup Wizard

Do we want to upgrade to NTFS?
Do we want to upgrade to NTFS?

Copying the required setup files, preparing for the next setup stage
Copying the required setup files, preparing for the next setup stage

Reboot!
Reboot!

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.

Installing Windows 2000 actually works!
Installing Windows 2000 actually works!

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.

Booting into Windows 2000 for the first time
Booting into Windows 2000 for the first time

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.

Windows 2000: Hardware detection
Windows 2000: Hardware detection

Windows 2000: Performing final tasks
Windows 2000: Performing final tasks

Windows 2000: Performing final tasks
Windows 2000: Performing final tasks

Creating the Windows 2000 user account
Creating the Windows 2000 user account

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…

Windows 2000 crashing explorer.exe
Windows 2000 crashing explorer.exe

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.

Windows 2000: Using the system with cmd.exe
Windows 2000: Using the system with cmd.exe

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.

Windows 2000: Internet Explorer works perfectly fine!
Windows 2000: Internet Explorer works perfectly fine!

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.

Windows 2000: Now with 100% more Taskbars!
Windows 2000: Now with 100% more Taskbars

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.

3D Pinball Space Cadet in Windows 2000 in DOSBox-X
3D Pinball Space Cadet in Windows 2000 in DOSBox-X

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.

It is now safe to turn off your computer.
It is now safe to turn off your computer.

Do you have any comments or suggestions regarding this article? Please drop an e-mail to feedback@fabulous.systems!