Wednesday, September 16, 2026

Bringing modern USB xHCI support to Windows 98/ME/2K


Everything is open-sourced here if you want to jump right in to use it: https://github.com/yeokm1/xhci98.

"The USB host controller on most modern PCs today is based on the Extensible Host Controller Interface (xHCI) USB 3.0 standard. It was first publicly finalised by Intel in 2010 and is now the de facto standard superseding prior USB host standards. Updates to the standard have been provided over the years with the latest now at 1.2c.

Given its relatively recent introduction, only modern operating systems like Windows 8 onwards natively support it. Supporting older machines will require the chipset vendors to provide the driver stack which is the case back to Windows XP. What if we want to go back further?"

"I wanted to see if I could build a native xHCI driver for Windows 98. Especially with AI assistance today, this should be possible right?"

"usbport.sys is a USB 2.0-era design. It has no concept of SuperSpeed and neither does anything above it. Doing USB 3.0 properly would mean replacing the entire host controller driver (HCD) stack on the operating systems and I doubt many machines using those OSes would benefit from that speed anyway.

Fortunately every USB 3.0 connector also carries the USB 2.0 wires and xHCI exposes them as a separate logical port per connector. The driver manages those USB 2.0 ports and leaves the USB 3.0 ports unpowered. A SuperSpeed device upon not detecting any active USB 3.0 lines, then falls back onto the USB 2.0 pins of the same connector and runs at High-Speed. That is why the flash drive above benchmarks at USB 2.0 speed."

 

No comments: