USB 3 for Windows 9x/W2K/XP (xHCI98)


Yeo Kheng Meng developed xHCI98, an open-source driver that brings USB 3.x (xHCI) controller support to Windows 98 SE and other legacy Windows versions. The project arose from his desire to run Windows 98 on a 2020 ThinkPad whose only USB controller was xHCI, a standard that post-dates Windows 98 by a full decade and has no native driver support. To tackle the complex driver development, Meng used large language models as an assistive tool to generate and guide the code creation process. The resulting driver enables hotplugging of various USB devices and achieves transfer speeds around 34 MB/s, which is near the practical limit of USB 2.0 High-Speed—the maximum this driver supports. While the driver may still be buggy, Meng continues to address issues in the repository, and the project has been recognized by outlets like Hackaday and Slashdot

Requirements per OS:
  • Windows 98 SE:
    • Install NUSB 3.3 or 3.6 if you want USB storage, UAS included.
    • SweetLow's stack also works but has no storage half: unzip, right-click the USB2.INF at its root then install. With it alone, a USB stick shows Code 28 and a UAS drive Code 2, so storage still needs NUSB's storage files (below).
    • With neither, HID and audio devices work but storage has no driver.
    • Reboot if requested after installing either.
  • Windows ME: Use SweetLow's stack. ME uses its own storage files, not NUSB's. It copies them from its own installation files, with no prompt, the first time an ordinary USB stick is installed. Until then a UAS drive shows Code 2 (see "Known limitations/issues").
  • Windows 2000 SP4, XP SP3 x86: Nothing to install.
  • Windows XP SP2 x64, Vista SP2 and 7 SP1 (x86/x64): Nothing to install either. On Vista x64 and 7 x64, driver signature enforcement has to be disabled as this driver is not signed.
Demo by Yeo Kheng Meng:


Instructions:
1. Unzip file
2. Check if your system meets requirements
3. Right click the INF file and select install. Alternatively, install via missing device through device manager.

Notes:
- For official FAQ, visit the official github page!

Screenshots: