With the hardware put together, it was time to move onto software. Getting everything to a point where everything played nicely took me far longer than physically building the thing- the better part of May 2018, in fact. Along the way, I broke everything and had to start over, and there were also some hardware upgrades along the way.
Unlike previous entries, this writeup doesn’t correspond to a specific video, but both Part 5 and Part 6 of the video series cover some of the content.
Installing Windows 98
I chose to install Windows 98 Second Edition on this machine. I know a lot of other people would use a computer of this vintage as a Windows 95 or even pure DOS machine and save 98 for something newer, but 98SE was what was running on this machine at the end of its first life and I remember it being not too bad.
I still had the original disc, though I made a new boot floppy from an image. I have vague memories of the install process, and it gave me a nice wave of nostalgia though I felt it run much faster than it did in the past, possibly because of the much faster DOM and DVD-RW drive. It’s a pretty straightforward process, and not all that different from installing Windows today.
It does, however, let you choose to install or not install some components, which is nice. I installed desktop themes, games, and some of the utilities, but didn’t install support for long-defunct dialup services. A few reboots later, it was up and running.
Configuring and Using Windows 98
Windows 98 had drivers for everything I initially built the system with, even the Sound Blaster AWE64. I’d previously heard that it had drivers for the Mach64 graphics card and Intel ethernet card, but the sound card was a bit of a surprise. I didn’t bother updating these drivers since they seemed new enough- mostly from the late 1990s- and most of them are very difficult to find now. Only when I started putting in some of the upgrade parts did I need to mess around here.
One annoying thing about Windows 98 is that it needs the installation CD for almost all configuration changes. I suspect this was done to save hard drive space- which is still very welcome on a 4GB DOM- but it’s a chore to constantly dig out the disc and I occasionally forgot to take it out of the drive when I was done.
Trying to get on the internet is basically a fool’s errand. A Pentium 133 is a really slow system for them, but I nevertheless hunted down old versions of my go-to tools Notepad++ and 7-zip and installed them. I don’t think I’ve ever actually used either.
With no USB ports (and no mass storage support in the OS anyway), I needed a different way to get files between the new world and the old. Some people have set up network shares, but it refused to talk to my server, which is running Windows Server 2016. It might be possible to get that working, but frankly I don’t want to because then I’m leaving a bunch of security holes in my system (NTLM and SMB1 are known insecure, for example).
Instead, I thought about what things haven’t changed much in the past 20 years. Instantly I settled upon FTP as a solution. I’ve set up a private FTP server within my network that hosts a single, mostly isolated folder on my server. That serves as a dumping ground for files going both ways. It’s not a perfect solution, because I have to manually move things into that folder from other archives and because the FileZilla client crashes on large files, but it works well enough for now.
Windows 98 can boot into a pure MS-DOS mode, which is necessary for some games. However, it won’t configure this mode for you. By default, you don’t have CD-ROM support, mouse support, a working sound card, or possibly even extended memory.
I was intimidated at first by the steps necessary to configure MS-DOS mode. It’s a process that appears very confusing at first, with quite a bit of seemingly conflicting information on the internet, and it’s not a process I have any experience with.
I started with Phil’s premade “Super Easy” starter kit, though I didn’t use it as-is and never planned on having a menu like his. I found that I had to restart into MS-DOS mode at least once to get the default PIF file to appear, then I backed it up and started half-blindly copying lines into it. I found a few threads on Vogons and a webpage from Denmark that were helpful in explaining what was actually going on. I think I had to copy in a few DOS-mode drivers as well for the mouse and CD-ROM.
It didn’t take me long to get the mouse, CD-ROM, and partial Sound Blaster support working. I still had to install the Creative package and get the AWE fully working, but I was much more confident after those first steps.
And then I broke everything.
How (not) to update
Windows 98, as a consumer Windows OS, never got Service Packs or Update Rollups. Until XP, it seems those were exclusively reserved for enterprise Windows like NT4 and 2000. Of course, Windows Update for 98 is long gone (if it existed, I’m not sure). That means you have two options for getting a Windows 98 SE install updated:
- Manually download and install every relevant patch in the correct order, of which there are hundreds
- Use an unofficial, third-party patch tool that will (hopefully) install everything automatically
I took the easy way out and scoured the internet for a patching tool. Surprisingly, there are quite a few options. The first one I tried was the Unofficial Service Pack, which… broke everything. It was a little bit broken after I installed it, and then the machine threw tons of errors at me after I installed IE6 (which the unofficial service pack didn’t do). Figuring I did it in the wrong order, I tried again installing IE6 first.
It blew up again.
I then tried the Windows 98 Auto-Patcher, and it worked without issues. However, it did install a few things I didn’t want, like a few “useful” utilities (that I could and did uninstall) and a Windows Me-esque icon pack (that I couldn’t). I think it installed IE6 on its own, though I had to install DirectX myself.
I’m still not sure what went wrong. I will say that modern Windows is a lot more resilient and gives you many more tools for cleanly recovering a broken install.
The most visible upgrade I performed is the drawer. I’m not sure if I’ll keep it, since it’s the wrong colour and doesn’t fit properly, but I needed something to fill the empty spot and figured this would be handy.
I also attempted to install a USB card. The one I tried was an Adaptec AUA-3100LP. Although it has drivers for Windows 98, it refused to play nice and would cause the machine to lock up, reboot, or fail to start at all. It was not a fun evening of troubleshooting, especially since I had initially suspected the RAM and not expansion cards. I don’t know if this particular card is faulty or if it just doesn’t like this motherboard, but at some point I’ll throw it in my P4 rig and find out for sure.
Finally, we have the pièce de résistance, the 3dfx Voodoo2. It has a whopping 12MB of EDO DRAM, split across two 4MB texture stores (mirrored) and a 4MB framebuffer. It supports Direct3D 5.0, partially supports OpenGL 1.x via miniGL wrappers, and has no T&L or 2D support. It would be put to shame not by today’s smartphone chipsets, but by today’s feature phone chipsets. In 1998, though, it was one of the hottest pieces of hardware around.
It looks totally retro and totally awesome.
The Voodoo Difference
Well, it makes the analog output noticeably worse.
It’s hard to see in the picture, but there are subtle horizontal lines “crawling” across the screen. Ignore the vertical banding; that’s just the camera. This is the 2D output that gets routed from the Mach64 through the Voodoo2 (it’s a pure 3D card). I’m not sure if 3D output is actually cleaner, or if I just haven’t noticed it because of the nature of games. In any case, this isn’t totally unexpected, but it’s nonetheless a bit irritating.
I’ve only tried a few games so far. Results have been mixed, to be honest.
Quake is a good example of of the difference a 3D accelerator can make. This is a poor-quality pair of photographs, because I still don’t have screen capture figured out. WinQuake (software) on the left, GLQuake (Voodoo2) on the right. It’s running at twice the resolution (640×480), yet gets a far better framerate. I’d estimate software at 30-40 FPS and the accelerated version at a mostly-steady 60 FPS. It’s brighter, but that doesn’t have anything to do with the card, and the lighting appears to be better but I’m not sure if that’s just my perception or not. In any case, it looks and runs significantly better, more than these photos can show.
It’s interesting that Quake was considered the killer app for the 3dfx Voodoo because unlike many of its contemporaries, it doesn’t actually support the proprietary 3dfx Glide API. GLQuake is actually an OpenGL version, and a “miniGL” shim that wraps OpenGL for Glide is used to run it on Voodoo cards. And that is another interesting tidbit; while OpenGL ICDs were eventually released for some Voodoo cards, throughout its lifetime the more limited miniGL shims were the preferred way to get OpenGL games running.
But I digress.
Half-Life also benefits greatly from the card, but it’s a less impressive transition. Rather than going from okay to awesome, it goes from basically unplayable to playable but still not great. Under some conditions, I can get a smooth 60 FPS at 640×480, but other times it just chugs along. I think it’s CPU-limited, as Half-Life is known to thrash the CPU and the Pentium 133 barely meets minimum requirements.
Quake 2 is a similar if less dramatic story. Hardware accelerated at 640×480 is far smoother than software at 320×200, just like the first Quake, but like Half-Life it really struggled at times, particularly with particles and lighting. It was still not a bad experience, and better than Half-Life, but far from amazing.
The Voodoo2 was released in 1998, as was Half-Life, while Quake 2 just barely made it out at the end of 1997. Sticking a new graphics card in a three year old PC and expecting to play the latest titles at high settings seems perfectly natural today, but it would have been absurd back then. Unlike modern systems that are marginally faster every year, in the 1990s each new generation was a dramatic leap. The Pentium 133 was the fastest (x86) chip available in 1995. By the time the Voodoo2 launched in early 1998, the 333MHz Pentium II was available, and it was more than three times faster. It’s no surprise that our Voodoo2 is CPU-bound!
The Next Step
I do plan on testing more 3D games, particularly earlier titles that supported Glide like Tomb Raider and Descent 2. These will probably show the most dramatic differences.
Hardware-wise, I might upgrade the processor to a 200MHz Pentium (non-MMX). I believe that’s the fastest processor that will work in this motherboard without doing anything drastic. I’ve pretty much given up on USB support.
I’m still planning to do a showcase/test sort of video where I try out various games from my childhood and a few others suggested by my friends, but I don’t have the setup to do this yet so it could be a while.
Guide to CONFIG.SYS and AUTOEXEC.BAT from madsenworld.dk
Philscomputerlab MS-DOS Mode Super Easy tutorial, Older(?) Vogons thread, and Sound Blaster tutorial video
Windows 98 SE Auto-Patcher (worked for me)
Windows 98 Unofficial Service Pack (didn’t work for me)