Thunderbolt Strikes Windows98

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!

12 thoughts on “Thunderbolt Strikes Windows98”

  1. Appreciate the effort that goes into something like this and it will definitely be useful to some people. I guess that now reverse engineering is an easier process, whatever programs people have to run on older operating systems, could now be recreated and run on anything.

    1. Hi, I think same. I also like to add that this one isn’t simply vibe-coded but llm-assisted.
      The author has an actual understanding of the matter, as the diagrams on the project page suggest.
      Personally, I also think that driver development is one of the more complex and challenging topics,
      one of the kind that would come to mind first.
      Without an LLM in the role of an interactive development tool that undertaking could take years, maybe.
      I don’t mean to side with anybody here,
      but I do understand the reason to consider the assistance of an LLM, at least.
      The complexity of Windows DLLs, its SDK and VXDs in particular is enough to fill an entire book shelf.

      1. I love WfW 3.11, too. It didn’t went EOL until late 2008, I read.
        It outlived the whole 9x line. Which is fascinating.
        That shows the importance of Windows 3.1x as an unsung hero, I think.
        I mean, it was not only a graphical desktop environment on PC but also acted as an embedded OS (chash registers, embedded systems; variants IBM embOS and Modular Windows etc) and as a sub-system (WoW, Win-OS/2) etc. ArcaOS still has the IBM version, I think.
        The Windows 9x line uses it as a runtime (mini.cab) for the early phase of Windows Setup, as well.
        On Linux, Windows 3.1x ran Windows software via Caldera WABI before WINE had existed.
        Last but not least, Windows 3.1x is the last Windows to support the 80286 CPU in Windows Standard-Mode.
        Besides OS/2 1.3 it’s the latest, most multimedia capable “OS” for that CPU.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.