Windows XP Drivers for NVIDIA Geforce GTX 970, 980, 980 TI and Titan X, say what?!

Windows XPI recently built a new computer to better accommodate the forthcoming line of resource-intensive tech products, namely the Oculus Rift and related VR devices. While my old computer was nothing to shake a stick at, its hardware was not satisfactory enough to produce a consistently smooth experience on the Developer Kit 2 (DK2). The second iteration of the developer headset kit requires rendering a 1920x1080 display (960x1080 per eye) 75 times per second or else latency and lag lead to a jittery and nauseating experience. When the consumer version drops next year the hardware demands will be even greater.

With my latest PC upgrade (Geforce GTX 980 TI, MSI Z97 Gaming 5 motherboard with an Intel i7 4790k CPU, 32GB RAM, Samsung SSD 840 Pro, Sound Blaster Zx) I made the sudden, albeit fully expected observation—none of these new components provided any Windows XP support by the manufacturers. After all, Microsoft itself ceased mainstream support for XP way back in 2009 and officially declared it to be 'end of life' and fully unsupported in April 2014.  It makes zero sense for any manufacturers to waste additional developer resources maintaining support for such an archaic and unsupported operating system, even as millions of diehards still cling on.

Holding On to Windows XP

Confession time. From the moment I upgraded to Windows Vista many years ago (and abruptly to Windows 7, then 8, now 10) I have always maintained a separate partition or dedicated hard drive with Windows XP 32-bit installed as a multi-boot system. Why? For an absurdly limited number of reasons, if I'm honest. It is a lot more convenient and often perfectly adequate to simply create a virtual machine (i.e., using Virtual Box or Hyper-V) for Windows XP as a guest OS. One of the key reasons for using XP these days is for niche software that may not run appropriately or at all on more recent operating systems, even when in compatibility mode.

But, even as revolutionary as OS emulation has become with the advent of hardware virtualization, it still doesn't compare to a bare metal native OS install. This is especially true when running games that may utilize OpenGL or DirectX, 3D applications and other computer-intensive processes. This typically comes down to GPU restrictions, although even that sector of virtualization is making strides with innovations like NVidia Grid. In my case specifically, I keep Windows XP 32-bit on-hand for a select handful of very obscure and specific applications, including some games and programs developed with older technologies and frameworks from the 1990s.

Jetmen Revival

Jetmen Revival: One example of a Windows XP game that does not work properly in later versions of Windows or virtual machines, regardless of compatibility mode settings.

Exhibit A: There is an old indie game known as Jetmen Revival, developed by Crew42 in the early 2000s (I believe using a Delphi 5 library). I enjoyed this game endlessly over the years, and even had a stab at redeveloping it myself for modern hardware but never found the opportunity to complete it. On non-XP machines, depending on the video card and driver software, the game will either crash upon launch, glitch out upon play, or chug along sluggishly creating an equally unplayable experience. No matter what compatibility settings and hardware adjustments are made, this game simply will not run as it was intended on modern machines nor in virtual machines.

Installing Geforce GTX 980 TI (970/980/Titan X) On Windows XP

Naturally, none of the latest video cards by NVIDIA or AMD officially support Windows XP. If you perform a Windows XP driver search on the respective manufacturer websites for any later cards such as the Geforce 970+ or AMD R7 3xx+ you'll find no results. However, where there's a will there's a way.

Here's the basic process of how to get the Geforce GTX 980 TI to cooperate with Windows XP. The same process can be used if you have a GTX 970, 980, Titan X or other unsupported cards.

  1. Download the latest and greatest Windows XP driver available from NVIDIA's official website. As it turns out, the last video card that NVIDIA still offers active XP drivers for is the GTX 960. As such, modifying them to accommodate subsequent 900-series cards is pretty effortless since the cards all share the same driver base. This should also work for other cards that NVIDIA may not directly support such as the GTX 690. Make sure you select the correct driver architecture for the XP driver, 32-bit or 64-bit based on your specific install. I personally prefer Windows XP 32-bit as it holds the greatest compatibility with apps and can be less of a pain to get up and running with the Geforce drivers, but if you do need more than ~3.5GB of usable RAM or want to squeeze the very most out of your 64-bit CPU then Windows XP 64-bit would be the better option. At the time of this writing, version 359.06 was available from December 1, 2015 but future ones will work equally well.

    GTX 960 Official Drivers

    GTX 960 Official Drivers

  2. Once the file has been downloaded, launch it. Specify an extraction path and copy this path to your clipboard or otherwise note it for future reference. By default it will extract the driver files to: C:\NVIDIA\DisplayDriver\359.06\WinXP\International Click OK and wait for the files to extract. Close the installer when it appears.
  3. Navigate to the extracted directory from the previous step. Once there, go into the Display.Driver directory and open up the file nv4_dispi.inf in your favorite plain text editor (Notepad will suffice).
  4. There are two areas of interest in this .inf file that you'll need to modify. First, the section [NVIDIA_Devices.NTx86.5.1] includes the hardware identifiers for all of NVIDIA's supported cards under Windows XP. (If you are using the 64-bit version of XP you'll instead want to find [NVIDIA_Devices.NTamd64.5.1] [NVIDIA_Devices.NTamd64.5.2] {corrected per comment from filippo}). Anywhere in this section, add the following hardware IDs.

    This corresponds to the device IDs of NVIDIA's entire top tier line of non-XP supported cards including the GTX 970, GTX 980, GTX 980 TI, GTX Titan X and Quadro M6000. By adding these identifiers, we can fake the driver installer into believing the installed GPU is supported by XP; since the underlying drivers are not any different it will be just fine! The Section### clause in the lines above corresponds to what settings and components will be installed for these particular cards; in the case of the 900 series it matches the same category referenced by the GTX 960. However, different drivers and versions may alter this section number (i.e., the Windows 10 drivers use Section044 for the 900 series). So if you get a 'Failed' message upon trying to install the driver, you may have to double check this section number.

    Note: If you are attempting this in the future or on a card not referenced above, the easiest way to find the proper identifier is to first note the device hardware ID of the graphics card from within the Device Manager. The device ID will be listed similar to "PCI\VEN_10DE&DEV_17C8&4CC_0300" Note the four characters after DEV_. Next, download the latest Windows 7/10 driver from NVIDIA's site, extract it (steps 2-3 above), and open the nv_dispi.inf file. Do a search for the four digit code and copy the found lines to the corresponding Windows XP nv4_dispi.inf file.

  5. The second part of the nv4_dispi.inf file that needs editing is found at the bottom under [Strings]. Go to this section and add the following:

    Notice that all of the DEV.#### references above correspond to the entries we added in step 4 and reflect the hardware device IDs for the previously unsupported cards.

  6. Re-save this file under the same nv4_dispi.inf name (select 'Yes' to overwrite, if prompted).

Breathe. If you followed the steps above, you should now be able to run the setup.exe file in the parent directory that the original package was extracted to in step #2 above without it failing.

NVIDIA Driver Setup

The NVIDIA driver setup wizard using the custom install process, running Windows XP and a GTX 980 TI.

During the setup process, you will receive at least one driver signing alert. Press the Continue Anyway button to proceed.

If you attempted to run the setup wizard previously, you would receive an alert that no compatible card was found on your system. However, now that we added the missing product identifiers, the setup continues without error. Either choose Express or Custom setup and finish it up. I recommend specifying Custom and checking the option to Perform a Clean Installation just to ensure all bits of default video drivers are cleared up and not conflicting. (Instead of running the setup wizard, you could had optionally installed the driver directly from within the Device Manager, but would then be missing NVIDIA's control panel and other core packages essential to its operations).

NVIDIA Driver Setup

Success! The full suite of NVIDIA driver software has been installed on Windows XP 32-bit for a GTX 980 TI.

Restart your computer after the install is complete and you should be ready to rock like it's 2001 all over again, except with a super pumped up machine!

Windows XP on Modern Hardware: Other Considerations

There is obviously a lot more to work out when pitting modern hardware against Windows XP than just video drivers. Just getting the two operating systems to dual boot nicely can prove challenging. The easiest route is typically to install Windows XP first and then install Windows 10 to a new partition or separate connected drive afterward. This will allow Windows to create a suitable bootloader automatically to switch between them (I recommend also running " bcdedit /set {default} bootmenupolicy legacy" from an elevated command prompt in Windows 10 to restore the original black bootloader screen and F8 boot functionality).

If your Windows 10 install is done via UEFI you could run into more complications and will generally need to alter your BIOS to disable secure boot and enable legacy boot mode alongside UEFI. I've done it both ways successfully, installing XP both before and after Windows 10, but when installing it afterward there are more headaches trying to get appropriate bootloader functionality and you'll sometimes wind up unable to boot at all!

Modern motherboards will also not include any chipset drivers for XP on their own website. Thankfully, a lot of motherboard components are actually from third parties (i.e., Realtek HD / AC97 audio) so you can look up the device hardware IDs and seek out XP drivers that way. It becomes a trade-off of how much time are you willing to spend chasing chipset drivers down or modifying existing drivers to work; if the system is functioning well enough for you to do everything you need then you probably don't need to worry about installing specific chipset drivers for the legacy XP install. For audio, if you cannot find drivers for your particular sound card and are not using on-board sound, consider purchasing simple USB-powered desktop speakers to alleviate the need of hacking together your own drivers for a modern sound card. Another option would be to embrace the HDMI/DisplayPort audio out if your display supports sound; the driver will be installed during the NVIDIA driver installation.

Who would had thought I'd be spending this much time writing about Windows XP near the dawn of 2016? 🙂