Search This Blog

To adblock users

Hello! If you see this, you are most likely using an ad blocker. (Or maybe you have JavaScript disabled. Or maybe my web server is down.) I have no problem with ad blockers; in fact I use one myself. If a site tries to deny me access unless I disable it, I just find a way to circumvent that. But if a site politely asks me to do so, but still allows access to the site, I disable it for the site. I am asking you to please do the same for this site. I can't make you, but I would appreciate it. Thank you! :-)

Tuesday, September 09, 2008

Xbox 360 Controller on PC Without Additional Software

Earlier today, I figured out a way to use an Xbox 360 controller on a PC without downloading or installing any additional software. I got the idea when I read (I forgot where) that the controller is a standard HID device, except it sends the wrong class code (0xFF instead of 0x03) so that generic drivers won't automatically connect to it. This is obviously so that Microsoft could require people to use their special software to get it to work. Possibly so they could make you need to use Windows (although this information is written for Windows and, unfortunately, probably won't help if you're not using it.)

But there is a way to tell the generic drivers to connect to it anyway. Simply plug it in and let it install as an unknown device. Then, open Device Manager (Start, right-click My Computer, Properties, Hardware tab, Device Manager) and find your device. Right-click it and click Properties, and then switch to the Details tab. Make sure "Device Instance Id" is selected at the top, and then make note of everything on the top line up to "PID_XXXX" where XXXX can be any four hexadecimal digits (0-9 and A-F). For example, mine says "HID\VID_045E&PID_028E&IG_00\7&29E276DE&0&0000", so I would ignore everything except for the "HID\VID_045E&PID_028E" at the beginning. You can now close out the Properties dialog. Do that, then right-click the device and click Uninstall.

Now it's time to edit your INF file. Go to Start, Run, and type in "c:\windows\inf\input.inf" (without the quotes.) Notepad should open. If not, do the same thing except add "notepad" to the beginning of the string you type into the Run dialog. Scroll down to the section called "[MicrosoftGame]". Now, in a new line in that section, type in "%XXXX.DeviceDesc%=HID_Inst,, XXXX", replacing each instance of XXXX with that hardware ID you wrote down. (And no, I DON'T just mean those four hexadecimal digits I previously referred to in the same way.) Now scroll down to the "[Strings]" section near the bottom, and type in [XXXX.DeviceDesc="Microsoft Xbox 360 Controller"], not including the brackets. (I used brackets instead of quotes since there are quotes in the string itself.) And the XXXX refers to the same thing as it did last time (the hardware ID you wrote down, including but not limited to those four hexadecimal digits.) Now save the file and exit.

If your controller is still plugged in, unplug it and plug it back in. If not, simply plug it in. If a window appears asking if you want to connect to Windows Update, tell it not to. It may also put up a warning about it not having passed Windows Logo testing. Click "Continue Anyway" on any of these warnings. Eventually, it should finish! Now all there is left to do is go into the Game Controllers control panel, select the controller, click Properties, and calibrate it. Have fun!

P.S. I do recommend XBCD. It's another driver, but it's much better than Microsoft's official one. XBCD+ looks promising, but I haven't tried that yet. Oh, and by the way, I'm not referring to xkcd, the popular webcomic. ;-)