Since this is now became a common request by many, I decided to write a tutorial about Windows 9x (95/98/98SE/Me) usage on VirtualBox.

Forenote: Windows 9x is not officially supported by VirtualBox team, which means, that it lacks Guest VM Additions, and it runs slowly, because VirtualBox is not optimized to run Win 9x.

1. Installation - I won't cover here in detail, except few points.

Most CD-ROMs available for Windows 95/98 are not bootable, which means, that you must boot from DOS floppy, install DOS first and only then install Windows 95/98.*It does require DOS skills*Official bootable CD media is starting from 98SE. So if you're newbie, you should use Windows 98 SE bootable CD.

Additionally I strongly suggest to limit system RAM to 512 MB for those OSes. Otherwise it will crash. (There are workarounds, that allow Win 9x run on modern physical systems, but I won't go into detail here)In some cases enabling or disabling AMD-V/VT-x can help you install the O.S.

For this tutorial, I presume, that you are able to install the OS.

Installing with ACPI:(contributed by Richard_S)

Contrary to what you may have read here in some of the other VirtualBox Win98 threads, this is NOT because Win98se is a poorly written piece of antiquated crap that doesn't even know how to properly handle CPU IDLE.

Back when a lot of todays young Linux geeks were still pooping their dipiys, Win98 was already supporting ACPI functions to create greener PCs and help keep laptops from running down their batteries in 10 minutes (which is exactly what DID happen to me the first time I installed Linux on a laptop that was working FINE in Win98).

So, long story short, there is NOTHING really wrong with Win98, the problem is that VirtualBox's emulated BIOS doesn't fully match up with what Win98 expects a real ACPI BIOS to look like, so by default Win98 will not install ACPI support (and unfortunately, the older APM support doesn't handle CPU IDLE, so we get problems).

The solution is to FORCE ACPI support to be installed, by using the

/p j

command line switch when running the setup program that installs Win98.

This means that you can't just jam the virtual CD into the virtual CD drive and let 'autorun' take care of everything.

The best way to handle this is to simply move the Win98 install folder from the Windows 98 SE CD onto your virtual C: drive in VirtualBox, then change directory to that folder in a DOS prompt and run the setup program manually:

setup /p j

This will force ACPI power management (and the associated CPU IDLE functions) to be installed, and your Win98 virtual machine will consume no more system resources when running than a similar XP or Linux virtual machine.

2. Sound /Audio Integration.

In VirtualBox, you must enable Sound, and use "Sound Blaster 16".It is available since VBox 1.6.0.

The procedure for installation is rather simple:NOTE: The procedure below is only needed if you switch from AC'97 to SB16.It is not needed, if you create new VM with SB16, then install Win98 on it.

The driver is a high quality commercial grade video driver (even includes some software emulated Open GL 3D support), and it does include an exe installer program.

Despite having an installer, the SciTech Display Doctor is a little tricky to get going. After the program launches, you have to find the little round radio button link to click to 'enable' the new driver (otherwise you still have VGA). Even then, you can't select any higher resolution modes until you ditch the 'default monitor' and select one of the 'Super VGA' types.

After fiddling around with the above changes and rebooting several times you should be able to select 800x600 or 1024x768 (or higher) resolutions with 32 bit color depth. (setting 32 bit color mode optimizes the interface with Virtualbox and really speeds things up)

4. NetworkEasiest thing, is to setup VirtualBox to NAT, and AMD PCnet-II network chip. It will be auto-detected by Win 9x.

(Tested with VBox 2.1.2.-- and was successful with "bridged" network. I had no success with NAT.)WARNING: I admit that with VirtualBox the network is very unstable, presumably due to very slow performance of Win 9x guests under VBox.

For Unix hosts, WinSCP is recommended.

Another way of read-only file sharing is to create a virtual CD-ROM *.iso file on the host and insert it into the guest VM.

7. Clipboard Host<=>Guest(contributed by stefan.becker)

Clipboard integrated in VirtualBox only works with the Guest Additions, so not for Windows9x. But there is another solution: Clipboard over TCP/IP.

Win9x is using an idle loop instead of HLT: the loop lets the host CPU running the Win9x virtual machine consume 100% all the time. This only applies to DOS and DOS based Win (3.x, 95/98/ME) - NT based Windows and all other operating systems are not affected

Install rain, waterfall or cpuidle in the Win9x guest - my preference is rain as it only does what is needed -replace the idle loop with HLT execution- and nothing more

Unzip the driver in the guest. Start system control/display, chosse the settings/advanced/vga-card, change the vga-card and choose option to show drivers in a directory, there choose manually the directory where you unzipped the driver.

Another hint: With the bearwindows drivers you cant start the comamnd line direct on the desktop. So search all "*.PIF" Files in the guest and change the settings to fullscreen (screen/appearence, Bildschirm/Darstellung).

As you may know, Win98 did not have generic support for USB mass storage devices (thumb drives, external mechanical drives, digital cameras etc). You needed a specific driver for each device, and of course those have become hard to find! However someone has just posted a link to a site offering generic USB mass storage drivers.

The site offers free generic USB mass storage drivers for both Win98 and Win98SE. Drivers for the former require you to install a big service pack first. Drivers for the latter are quite small. I have not yet tried either myself, I just thought it would be good to preserve the links here.

[Edit] I have now tried the latter Win98SE driver, and it seemed to work well for me after I followed the instructions given in the linked page. Specifically I had to, before installing the new drivers, first make sure USB and USB 2.0 was enabled in the VM settings, then boot the guest, go into Win98SE device manager and basically remove any USB device I could find, particularly including old custom memory stick drivers (not a problem on a new Win98SE install inside a VM), plus the original Win98 USB controller and USB root hub drivers, plus any unknown device in case that too was USB related. Then install the new USB drivers, then reboot. After that I had no problem with reading from a modern USB flash drive - though of course the drive has to be FAT formatted since Win98SE doesn't understand NTFS.