Windows 98 SE on a P4 PC

Last modified: Sun Jun 2 10:41:51 EDT 2019

BIOS setup
Partitioning and formatting
Windows 98 Setup
Patch for hang-on-shutdown
Problems installing Nvidia drivers
Vanilla DOOM with a PCI sound card

Preface to 2nd edition

Since I originally posted the story of how I installed Windows 98 SE on my "new" Pentium 4 PC way back when, I've learned a lot about installing W98SE on both older and newer systems.  Consequently, much of the material that was here has been moved to or superseded by general configuration notes for DOS, W98SE, and ISA-era BIOS.  There is also a story about installing W98SE on my new PC, Windows 98 SE and FreeDOS on Wildcat Point.


Despite great advances from Windows NT through Windows 2K and then XP, my first impression of Windows 98 upon returning to it after all these years was "Wow, great upgrade!"  It's simpler, smaller, and faster than XP; it runs my favorite game (Classic DOOM); and, it's immune to the kind of troubleshooting nightmare—you know, that bang-your-head-for-hours, occasionally yelling "WHY IS IT DOING THIS?!?" at the ceiling kind of troubleshooting nightmare—that the obscurity and complexity of NT/2K/XP et seq. engender.  W98 isn't perfect, heck no, but like an older model car, it is possible for a mere mortal to understand its workings and fix it when it breaks.  That is a Good Thing.

The original protagonist of this article, which was my workhorse PC for 10 years, is of late 2004 vintage and uses the 865PE chipset released the previous year.  W98 drivers for the motherboard chipset (especially the AC97 audio) and the GeForce 6-series video card were available, so with some careful configuration choices it was possible to run W98 on it with relatively little loss of functionality.  Two somewhat newer P4 chipsets that I experimented with later had no W98 driver support at all but could boot to desktop.

ChipsetChipset release dateMotherboard(s) tested
865PE2003-05MSI 865PE Neo3-F / ASRock ConRoe865PE
PT880 Ultra2005-01ASRock 4CoreDual-SATA2
nForce 750i SLI2007Asus P5N-D

BIOS setup

The following problem cropped up on the 865PE chipset, but (quite unexpectedly) failed to crop up on the two newer chipsets.

With default BIOS settings, I got two reboots into the installation process and then it hung.  With BOOTLOG.TXT output enabled, the end of the log looked like this:

[0015B6D2] Initing hsflop.pdr
[0015B6F1] Init Success hsflop.pdr
[0015B6F1] Initing esdi_506.pdr
[0015B6F7] Init Success esdi_506.pdr
[0015B6F8] Initing esdi_506.pdr
[0015B703] Init Success esdi_506.pdr
[0015B703] Initing esdi_506.pdr

esdi_506 is identified as the Windows protected mode IDE disk driver.  The problem, apparently, was that the mixture of SATA and PATA interfaces didn't satisfy W98's outdated assumptions about ports and IRQs.

To avoid this problem, I had to configure the BIOS to use "Legacy Mode," "Compatible Mode," or "IDE" rather than "Native Mode," "Enhanced Mode," or "AHCI" for its ATA channels.  This limits you to four devices, but they don't all have to be PATA.  The BIOS can map two SATA drives onto an emulated IDE channel.

(From two different AMI BIOSes:)

BIOS setup: On-Chip IDE Configuration BIOS setup: IDE Configuration

Beware that changing this configuration on a working system will probably kill an installation of Windows XP.  If Linux stops booting, you just need to boot off the installation CD and update the device names in /etc/fstab.  A preemptive change to use filesystem volume labels instead of device names should prevent it from breaking in the first place.  See man fstab.

The BIOSes on the PT880 Ultra and 750i motherboards did not present this compatibility option, but they didn't need it; W98 just worked.*

* Actually, it turned out that W98 installations on the PT880 Ultra get stuck at a BSOD about half of the time, and the guilty driver is "Standard Dual PCI IDE Controller."  The rest of the time, however, it just works with no changes.

Partitioning and formatting

The regular W98 install process in which it automatically formats a partition before running setup seldom works at all with a larger disk and often trashes the disk before failing.  If you FORMAT /S the partition from a boot floppy first, you can then run setup and skip the formatting steps.

At the time I was using the original W98SE FDISK and FORMAT programs, which are very fragile and buggy around large disks.  For better (but still buggy) results, use the patched-up IO.SYS from kb311561 and this unofficial hack of FDISK (kb263044) and FORMAT, and follow the procedures here.

Windows 98 Setup

When setup finishes its first phase, you are instructed to remove the floppy (meaning take the CD out) and reboot.  Since I had more than 1 GiB of memory, the installer now halted with the message "Insufficient memory to initialize windows."  As described in kb184447 *, the workaround was to add the following setting to WINDOWS\SYSTEM.INI:


Instead of just taking the CD out, you can swap it for a Linux installation CD, boot that and make the edit to WINDOWS\SYSTEM.INI with vi, THEN let W98 boot itself.

A related problem with the same symptom is described in kb253912, but I did not need to change the MaxFileCache setting at this point.  (I did later, though, to get the Nvidia drivers to install.)

* kb184447 claims to apply only to Windows 98 Standard Edition, not to Second Edition, but the fix still works.

Patch for hang-on-shutdown

From Microsoft Article 239887 rev. 2.4:

You may experience any of the following symptoms when you select an option in the Shut Down Windows dialog box.

To fix these problems, Microsoft released the Windows 98 Second Edition Shutdown Supplement which is a 504 KiB patch named 4756US8.EXE:

4756US8.EXE:    MD5 = BA 65 D8 9B 85 43 56 96  4F EB 25 90 5A 44 FB E7
4756US8.EXE:   SHA1 = 332B BA76 54FD FC3B C72C  B3E7 D1CF B225 17BC EDC1
4756US8.EXE: RMD160 = EE9B C87D 5750 48BC 6C5E  AD6F 94CF 207B 9695 9B53
4756US8.EXE: SHA224 = A1954434 99974266 6DD00C81 E6ECCE53 854AF7CF 7F598E96
4756US8.EXE: SHA256 = B7C906C4 EB134019 3D28651E BF446F4F E72D5B31 7B9C52AA
                      81F3DBA4 7EA245C3
4756US8.EXE: SHA384 = 68284670 F8A2608B 263A71AC ABF59970 0E96E3A5 311E5E7B
                      98651016 FAB2BB13 F42504DE EFD5F64B 5218C305 4C17CA93
4756US8.EXE: SHA512 = CE9A1998 BB4A1D62 4B8D2CEA 2F3D12AA 45ECF694 A357220F
                      DD842592 3E2C6F69 DE7EDBE2 9F6FBB7C 4BCC0B1F 54FD7F3E
                      52226C9B D880908A F8716A88 9CD5FE19

Unfortunately, most of the links to it on the Microsoft web site are currently broken, but this ugly one still works:

If that link breaks too, well, here's a cached copy.

Problems installing Nvidia drivers

Infinite problems getting the Nvidia drivers to install without everything becoming FUBAR were actually just a symptom of generalized memory-configuration-related instability that was triggered by having more than 512 MiB of RAM.  On the 865PE PC with 4 GiB RAM, dramatic improvement occurred when I installed HimemX version 3.32 in CONFIG.SYS (displacing the HIMEM.SYS that came with Windows 98 SE) as recommended by some folks on the Microsoft Software Forum Network.  To achieve complete stability, I also had to set a value for MaxFileCache in SYSTEM.INI.  However, after doing that, I was able to increase MaxPhysPage to 40000 (1 GiB) without problems.

Working configuration for 865PE:

Motherboard MSI 865PE Neo3-F
CPU Pentium 4 540 3.2 GHz (Prescott)
RAM 4 GiB DDR PC-3200
Audio Onboard Realtek ALC850 8-CH Audio
Video eVGA GeForce 6800 GT, 256 MiB GDDR3, AGP 8X
AGP aperture 256 MiB
MaxPhysPage 40000 (1 GiB)
MaxFileCache 131072 (128 MiB)
OS Windows 98 SE
OS patches Shutdown Supplement
Drivers etc.  INF 20041216 from Intel
DirectX 9c from Microsoft
Realtek AC97 MB 20070508 from MSI
HimemX v3.32 from Japheth (original site now gone)
Forceware 81.98 from Nvidia

With this configuration I was able to run DOOM 95 with no loss of functionality.  Yay.  Unfortunately, the motherboard sound drivers weren't really DOS-compatible, though they claimed to be—in DOS DOOM there was no music and the sound effects were crackly.

Vanilla DOOM with a PCI sound card

2013-01:  With a different motherboard (MSI 865PE Neo3-F → ASRock ConRoe865PE), a 6800 Ultra EE, a widescreen LCD monitor and a Montego II A3D PCI sound card installed, I decided to see if I could get Vanilla DOOM to run with full music and sound.

The Sound Blaster Pro 2.0 emulation of the Montego II A3D worked eventually, but the drivers were troublesome.

Video regressions:

Other issues:

In summary, although I got Vanilla DOOM with music and sound effects technically functional on a P4 system without an ISA slot or DOSBox, better results are obtainable with less effort by sticking with ISA and plain DOS.

See here for summaries of mostly negative Sound Blaster emulation results for other PCI sound cards.  These PCI cards are really picky about which motherboards they will work on.


For all the other official and unofficial W98 patches and as much support as you're going to get, visit the Microsoft Software Forum Network.