installing windows 98, windows xp, and starcraft in qemu
I wanted to run the original Starcraft, released in 1998, on my Linux desktop using QEMU. Thus began my six hour rediscovery of computing in the 90s, an era when installing working software required wizardry, persistence, and luck.
First, I installed Windows 98 in QEMU using an ISO that I found online. Pentium 2 processor, 128 MiB of RAM, and 1GiB disk should be more than enough to handle Windows 98!
qemu-img create -f qcow2 win98.img 1G qemu-system-i386 \ -hda win98.img \ -cdrom win98se.iso \ -boot d \ -cpu pentium2 \ -m 128 -vga cirrus \ -net nic,model=pcnet -net user
I love an OS installer that drops you into a command prompt with no explanation. Windows 98 makes installing Arch Linux seem almost user-friendly!
Turns out I selected the wrong option in the boot menu. Installing from the CD-ROM let me access a GUI.
Time to configure my username and company. This felt jarringly corporate – I just wanted to play a game!
Windows had a bit of a dual personality: it was both a serious operating system for businesses and the de facto platform for PC gaming. There’s something unintentionally funny about an OS insisting that it’s “entertaining”:
Windows 98 was excited to tell me about the Internet!
I was able to install Starcraft from a CD-ROM image I found online, but when I tried to start it I got a “Direct Draw Error”:
Just like in the 90s! I remember my Windows-using friends complaining bitterly about video card driver support.1 I attempted to install a few drivers I found online from increasingly sketchy websites, with no success.
Eventually I gave up and decided to try Windows XP instead.
For Windows XP, I “upgraded” the emulated computer to a Pentium 3 with 512 MiB RAM and a 2GiB disk.
qemu-img create -f qcow2 winxp.img 2G qemu-system-i386 \ -hda winxp.img \ -cdrom winxp.iso \ -boot d \ -cpu pentium3 \ -m 512 \ -vga std \ -net nic,model=pcnet -net user
Windows XP was excited about its new look!
Starcraft installed successfully! I declined to register electronically.
Windows XP had a nifty “compatibility mode” for enabling 256 colors and 640x480 resolution.
Unfortunately, when I tried to start Starcraft, it failed with this error:
Starcraft is unable to read a required file. Your Starcraft CD may not be in the CDROM drive. Please ensure that the Starcraft disc is in the CDROM drive and press OK. To leave the program, press Exit.
I tried another CD image but still got the same error. I suspect there might have been some copy protection on the CD.
On the verge of giving up, I tried a CD image of the shareware version, and after fiddling with QEMU and Windows XP video settings, it started!
The configuration that worked was:
qemu-system-i386 \ -hda winxp.img \ -cdrom StarcraftShareware.iso \ -cpu pentium3 \ -m 512 \ -vga cirrus \ -net nic,model=pcnet -net user
As mentioned above, I enabled Windows XP compatibility mode for Windows 95, 256 colors, and 640x480 resolution. I also had to use the “cirrus” video card (not “std”) and select the lowest display resolution (800x600) in the Windows XP control panel.
This process made me remember how wild computing was in the late 90s. It was a common experience to buy a computer game, then spend hours trying different settings. If it didn’t work, you either had to discover a working configuration through brute force or hope one of your friends had already done so.
Of course, after spending so much time getting Starcraft installed, I played a bit of the Terran campaign.2 Give me something to shoot!
I don’t mean to imply that Macintosh users had it any better. At least on a PC you could try to install updated drivers. If things didn’t work on a Macintosh, there was usually no way to fix it. Even worse, your friends might tease you for not owning a “real” computer! ↩︎
Despite being emulated 100% in software, the game ran perfectly smoothly. The only thing that didn’t work was audio, but that’s probably because I didn’t configure a sound card. ↩︎