QEMU/Guests/Windows 98: Difference between revisions

(18 intermediate revisions by 3 users not shown)
This page details how to install Windows 98 in QEMU. '''Windows 98''' is an operating system created by Microsoft released in June 1998. There is an updated version dubbed Windows 98 Second Edition, which fixes some bugs and adds new features. Support ended in July 2006.
 
We strongly recommend Windows 98 Second Edition as it fixes many bugs from FE and has more application support. This tutorial will assume you're using SE (but should work on FE)
 
Currently, Windows 98 SE is running as [https://computernewb.com/collab-vm/#vm4 VM4 on CollabVM], so if you want to take it for a spin without installing it on your computer, check that out
==Prerequisites==
===QEMU===
You'll need [[QEMU/Installation|QEMU]] installed.
===Windows 98 QuickInstall===
Windows 98 without any patches is very, very unstable under QEMU, with bugs such as hanging on reboot, hanging on DOS prompt, hanging randomly, you get the picture. For this reason, we'll be using the [https://github.com/oerg866/win98-quickinstall Windows 98 QuickInstall Project] for this guide, which bundles multiple patches to greatly improve the stability under QEMU.
* [https://archive.org/details/win98qi_v0.9.3 Download from archive.org] (This link also has other ISOs that contain extra software and utilities. Pick whichever you want, it's your choice.)
===SoftGPU===
We'll also be using the SoftGPU driver, to add 32-bit color and high-res support, and also to enable 3D acceleration. Grab the isoISO from GitHub [https://github.com/JHRobotics/softgpu/releases/latestdownload/v0.5.2024.29/softgpu-0.5.2024.29.iso here].
 
==Starting up==
===Installation===
First, open a command window and create a disk image for the VM using a command like the following.
<pre>qemu-img create -f qcow2 win98.img 4G</pre>
 
When that's done, start up QEMU with a command like the following:
 
<pre>qemu-system-i386 -hda win98.img -cdrom win98_iso_name.iso -device VGA,vgamem_mb=64 -cpu host -m 256 -accel kvm -M pc-i440fx-2.0,hpet=off -netdev user,id=lan -device pcnet,netdev=lan -usb -device usb-tablet -rtc base=localtime -monitor stdio</pre>
 
The machine argument is set to pc-i440fx-2.0, this is to get around the PCI Bus bug that persists within QEMU, And the VGA,vgamem_mb=64 parameter allocates 64MB of VRAM onto the generic VGA adapter QEMU provides to allow higher resolutions and color depths within 98SE.
 
We set the memory to 128256 MB, but it can run on as low as 8 MB of RAM, although this isn't recommended if you want to be running any programs.
 
Press any key except F8 to boot into the Windows 98 Quick Installer. The installation here is pretty self explanatory. If you used the "all" iso, you'll be prompted to select a Windows version. We recommend 98 SE. Proceed to format a single FAT32 partition taking up all of available space and mark it as bootable, make sure to write changes to the disk and exit. Once prompted to install integrated device drivers, select Yes and continue. By any circumstances do NOT select slow PnP detection as this will hinder the installation process, let it install and reboot.
 
At this point if all went well, Windows should reboot, install drivers, and load the desktop. If you get a bluescreen or protection error, refer to the troubleshooting section. If it all worked, keep reading
 
===Enabling DMA===
The first thing you'll want to do is enable DMA on your hard disk ASAP, as it is not enabled by default and this can cause major instabilities.
# Reboot windows
===Display driver installation===
After the first boot, you will notice that the display is small and very low quality. This is because, without drivers, Windows 98 runs in 16-color mode, fixed to 640x480 resolution.
 
This is where <code>-cpu host</code> comes into play, as SoftGPU provides SSE3 optimized binaries for in this case, software accelerated 3D rendering. Now yes, you could use this with <code>-cpu pentium3</code> but do keep in mind MMX optimized binaries are very slow as the maximum performance you can reach with those is around 15 or 20 FPS if you are lucky and may or may not have tons of bugs that just don't make them worth using.
 
We will now install the SoftGPU driver to enable higher resolutions and 32-bit color support.
[[File:Softgpusetup.png|thumb|right|alt=A screenshot of the SoftGPU setup program|SoftGPU installation]]
Congratulations, you should now have a functioning Windows 98 install! Here is some recommended software to install:
 
* [https://winworldpc.com/download/48c2b151-2618-c39a-11c3-a4e284a2c3a5 Internet Explorer 6 SP1] (This is also bundled on the Win98 QuickInstall CD replace X with corresponding CD drive letter: X:\extras\IE6Sp1)
* [https://archive.org/download/10.63Opera1063IntSetup/10.63_opera_1063_int_setup.exe Opera 10.63]
 
# Re-insert the SoftGPU CD if you removed it and reinstall SoftGPU. Agree when it asks to reboot
# You should now be able to use 32-bit color and higher resolutions
 
=== Problems in some 2D games ===
 
If you have installed SoftGPU with Wine <= DX7 setting, you might run across graphical issues and other things related to the game not being compatible with the WineD3D DirectDraw implementation, most notably being unable to Alt-Tab from the game and such things in some games misbehaving with the Wine renderer.
[[File:Reggy.png|thumb|right|alt=DDSwitcher registry screenshot|DDSwitcher registry screenshot]]
The following is the solution on how to resolve the problem:
# Open the Registry Editor (regedit) thru Run
# Navigate to the following registry key: HKEY_LOCAL_MACHINE\Software\DDSwitcher
# Make new String value titled the game's executable name for example: Heroes3.exe for Heroes of Might and Magic 3
# The key's value should be set to "system" without quotes to fallback to the standard DirectDraw DLL.
# The problem should be resolved.
 
[[Category:Windows installation guides]]