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? 🙂

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

  1. Thank you
    I am in the same position as yourself in that certain programs and hardware I have do not work in higher versions of Windows. A patch for working drivers for XP has been very helpful

  2. Matt - Thanks so much for figuring this out. It works like a charm. After I installed my 970 I thought my days of Win XP were over as nothing would run properly and it was slow as...

  3. I see you are rocking intel 4790k, am I right (because you wrote 4970k which doesn't exist) and you said the latest virtualisation technologies don't compete. Well... You are wrong! I am currently running a setup where I can choose which os ( win 10 or os x ) to run at a time, or I can run them simultaneously. Everything is running on top of linux. With the recent virtualisation advancements you can pass through real PCI devices to a virtual machine. Gaming performance is around 93% non VM performance. And the best thing? Your hardware already supports it! You can try out unraid which is paid, but with 30 days trial, but easy to use, or set up arch linux and with some tinkering (the saddest part was that it took me over one week during free time to set everything up to work flawlessly. You don't need much. You can set up linux to run from a usb flash drive and it you would load up your real hard drives.

    To make things easier on linux. You have to install ovmf-git through AUR (if you want to know what it is, google), then without using libvirt thing create a script which would look something like this:

    vfio-bind 0000:00:14.0

    taskset -c 10,11,12,13,14,15 qemu-system-x86_64 \
    -M q35 \
    -serial none \
    -parallel none \
    -nodefaults \
    -nodefconfig \
    -enable-kvm \
    -name Windows \
    -cpu host,kvm=off,vendor=GenuineIntel,check \
    -smp sockets=1,cores=6,threads=1 \
    -m 8192 \
    -nographic \
    -vga none \
    -device ich9-usb-uhci3,id=uhci \
    -device usb-ehci,id=ehci \
    -device nec-usb-xhci,id=xhci \
    -rtc base=localtime \
    -net nic \
    -net user \
    -device vfio-pci,host=02:00.0,multifunction=on \
    -device vfio-pci,host=02:00.1 \
    -device vfio-pci,host=00:14.0 \
    -drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/ovmf_code_x64.bin \
    -drive if=pflash,format=raw,file=./win_vars.bin \
    -hda ./win10.qcow2

    first do: cp /usr/share/ovmf/x64/ovmf_vars* ./win_vars.bin
    then change -hda with your actual hard drive.
    Change 00:14.0 numbers to ones representing your usb controller
    Change 02:00 numbers representing your GPU
    Done, easy switching between machines with very minimal reboot times and fine control over microsofts spying in windows 10.

    • @MLG Major, thanks for that added virtualization information (and for spotting my typo). This sounds like something worth exploring down the road. I did not have much success, performance-wise, with hardware accelerated virtualization via VMWare, VirtualBox or Hyper-V when trying to run XP-based games. However, I had much better success running Ubuntu and other Linux flavors as guest OSes and was able to play 3D accelerated games without any issue. I would be curious if the game example I mentioned would run on your setup without error and with good performance, as it is one of the better examples I have of quirks that prevent some apps from running well post-XP or on virtual machines. The installer for that game is at http://www.crew42.dk/JRSetup1_2.exe.

  4. i think there's an error in the above guide. i found it and corrected it in my driver mod. do you agree that your (matt) instructions are wrong?

    i just tried this under xp pro 32-bit sp3 with a geforce 980 ti, using the 368.22 xp 32-bit driver

    I followed the instructions exactly as written in this page but got the "no compatible hardware found" error

    i then guessed what text was wrong, deleted it, and everything worked as it should after that.

    it's the "amp;" part that shouldn't be there.

    your text:

    %NVIDIA_DEV.13C2% = Section008, PCI\VEN_10DE&DEV_13C2
    %NVIDIA_DEV.13C0% = Section008, PCI\VEN_10DE&DEV_13C0
    %NVIDIA_DEV.17C8% = Section008, PCI\VEN_10DE&DEV_17C8
    %NVIDIA_DEV.17C2% = Section008, PCI\VEN_10DE&DEV_17C2
    %NVIDIA_DEV.17F0% = Section012, PCI\VEN_10DE&DEV_17F0

    the text i used:

    %NVIDIA_DEV.13C2% = Section008, PCI\VEN_10DE&DEV_13C2
    %NVIDIA_DEV.13C0% = Section008, PCI\VEN_10DE&DEV_13C0
    %NVIDIA_DEV.17C8% = Section008, PCI\VEN_10DE&DEV_17C8
    %NVIDIA_DEV.17C2% = Section008, PCI\VEN_10DE&DEV_17C2
    %NVIDIA_DEV.17F0% = Section012, PCI\VEN_10DE&DEV_17F0

    cheers

  5. oops, i mean:

    your text:

    %NVIDIA_DEV.13C2% = Section008, PCI\VEN_10DE&DEV_13C2
    %NVIDIA_DEV.13C0% = Section008, PCI\VEN_10DE&DEV_13C0
    %NVIDIA_DEV.17C8% = Section008, PCI\VEN_10DE&DEV_17C8
    %NVIDIA_DEV.17C2% = Section008, PCI\VEN_10DE&DEV_17C2
    %NVIDIA_DEV.17F0% = Section012, PCI\VEN_10DE&DEV_17F0

    the text i used:

    %NVIDIA_DEV.13C2% = Section008, PCI\VEN_10DE&DEV_13C2
    %NVIDIA_DEV.13C0% = Section008, PCI\VEN_10DE&DEV_13C0
    %NVIDIA_DEV.17C8% = Section008, PCI\VEN_10DE&DEV_17C8
    %NVIDIA_DEV.17C2% = Section008, PCI\VEN_10DE&DEV_17C2
    %NVIDIA_DEV.17F0% = Section012, PCI\VEN_10DE&DEV_17F0

  6. very strange, this site instantly auto-edits stuff that i post

    i've twice posted the above with "amp;" added, and it gets removed every time.

    trying again:

    correcting
    PCI\VEN_10DE&DEV_17C8
    to
    PCI\VEN_10DE&DEV_17C8
    for all 5 lines

    did the trick for me

  7. my god, it keeps removing the "amp;" part

    final attempt:

    PCI\VEN_10DE& "amp;" DEV_17C8
    should be
    PCI\VEN_10DE&DEV_17C8

  8. it works, so to sum up, i removed “amp;” (without quotations) and success from there

    you really should fix this page's auto-correction [-:

    • Thanks John! That blasted WordPress WYSIWYG editor is remarkably annoying. The code snippets in my post were correct when I first published the story, but then I made a small addition to the story at some point and apparently re-saving it from the editor converted all ampersands as such. I never noticed. Sorry about that!

  9. I too, wish to maintain my dual boot system. XP and 7. So after reading your article on the .inf mod, I rushed out and purchased a GTX 980ti.
    Installed perfectly. Thanks very much for your advise.
    The thing that's bothering me now, however, is if I want to purchase a new monitor, can the monitor .inf file also be adapted so easily. What do you think?
    Cheers, Philip.

    • @Philip, you will rarely ever need monitor drivers for modern displays; very few new monitors even provide their own set of drivers anymore. For instance, I have a dual pair of Asus VG248QE 3D-ready 144hz monitors and after installing the NVIDIA drivers on XP I have full support for multi-monitor and 144hz refresh rates with no drivers needed. The video drivers are the important part, not monitor drivers. Good luck and glad I could help!

    • @nukerat, I can't vouch at this time whether the method I described will work with the 10-series cards or not. They have quite a drastically different architecture than the 900-series so I suspect there will be greater challenges. In any case, these would be the entries you'd need to add (under [NVIDIA_Devices...] and [Strings], respectfully, for the new 1070 and 1080.

      %NVIDIA_DEV.1B80% = Section057, PCI\VEN_10DE&DEV_1B80
      %NVIDIA_DEV.1B81% = Section057, PCI\VEN_10DE&DEV_1B81

      NVIDIA_DEV.1B80 = "NVIDIA GeForce GTX 1080"
      NVIDIA_DEV.1B81 = "NVIDIA GeForce GTX 1070"

  10. Matt,
    Many many thanks for your instructive article.
    My WinXp setup is stuck with an old Radeon 5000 series video card, and newer cards which
    have no WinXp drivers has held me back from upgrading.

    Thanks to your article I am now confident enough to go out and buy a GTX970 for my WinXp.
    Wonder if you have time to post an article on how to run WinXp on new Intel Z97 mobos?
    O well never mind 🙂

    Best of the Best to you.

  11. I installed windows XP on a KVM virtual machine and passed through the my 970 for lolz I guess, this post helped me a lot.

  12. So, it's basically copying and pasting some stuff into an INF file right? INF files are tiny little things. While it doesn't appear super difficult to do, I gotta ask... Why not just post a link to a modded INF file? Is there some legal reason or something? A little info like what the latest version this still works with would be cool too. Harddrives are cheap. I spent way too long setting up an XP machine the way I liked it too. Thanks for posting the info, if not the INF.

  13. Video card : ASUS GeForce GTX 1070 DUAL-GTX1070-O8G
    Motherboard : Intel Blue Hills DZ77BH-55K
    Chipset : Intel Panther Point Z77, Intel Ivy Bridge

    1-Prerequisites : Decompress the latest Nvidia XP driver using WINRar or other.
    -Locate this folder : Display.Driver
    -Add the entries below in : nv4_dispi.inf
    -These modifications are for : ASUS GeForce GTX 1070 DUAL-GTX1070-O8G ONLY!
    * Other brand will require different Device ID.

    -Locate this section : [Strings]
    --Add the following at the end: NVIDIA_DEV.1B81 = "NVIDIA GeForce GTX 1070"

    -Locate this section : [NVIDIA_Devices.NTx86.5.1]
    --Add the following at the top: %NVIDIA_DEV.1B81% = Section018, PCI\VEN_10DE&DEV_1B81

    * End or Top doesn't really matters, it's just the way i proceed.

    2-Install the driver.

    3-Reboot.

    4-Right Click on the Windows XP Desktop.
    --Select: Properties, Settings, Advanced, Troubleshooting, Hardware Acceleration.
    ---Lower this setting 2 notches.
    * This will correct video playback slughishness.

    Results:
    -Desktop, internet surfing, video playback all fine.
    -3D NOT functional.
    -30 seconds delay when accessing certains functions related to, screen resolution change etc; no problem really.

    Countmurcie.

  14. Hah, pretty cool, and nothing but a classic .inf hack. I'm currently using a GTX Titan Black simply because it's the last card officially supported on my XP x64 setup (X58 + Xeon X5690 Hexcore + 48GB RAM,mostly a video encoding workstation to help with my Linux and FreeBSD crunchers). I guess the hack applies to the 64-bit drivers just as well...

    So I take it that Pascal cards only work in 2D, and Maxwells are fully functional, yes? Well, since I don't need the immense double precision power of my Titan Black, the Titan X would mean a viable upgrade path. More power for my 30" display and more CUDA muscle for Blender? Hmm, maybe...

  15. hey man, thx for your informations

    i have a geforce 1060 6GB and i need XP for recording some music stuff. Because my interface is very old and its works only in XP

    so now i cant install, because i get an error, Graphicdriver problems....... has anyone an idea how i can install it on xp?
    thanks, chris

  16. I am trying to install

    368.81-desktop-winxp-64bit-international.exe

    a slightly later version on XP 64, bit but am running into decompression issues.
    I get the error Non 7z archive I have tried to decompress using 7Zip and WinRAR with no luck.
    Does anyone have any ideas?

    sarason

  17. @ sarason
    redownload the file john below posted...

    @ john and anyone else
    I too downloaded that file as it is for XP 64-bit. In the directory \\368.81-desktop-winxp-64bit-international\Display.Driver nv4_dispi.inf file does NOT have a [NVIDIA_Devices.NTamd64.5.1] section.

    Are we supposed to add a [NVIDIA_Devices.NTamd64.5.2] section and then add the Hardware IDs?
    Or rename all the 64.5.1 to 64.5.2?

    I added the Hardware IDs to the [NVIDIA_Devices.NTamd64.5.1] section and the names in [Strings]; the driver installs but I get random BSOD from nv4_disp.dll. Anyone else getting BSOD and is there actually a [NVIDIA_Devices.NTamd64.5.2] section at all?

  18. Many thanks - I run a dual boot for old games too, and was thinking I was going to have to give them up having upgraded my card to use a Vive.

  19. The hack worked for installing it, But the 1050 Ti won't start. I want one computer with XP and 10 to work with all the same hardware.

  20. Anyway to create a tutorial on how to use a 10xx series card on windows xp? I managed to fool the installer into working, but it doesn't install the driver nor the vulken and the nvidia control panel.

  21. I have a GTX 1070 ti that will not start after an install that looks successful. I'm thinking Section### but I have no idea what number to choose. I have tried 008, 018 and even 057. The card just won't start.
    I have an ASRock Extreme4 mb with Z77 chipset

    • The Geforce 10-series is a whole different ball game. It is based on the "Pascal" architecture for the first time, rather than Maxwell from the 9-series. Even internally at NVIDIA there was never any functional Windows XP support for the 10-series and it has never been given a thought when developing the architecture and drivers. I am still on a 980 TI so have not personally experimented with possible driver hacking for the 10-series, but to my knowledge nobody else has had any success. NVIDIA also discontinued support for their last remaining XP drivers for the 9-series as of July 2016.

  22. I'm troubleshooting why my 980ti will not display a refresh higher than 144hz on my asus 240hz monitor that works well on a windows 10 machine with same card. I thought display cable, but after switching the issues remain. My card is seeing my monitor in the nvidia control panel as TV? because it has "TV format" options as well as "Connector" with S or Composite standard settings under PC only 3 resolutions are seen. The options for all refresh rate choices exist, but selection of higher than 144hz results in a black screen. So, is this a driver issue? If so how to fix?

  23. officially theres no support for displayport 1.2 in any geforce drivers for windows xp. its only supported in win 7 and higher

    geforce driver notes for windows xp :

    "DisplayPort 1.2 functionality is not supported, including increased bandwidth (HBR2 mode) and multi-display streaming."

    highest supported is 1.1a, so thats the highest displayport version any geforce card officially can run in win xp

    this means reduced bandwidth, so for example, 1920*1080 at 144 hz is max

    personal experience :

    i have tested a geforce 980 ti with a 240 hz capable gaming screen, and got the same result as you; 240 hz is available in settings, but doesnt work in win xp, itonly in windows 7 and above

    same with hdmi, couldnt get 240 hz to wrk in xp

    it seems that the windows xp drivers arent as developed and feature-rich as the win 7+ ones. another example is that the win 7+ drivers have more settings / options available in the 3d settings control window

    yes, real bummer, i too was hoping to the last that 240 hz would work in xp

  24. hi sorry to trouble you again. i been using a gtx970 on a XP64 system, everything just works fine. then i got a wacom 13hd pen display, and plugged it to the video card's HDMI port, then i got a blue screen error with something about nv4_mini.sys! i tried a windows7 X64 system, then a XP32, they all works. so it's probably caused by the XP64 driver (modified 368.81 btw), can you inspire me with some ideas? thanks a lot!

    • Unfortunately not. I don't know anything about that device or how it interfaces with the video card. Personally I have always found the 64-bit XP + Driver Mods to be unstable depending on other connected hardware. Many times I'd get a BSOD on boot while using 64-bit, which is why I now opt to just use 32-bit for XP purposes (as that also provides the greatest compatibility with general software).

Leave a Reply