INTRODUCTION
Besides computers and tech, it generally comes natural to have a fond interest of gaming, at least for me. While Nintendo GameCube and GameBoy Advance was a huge part of my upbringing, and still is with the banging games on Nintendo Switch, my initial foray into gaming actually began with our family computer running Windows 98. I have vivid memories here as a five year old kid playing various obscure CD-ROM games such as Lego Loco, Moomin, Pippi Longstocking, Woodii, a majority of them developed by former Swedish gaming companies dissolved since long.
Even before I knew I would work professionally within IT, around the 2010’s, the realization hit that being able to play these older games again are a hassle. Newer processor architecture, modern operating systems not supporting 16-bit applications anymore and you bet that the demand of remastering these abandoned games are next to non-existent.
You see, it was this specific conundrum that made me even touch upon the subject of virtualization for the first time. So essentially at the age of 13, I did indeed dabble with VirtualBox and running a Windows 98 VM all for the sake of experiencing gaming nostalgia. Boy, if only teenage me knew what was in the works…
Sentimentality aside, this itch of re-playing these bizarre games recently came back to me this autumn and apparently this is more straightforward nowadays. So here’s what I’m thinking, why not share an outline of my personal Windows 98 VM setup used for old-school gaming? Perhaps you’ll visit your family during the forthcoming holidays, rediscovering your old PC games and want to actually experience the warm hug of nostalgia?
PREREQUISITES
For my Windows 98 VM setup, I’ll be using the following components.
VirtualBox
As the title of this blog states, I’m using VirtualBox as my virtualization software. Download it here and install like any other program.
Windows 98 QuickInstall
Instead of using an original Windows 98 installation disc or similar, I’m using an .iso from the amazing Windows 98 QuickInstall project which reduces the time of the VM install immensely. At the time of writing I’m using the “win98qi_v0.9.5_stock.iso” asset downloaded from here.
AC97 – Sound Driver
When virtualizing these older operating systems it’s foolish to expect that all drivers come built-in. The sound driver is one of them, certainly. In this case I’m using a AC97 sound driver which I’ve had most success with. There are several versions out there, but for the sake of keeping it simple you can download the one I grabbed as an .iso file from the Internet Archive here.
SoftGPU – GPU Driver
This is the game-changer! Indeed, we need a GPU driver as well and the SoftGPU project definitely delivers. At the time of writing I’m using the “softgpu-0.6.2024.40.iso” asset downloaded from here.
As a disclaimer, this specific Windows 98 setup is one way to do it and not necessarily the supreme approach. PCem is another recent project solving the same conundrum, however I haven’t gotten around experimenting with it personally yet.
Besides, I’m using this VirtualBox setup both for a plain retro-gaming purpose along with goofing around in the OS, so I can’t confirm whether “3D-heavy” games such as Half-Life would run adequately. Let’s say I was simply too young to experience those type of games at their peak anyway. 😉
VM SETUP IN VIRTUALBOX
For the setup in VirtualBox, create a new virtual machine with a fitting name and select your downloaded Windows 98 iso image. Choose Type as Linux, Subtype as Other Linux and Version as Other Linux (32-bit).
For Hardware, I upped Base Memory to 512 MB and left Processors on 1 CPU.
As for the Hard Disk, you should do good for awhile on 20 GB, but it’s up to you. For the File Type, I chose VHD only from a personal preference.
Once this machine has been created in VirtualBox, go ahead and open up its settings and select Expert view. We’re now granted access to more options to adjust. Here you should end up with something like this. Attributes within the green boxes were adjusted by me.
Clarification on Storage, we want to have our hard disk and optical drive under an IDE Controller such as PIIX4. Enable Host I/O Cache as well.
Also, ensure that the hard disk is set on IDE Primary Device 1 and the optical drive as Secondary Device 1, else you’ll notice fatal booting issues.
After the above has been carried out, finish up by opening CMD on your local computer and run the command on line 1 modified to contain the given name of your VM. This will affirm that your mouse cursor aligns more truthfully within the VM console.
"%ProgramFiles%\Oracle\VirtualBox\VBoxManage.exe" setextradata "*yournameoftheVM*" VBoxInternal/USB/HidMouse/0/Config/CoordShift 0
#Example below if you're following this guide in detail.
"%ProgramFiles%\Oracle\VirtualBox\VBoxManage.exe" setextradata "Windows 98 - Retro-Gaming" VBoxInternal/USB/HidMouse/0/Config/CoordShift 0
WINDOWS 98 INSTALL
Time to install Windows 98 using the aforementioned .iso file.
Boot your VirtualBox VM and quickly press any key besides F8 within the VM console.
The installation procedure should hopefully not be too confusing, however I’ll give you some overall pointers. Simply press Enter on your keyboard until you get to the option of partioning your hard disk. Select Partition hard disks.
Proceed with selecting the only disk available and press Enter until you’re met with a black background. As I want to keep the amount of screenshots to a minimum, here are the order of operations to lean against.
1. No partition table found. Will create MBR disk! -> OK
2. Device “Free Space” -> New -> Partition size: 20G -> primary
3. Device “/dev/sda1” -> Bootable
4. Device “/dev/sda1” -> Write
5. Device “/dev/sda1” -> Quit
Before pressing Quit on step 5, it should look like the following.
The partitioning is now finished so exit back to the Main Menu and proceed with installing Windows 98.
From here on out it’s simply an Enter-pressing race on Installation Destination being the only created partition “/dev/sda1”, confirming the formatting, overwriting the Master Boot Record, selecting Fast hardware detection and installing the integrated device drivers.
Within seconds, the Windows 98 Quick Install should be finished and asking you to reboot. Before you do that, make sure to eject the .iso first.
Unfortunately, you might run into a temporary issue with booting into Windows 98 now. What solved this for me was to reset the VM in VirtualBox, booting into safe mode temporarily and then restarting normally.
Windows 98 should now finish up with installing fundamental drivers and ask you to specify the correct date and time. And voilà , we are in! Although, we’re not accomplished quite yet. 🙂
SOUND DRIVER
Evidently, we did not hear the classic Windows 98 startup sound so let’s change that. Insert the .iso file containing the AC97 sound driver to your VM’s optical drive and open up Device Manager. Find the “PCI Multimedia Audio Device” device and double-click it. We’re going to reinstall its driver.
Proceed within the Update Device Driver Wizard and choose Display a list of all the drivers in a specific location, so you can select the driver you want. From here on out, follow these steps.
1. Choose Sound, video and game controllers and click Next.
2. Choose Have Disk… and browse to your VM’s optical drive. The full path should be D:\WIN98 once you click OK.
3. The device AC’97 Driver for Intel(r) 82801AA Controller should be seen. Select it and click OK.
4. Proceed clicking Next and the driver should be installed.
Finish up the wizard and restart Windows 98. I had to force reset the VM in VirtualBox again as it froze, but fortunately I calmed down once I could hear the nostalgic startup sound and see a new sound icon in the taskbar.
GPU DRIVER
We’re getting there, folks! Attach the SoftGPU driver .iso to your VM’s optical drive. Automatically, the SoftGPU setup will appear. If you’ve followed this guide thoroughly the default settings should be fine for starters. Click Install! and, as the appearing prompt explains, proceed with a “Next-Next-Finish” installation of DirectX.
The Windows 98 VM will now reboot. Run the softgpu.exe still in your optical drive and do one more Install! since more files require being copied. It will then prompt you for an additional reboot, do so.
After this final reboot, you will possibly notice the 32-bit colours within the OS. If we navigate to Display Settings, we can also increase the display resolution up to 1920 by 1200 pixels. Keep in mind though that not all games might support this resolution. I find that 1024 by 768 pixels is the sweet spot.
RESULTS
Ladies and gentlemen, there we have it! A basic Windows 98 VM in VirtualBox acceptable for playing those old CD-ROM games you may have lying around!
Now it’s up to you to either redirect your local computer’s optical drive (if you against all odds have one still) or insert any .iso copies of your physical games to your VM. For the latter, archive.org is a fantastic resource for abandonware.
As for myself, I’ll be reliving some Pippi Longstocking.
As a closing disclaimer, I want to emphasize that I don’t condone illegal copying of games in the least. With this post I simply want to share a method of breathing life into abandoned games as part of video game preservation.
Happy retro-gaming!