Tutorial: Windows 95/98 guest OSes

Tutorial: Windows 95/98 guest OSes

Postby Technologov » 23. Sep 2008, 13:30

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.

2.1. Delete your sound card device and all unknown devices from "Device Manager".
2.2 Add New Hardware (from Control Panel).

Code: Select all   Expand viewCollapse view

win98soundscreenshot01xg6.png (44.95 KiB) Viewed 476212 times

Code: Select all   Expand viewCollapse view

win98soundscreenshot02sd3.png (39.97 KiB) Viewed 476212 times

2.3 Select "no, device is not listed in the list".
Code: Select all   Expand viewCollapse view

win98soundscreenshot03so7.png (40.95 KiB) Viewed 476212 times

2.4 Let Windows search for non-plug'n'play devices.
Code: Select all   Expand viewCollapse view

win98soundscreenshot04gd2.png (42.2 KiB) Viewed 476212 times

2.5 It will manually detect non-plug-n-play devices. Click on "Details" to show them.
Code: Select all   Expand viewCollapse view

2.6. It will find "Soundblaster 16 or AWE 32 or compatible".
Code: Select all   Expand viewCollapse view

win98soundscreenshot06me3.png (39.92 KiB) Viewed 476212 times

2.7. Restart the VM.

3. Video driver integration.
By default Windows 98 will run only in 640x480 resolution, 16-colors.

Performance Note: VirtualBox is not optimized for 16-colors (4-bit) emulation. It works very slow this way.
Having 32-bit True Color driver makes Win98 VMs run on VirtualBox *much* faster.

If you want True color or high resolution, you need to download special drivers.
3.1. bearwindows driver (unstable)

NOTE: You must install "Universal version" (2nd link), as the "VirtualBox" version is known to have problems.
WARNING: This driver is buggy, and many Windows fonts do not render correctly with it. Not recommended.

3.2. SciTech Display Doctor (recommended)
The second option is to get the SciTech Display Doctor version 7 beta driver (12 MB) -
(contributed by Richard_S)

https://www.dropbox.com/s/226caou8x0jf8 ... ctor-7.iso
https://docs.google.com/open?id=0BycgkM ... UhnWGRycVE

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. Network
Easiest thing, is to setup VirtualBox to NAT, and AMD PCnet-II network chip. It will be auto-detected by Win 9x.

5. Mouse
(contributed by stefan.becker)

VirtualBox 4.1 provides for Windows-98-compatible USB tablet device.
Enable USB Tablet: VM->Settings->System->Enable Absolute pointing device

then do: (enable Windows-98 mode)
VBoxManage setextradata "VM name" "VBoxInternal/USB/HidMouse/0/Config/CoordShift" 0

docs: "12.3.8 USB tablet coordinates ... in Windows 98 guests"

6. Shared Folders
Since VirtualBox shared folders won't work, there are other ways, such as SMB/Windows File Sharing. Recommended for Windows hosts.

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

A Solution tested successfull with Linux Host is ShareClip: http://homepage.mac.com/bnej/shareclip/

Written on 2.9.2008, updated on 18.07.2011.

Please discuss this tutorial here
This topic is only for additions to this tutorial. Do not ask questions about how to get something working. Use a separate topic for that.
Last edited by mpack on 28. Sep 2015, 19:52, edited 3 times in total.
Reason: Fix broken BearWindows link.
Posts: 3224
Joined: 10. May 2007, 16:59
Location: Israel

Postby fixedwheel » 23. Sep 2008, 13:58

avoid 100% CPU load

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

here is a link explaining something about, related to real hardware http://estu.nit.ac.jp/~e982457/other/cpuidle/idle.htm

d/l rain from here: http://www.benchtest.com/downloads/index.html
Posts: 1699
Joined: 13. Sep 2008, 02:18

Re: Tutorial: Windows 95/98 guest OSes

Postby stefan.becker » 28. Nov 2010, 12:28

Some hints to the bearwindows svga-driver (http://bearwindows.boot-land.net/vbe9x.htm)

There is no automatic installation.

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).
Posts: 7308
Joined: 7. Jun 2007, 21:53

Re: Tutorial: Windows 95/98 guest OSes

Postby mpack » 23. Mar 2011, 12:28

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.
Site Moderator
Posts: 21147
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Return to Windows Guests

Who is online

Users browsing this forum: No registered users and 1 guest