If there’s one thing everyone hated about Windows 98, was the lack of USB4.0 support. We remember vividly the cries of anguish at the launch party when we found out that 21 years in the future, the operating system wouldn’t support the then-undreamt of speeds of the thunderbolt-based fastest USB protocol. After two decades of living with this crushing disappointment, [Yeo Kheng Meng] has delivered the goods: the most modern of USB interfaces on some very much not modern versions of windows.
This builds on [Yeo Kheng Meng]’s work on xHCI drivers for USB2.0 support, which we covered at the time. Like that hack, this one applies to Windows 98 through 7, and has a similar level of LLM-wrangling involved. There are actually a few parts to it– one is a USB3.0 driver, which replaces the old xHCI98 driver and is available on GitHub. On Windows98, USB3.0 speed caps out around 200 MB/s, likely restricted by Windows98’s maximum request limit of 64kB on USB transfers. Even with the faster bus in action, it can only gobble those tiny blocks of data so fast.
There’s also experimental USB4.0/Thunderbolt support, as stated above. While not as stable as the USB3.0 portion, we’re kind of impressed it runs at all. Thunderbolt is more than just a faster data bus, after all– you have to support multiple protocols. To handle all that you can install xhcicm.sys and have the surreal experience of accessing an docked NVMe drive from the last century’s best Windows via his Stor98 driver. That’s based largely on [SweetLow]’s NVMe9x project, which he forked but is going to be bundled into the main repo.
What might be more helpful to the community than these drivers is [Yeo Kheng Meng]’s fork of QEMU11 that emulates USB4/Thunderbolt hosts and devices. Having a working emulator seems like it would be a huge boon for this sort of semi-automated development. That’s available in its own repo.
Aside from the already-linked USB2.0 drivers, [Yao Kheng Meng] has an impressive retro-computing record, that includes Swift on the Apple II and turning DOS into llama.c habitat. It should be noted that that llama.c’s TinyStories is not the LLM that assisted with this project.
Thanks to [Yeo Kheng Meng] for the tip!