802.11g and WPA2 on Windows 9x/Me with Ralink RT61 Wireless Adapters

Introduction

The Windows 9x family, which includes Windows 95, Windows 98, Windows 98 Second Edition (98SE), and Windows Millennium Edition (Me), is a popular platform for PC retrogaming, due to low hardware requirements, and compatibility with DOS games, as well as early Windows titles. The two most recent installments – Win98SE and WinME – also feature a fairly complete network stack, including some wireless support, which make it possible to set them up for local area networking (and file sharing) as well as casual (very light) internet browsing.

Wired networking is not a problem, but wireless can be challenging. The main challenge is compatibility with modern security standards. If you are security-minded, your home wireless network probably uses WPA2 encryption, as do many public networks in coffee shops, work places, etc.

When I recently set up a retro-gaming laptop with Windows Me, I realized that finding a wireless adapter that (1) supports WPA2/AES, and (2) has working drivers for Win9x/Me is rather challenging. There is no built-in wireless configuration utility for Win9x/Me, so you rely on software from the manufacturer of the device. There appears to be a generic utility – Odyssey Access Client – which has a Win9x version and can control any wireless device, but it is not free.

I tried several adapters from several manufacturers, and nothing worked out of the box. Some did not have drivers at all – I could not find, for example, a single Intel 802.11g adapter with 9x/Me drivers – only 802.11b – and that one only supported the obsolete WEP encryption. I tried some Atheros-based solutions, but could only get WPA, not WPA2, to work with these.

In the end, salvation came from Ralink – their “Ralink Turbo” RT61 Chipset appears to have good, robust drivers for Win9x/Me, and natively support WPA2. However even that did not work without some tweaking, because the software utility did not allow me to choose that option – it had to be enabled manually via the registry. The complete procedure is detailed below for your reference.

Choosing a compatible WiFi adapter
  1. Get an adapter based on the Ralink RT61 (sometimes known as RT2561) chipset. There are probably multiple options from various manufacturers. I personally have had success with the following ones (note that all of them are old and discontinued, but can usually be found used or from surplus stock):
  2. Download the Win9x/Me driver and configuration utility package. There are several possible links: this or this (“official” from Edimax) or this (from VOGONS, also contains drivers for other operating systems).
  3. Launch the executable. It will install the driver and the Ralink utility, and ask to reboot. Reboot.
Pre-requisite – verifying 802.1x protocol availability

After I had written this guide, it was brought to my attention, that under certain conditions, connectivity will be broken, even if you go through the steps below, and the WiFi appears connected with the correct security protocol. This happens if the IEEE 802.1x Protocol is missing in Windows’ Network applet (control netcpl.cpl).

The exact combination of conditions that installs this protocol is not clear to me. It may depend on the installation or configuration or Windows or third-party drivers. If there is a way to install it manually from the Windows 98 SE CD, I have not discovered it. What is clear, is that certain versions of the Ralink driver/software package will take care of installing the 802.1x protocol, while others will not. Some files that seemed to do the job are referenced in this post (for RT2560F / RT2561ST) and also this one, which worked for me on the Edimax EW-7128g.

Enabling WPA2/AES
  1. Your device should be successfully detected, and the Ralink utility will probably auto-start and be in the system tray. Run it. You can check the driver and utility version in the ‘About’ tab. Mine shows driver 1.2.3.0 and RaConfig 1.3.6.0.
  2. In the Site Survey you will see a list of access points and their accepted authentication methods. Often it will be WPA-PSK, WPA2-PSK or WPA-PSK;WPA2-PSK, if it supports both.
  3. If your device supports WPA-PSK (or both), this should be easy. Click ‘Add to Profile‘, in the ‘Authentication and Security‘ tab choose WPA-PSK, define all other properties, and click OK. Your wireless card should connect.
  4. If your device supports WPA2-PSK only, it is trickier, because the GUI will not let you choose that. It is simply not available in the drop-down for some reason. But the network controller itself is quite capable of it. So you can trick the utility and force WPA2, as follows:
  5. Create a profile using WPA-PSK, add the correct encryption/key for your router. Save the profile (you need to give it a name) and make it default (if it is the only one, it should happen automatically).
  6. Important! If at this point, the GUI does not let you select WPA-PSK from the drop-down, it means that the IEEE 802.1x Protocol is missing on your system, and so WPA/WPA2 cannot work. Follow the suggestions above to install a different driver/software package before continuing.
  7. At this point you will not connect, but you are one registry tweak away from connecting.
  8. Open the registry editor, navigate to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Net
  9. There will be a list of subkeys with numbers starting from 0000. Find the one corresponding to the Ralink adapter – you can identify the correct one because one of the keys inside will be DeviceVxDs=RT619x.sys.
  10. Find the key AuthenType. The value will probably be “4” (which stands for WPA-PSK). Change it to “7” (which stands for WPA2-PSK).
  11. Note: if you were unable to select WPA-PSK in the GUI in step 8, you will need to manually set a few other settings, namely EncryptionType which should be set to “6” (stands for AES) and the WPA password itself (in the WPAPSK key).
  12. Now notice the CurProfile key. Its value is the name of the profile. Locate the name under ProfileStation subkey. When you open it, inside there will be another list of settings. Apply all the same changes that you applied in the two previous steps.
  13. Restart the RaConfig utility. Now the profile should display WPA2-PSK and should connect to your router.
Notes
  1. If you make any changes to the profile via the GUI, it will reset AuthenType, and you will have to repeat the trick, but it’s not a big deal. Actually, some changes you can easily make through the registry. Even the station name and the password are just stored there as plain strings.
  2. I do not know if there is a different version of RaConfig that allows WPA2-PSK to be selected from the dropdown box, of if there is a way to similarly hack it to get this functionality to work.
  3. I only tried this on Windows Me, and Windows 98 SE. I do not know if it works for Windows 98 (first edition) or Windows 95; their fundamental support for WiFi may not be as developed.
Further research
  1. USB adapters with WPA2 (and maybe 802.11n) support under Win9x
  2. PCIe/mini-PCIe adapters with WPA2 (and maybe 802.11n) support under Win9x
  3. A version of RaConfig for Win9x that allows WPA2 to be selected in the GUI without requiring the registry hack

If you know about any of the above, feel free to leave a comment on the page. 🙂

Advertisement

7 thoughts on “802.11g and WPA2 on Windows 9x/Me with Ralink RT61 Wireless Adapters”

  1. thank you! I have an edimax 7728In pci card and I got wpa2 working. Still don’t know how to configure 802.11n. Can it also be done in the registry?

    1. I don’t know about 802.11n, as I never had a chance to try a card like this on my Win9x PCs.I might get one soon and see what I can find out. In general, yes, if there is any specific setting to enable 802.11n under Win9x, and it does not appear in the GUI utility, I would expect it be somewhere under the same registry key mentioned in the article.

  2. Thank you so *very* much for this post! I have an old ThinkPad X31 and have run into this exact problem – the integrated intel WiFi chipset has Win98 drivers, but they don’t support WPA or WPA2 even though the device itself does, and even XP’s WiFi connection is inconsistent. Even the Odyssey WiFi client, after finding a product key, didn’t help. I bought the exact CardBus model you mentioned off eBay, downloaded the drivers, followed your steps, and it works great!

    An addendum for anyone else trying this; you’ll want the ones from the first link. The site is down now, but the Wayback Machine can be used to access an older copy, which still serves the files. It’s a few megabytes bigger than the “official” version in the second link, and seems to work *much* better (no weird dropping issues, and the “official” version couldn’t select WPA while the first link could). In addition, I couldn’t get both my ethernet and the CardBus card working simultaneously; instead, I have two different hardware profiles, one with the ethernet disabled and one with the Wifi disabled.

    But, even with that inconvenience, I now have strong, working WiFi that supports WPA2 on Windows 98! 🙂 Thank you so much again, this was an absolute lifesaver, I’m so happy I stumbled on this blog post.

  3. i will buy the mini adapter.. thank you so much
    but i need ask more 3 things(even if they are out of topic):
    1 – how can i connect internet between 2 laptops?
    one have windows 10 and the other have Windows 98… the ethernet driver is installed.. but i don’t know do the connections using RJ45 cable;
    2 – ok.. isn’t about network…. but there is an Universal Sound driver for MS-DOS(yes i installed the Windows 98, but we can use MS-DOS);
    3 – some MS-DOS games don’t work using Windows 98… maybe, but not all, works using MS-DOS ambient…. i don’t know if is the Config.sys and Autoexec.bat memory commands or something.. what you can tell me?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s