Win98 in Qemu

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Jump to navigation Jump to search

Computing: Software: Qemu: hosting Win98

This page is a seed article. You can help HTYP water it: make a request to expand a given page and/or donate to help give us more writing-hours!

This page is about installing and running Windows 98SE inside the Qemu hardware emulator.


I did the actual setup some time ago and have not yet found any notes I might have made, so documenting that will have to wait. What I did want to do is take notes on fine-tuning.

Supposedly, Win98 leaves the CPU in an infinite loop when it is not busy, rather than using the x86 HLT instruction. This has no visible effect when Win98 is running on real hardware (not sure if it affects power usage), but when running in an emulator it means that the (real) CPU is always 0% idle.

This is supposedly a patch to fix Win98 so it will not do that, but I was not able to get Win98 to boot after installing it. It's basically a .vxd file, a .reg file which adds a single reference in the registry so the .vxd file will load at startup, and a .bat file which supposedly copies the .vxd file to c:\windows\system and updates the registry from the .reg file. The registry update worked, but the .vxd file did not copy. When the file is not present, I get a text message from Windows saying it can't find the file; after copying the file, I get a text message from Windows saying that the file is damaged or not working or something like that.

The User-Mode Network

The qemu documentation often mentions a "user-mode" network ability, but doesn't really explain in a nutshell what can be done with it.

  • Allows internet access (ping is blocked because that would apparently require root privileges, but you can still use ping for DNS lookup)
  • Does not share your virtual machine in Network Neighborhood
  • Does allow your virtual machine to access a selected folder on your real machine via Network Neighborhood (see the -smb option)

(Although the user-mode network is also useful for guest operating systems besides Windows, this explanation is in here because of its Windows-specific details. If anyone knows how other OSs are affected, please feel free to document.)

Sound Emulation

Windows did not notice that I had enabled the SB16 emulation. It did notice the "ENSONIQ AudioPCI ES1370" emulation, but could not find a driver for it. I found a driver at DriverGuide, and was able to use BugMeNot to bypass the free compulsory signup process. I allowed Windows to re-detect the device, then used the "have disk..." button, rather than running the setup program included with the driver. As soon as installation finished, I heard the Windows 98 startup sound – no reboot necessary.