XBOX Driver for Mac OS X Lion / Mavericks
For those of you who have the original Xbox game controller with a USB adapter (you know who you are) and a Mac, this article is for you.
There was a great open source XBOX HID driver for the mac but, unfortunately, it became outdated and wouldn’t work on Lion.
http://sourceforge.net/projects/xhd/
I took the source code, fixed all compiler errors, updated the icons, and re-compiled it for Mac OS Lion (it also works on Snow Leopard, Mountain Lion, & Mavericks). I was allowed to upload it to the sourceforge cvs repository (though it hasn’t been updated on the main page).
You can download it here:
http://xhd.cvs.sourceforge.net/viewvc/xhd/xhd/Release/xhd_2_0_0.dmg?revision=1.3
Thanks!
amazing thank you!
have you had any luck using this with XBMC?
I haven’t tried it with XBMC, but you might need a separate 3rd party key-mapping program in addition to installing the drivers.
thanks for the reply. as it turns out no 3rd party program existed that did exactly what i wanted, so i wrote one 😉
for anyone interested https://github.com/bahamas10/XBMCXboxHIDController
Awesome!.. been looking for this for a while. Thanks
This made my day! thank you very much! Downloading
Wow. You are amazing. I bought Portal 2 back when it was released. I needed to upgrade to Snow Leopard to play it, so I bought that and upgraded. Well, after the upgrade, my Xbox controller ceased to work. Cache 22.
After almost 3 years, the wait is over and I can play it. Thank you!
Thanks for this. It detects my genuine controller S, but it says ‘generic controller 1’ instead. All the triggers and buttons map ok however.
I tried it in a Steam game, bit trip runner 2, but it doesn’t work at all. Any suggestions?
I assumed that since it’s all working, and game with gamepad support should work? Or does it vary depending on the game?
I know with Windows, games designed for the Xbox 360 controller only work with a 360 controller, and not other generic game pads (unless you start hacking around, in which case you can get it to work – I’ve got my Xbox pad to work). Is it similar on OSX?
I’ve since brought an official Xbox 360 controller, and using the drivers here http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/OsxDriver this controller works with bit trip runner 2. So my guess is that at least some steam games are specifically looking for some Xbox 360 controller id, and won’t work with other (and possibly generic) controllers.
So the issue with the original xbox controller not working is game compatibility, not a driver issue.
All I get is no device found, trying to use xbox 360 mini proex on airbook running 10.8.6 to play Legos Star War 2.
I think this driver only works for the original Xbox controllers. For the 360 ones (and if you’re lucky 360 compatible controllers), try http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/OsxDriver
I ended up finding a solution, link to which I can’t reproduce, involving going in terminal and undoing tattie, installing the .8 version of it, adding info to a plist file, running an app to run the plist file…sorry it’s so spotty but I had to clear my browser history after doing it so can’t retrace my steps. A happy ending, though. Thanks.
Awesome for the initiative but shows me and error when try install it. The error in registry console is:
com.apple.kextd[12]: Can’t load /System/Library/Extensions/DWXboxHIDDriver.kext – no code for running kernel’s architecture.
The OS is Maverick at Macbook Air.
Thanks for all!
Hi – I had the same problem. its because its a 32 bit kext.
I set my kernel into 32 bit mode as defined here: http://support.apple.com/kb/ht3773
now — you may not want to do this but I’m seeing no problems and now I can use my controllers!
thanks for making this!! But i still can’t get my pad recongised! it appears under “USB” in system profile but i get “Unknown (Device has not been configured)”
I have tried removing all other related kexts, uninstalled and reinstall and still no joy 😦
Are you using an official original xbox controller, or a third party one? I think this driver may support some third party controller, if you look at some of the files in the driver bundle you can see device ids. If your device id is not here that could be why it’s not recognised. You could try adding these details, if you know what you’re doing. I don’t unfortunately.
Hi, will this work in mountain lion/mavericks?? Thanks in advance..
Quote from the blog above:
I took the source code, fixed all compiler errors, updated the icons, and re-compiled it for Mac OS Lion (it also works on Snow Leopard, Mountain Lion, & Mavericks).
I personally can confirm it works under Mavericks.
I think I’m missing a step. I’ve installed it and it registers my original Xbox S controller as “Generic Controller 1” – and it registers stick movement and button/trigger pressing! Very cool and promising.
I downloaded and installed KeyRemapt4MacBook, hoping to map however the buttons and pad are coming in to keys, but nothing shows up in “Devices.”
I realize KeyRemap4MacBook is outside the scope of the driver recompile you’ve done, but do you have any suggestions on how best to map the (seemingly successfully detected) Xbox controller inputs to keys on the Mac?
Thanks for any tips!
Hey, I’ve tried controllermate a while back, and that worked for remapping the xbox controller buttons.
I had some success with Enjoy2 a while back. Basic remapping of the left stick to up,down,left,right and a few buttons to other keys.
http://nongraphical.com/2012/08/enjoy2-mapping-joystick-inputs-to-keyboard-and-mouse-events/
Does it work with a Xbox One controller?
Try it, you can remove it if it doesn’t work. My guess: no. You can try the 360 driver linked in the comments above, but I’m guessing that won’t work either.
Thank for this driver
But my Mac is 10.9.4
still can’t use my xbox controller
Would you please update again.
thank you
Works fine for me on 10.9.4 with my official xbox controller S. If you’re using a third party controller you may have some success, or it may not work at all. If you are using an xbox 360 controller you have the wrong driver. Check the comments above for a 360 link.
heyo, quick technical question. The analog-enabled buttons and triggers both send values from 0 to 255 with a report size of 8 bits which makes sense but when the buttons and triggers are “clamped” to send a 0 or a 1 the report size is still 8 bits. so is this a mistake?. The driver has worked almost flawlessly with OpenEmu as I wanted it to, and I was even able to use a dance dance revolution controller as a midi controller through Pure Data, but a couple games I tried wouldn’t accept input from specifically the non-analog a, b, x, y, black, white and trigger buttons. Also the analog enabled a b y x black white buttons wouldn’t map to anything besides Pure Data either. Anyways, I’m not really a developer but I was able to understand hid report descriptors just enough to find out through usb prober what the problem might be. Wish I could fix this myself but I haven’t taught myself how to code with Xcode just yet.
trying to use an original xbox s controller in Yosemite 10.10; controller shows up as a “composite device” with the following information:
Product ID: 0x0289
Vendor ID: 0x045e (Microsoft Corporation)
Version: 1.21
Speed: Up to 12 Mb/sec
Location ID: 0x1d137310 / 14
Current Available (mA): 200
Current Required (mA): 100
Doesn’t work. Did I miss something? 😐
Went digging for the components where the installer said they’d be. Everything was where it should have been except for the DWXBoxHIDDriver.kext. It was not in system/library/extensions.
When I tried to copy it into place manually, my mac said:
The system extension “/Library/Extensions/DWXBoxHIDDriver.kext” was installed improperly and cannot be used. Please try reinstalling it, or contact the product’s vendor for an update.
installer log:
Nov 19 20:51:45 Davids-Mac-mini.local Installer[7928]: @(#)PROGRAM:Install PROJECT:Install-920
Nov 19 20:51:45 Davids-Mac-mini.local Installer[7928]: @(#)PROGRAM:Installer PROJECT:Installer-815
Nov 19 20:51:45 Davids-Mac-mini.local Installer[7928]: Hardware: Macmini6,2 @ 2.30 GHz (x 8), 16384 MB RAM
Nov 19 20:51:45 Davids-Mac-mini.local Installer[7928]: Running OS Build: Mac OS X 10.10.1 (14B25)
Nov 19 20:51:45 Davids-Mac-mini.local Installer[7928]: Xbox HID Driver Installation Log
Nov 19 20:51:45 Davids-Mac-mini.local Installer[7928]: Opened from: /Volumes/XBoxHIDDriver/XBoxHIDDriver.pkg
Nov 19 20:51:46 Davids-Mac-mini.local Installer[7928]: InstallerStatusNotifications plugin loaded
Nov 19 20:51:51 Davids-Mac-mini.local Installer[7928]: ================================================================================
Nov 19 20:51:51 Davids-Mac-mini.local Installer[7928]: User picked Standard Install
Nov 19 20:51:51 Davids-Mac-mini.local Installer[7928]: Choices selected for installation:
Nov 19 20:51:51 Davids-Mac-mini.local Installer[7928]: Install: “Xbox HID Driver”
Nov 19 20:51:51 Davids-Mac-mini.local Installer[7928]: ================================================================================
Nov 19 20:51:51 Davids-Mac-mini.local Installer[7928]: Configuring volume “Mac Mini HD”
Nov 19 20:51:52 Davids-Mac-mini.local Installer[7928]: Free space on “Mac Mini HD”: 38.03 GB (38030725120 bytes).
Nov 19 20:51:52 Davids-Mac-mini.local Installer[7928]: Create temporary directory “/var/folders/t5/l0l2hpxn0l728tskvxt01ht40000gn/T//Install.79285ZHGZt”
Nov 19 20:51:52 Davids-Mac-mini.local Installer[7928]: IFPKInstallElement (1 packages)
Nov 19 20:51:52 Davids-Mac-mini.local Installer[7928]: PackageKit: Enqueuing install with framework-specified quality of service (utility)
Nov 19 20:51:52 Davids-Mac-mini.local installd[4658]: PackageKit: —– Begin install —–
Nov 19 20:51:54 Davids-Mac-mini.local installd[4658]: Installed “Xbox HID Driver” ()
Nov 19 20:51:55 Davids-Mac-mini.local installd[4658]: PackageKit: —– End install —–
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: Removing temporary directory “/var/folders/t5/l0l2hpxn0l728tskvxt01ht40000gn/T//Install.79285ZHGZt”
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: Finalize disk “Mac Mini HD”
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: Notifying system of updated components
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]:
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: **** Summary Information ****
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: Operation Elapsed time
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: —————————–
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: zero 0.02 seconds
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: disk 0.05 seconds
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: install 3.04 seconds
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: -total- 3.11 seconds
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]:
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: IFDInstallController 44B3D980 state = 5
Nov 19 20:51:55 Davids-Mac-mini.local Installer[7928]: Displaying ‘Install Succeeded’ UI.
Unfortunately, that is the extent of my knowledge of os x.
I think it’s related to kext (kernel extension) signing which is mandatory with yosemite.
I guess you could try to disable kext signing (easy way is to use trim enabler, even if you don’t have an SSD, and follow only the first step if you don’t care about trim).
Take in consideration that doing this will reduce you system’s security (but not more than if you were still running Mavericks)
The other way would require getting a signed driver (officially allowed by apple) but I don’t think it may happen.
Awesome product! Sadly I just updated my Mac OS to Yosemite, and I think that’s made it so the driver won’t work with it. Freakin’ apple and their updates. Any chance you’re gonna update it for Yosemite?
Running Yosemite 10.10.2 w/ a original xbox s controller. Unfortunately all I get is “No Xbox devices found”. Any advice on how to get this working?
Hello!
Do you know how to uninstall it?
Sorry. I found it in the readme file:
Installation and Removal
To install, just open the “XBoxHIDDriver.pkg” package and follow the instructions. Restart should not be required, although it can’t hurt.
Removal is trickier, from the console you can do:
sudo rm -rf /Library/PreferencePanes/XboxHIDPrefsPane.prefPane
sudo rm -rf /System/Library/Extensions/DWXboxHIDDriver.kext
Now open login items and delete the item for the launcher.
has anyone tried to download this recently? it seems like the sourceforge link is broken/damaged. is there a mirror up anywhere?
also does it work for yosemite 10.10?
As I said before, disabling kext signing is mandatory. (easy way is to use trim enabler, even if you don’t have an SSD, and follow only the first step if you don’t care about trim).
Take in consideration that doing this will reduce you system’s security (but not more than if you were still running Mavericks)
The other way would require getting a signed driver (officially allowed by apple) but I don’t think it may happen.
I tried and sucessfully ran xhd with yosemite even if I since downgraded with mavericks (was’nt really happy with yosemite on my mac mini from 2009).
BTW download work fine for me.
http://xhd.cvs.sourceforge.net/viewvc/xhd/xhd/Release/xhd_2_0_0.dmg?revision=1.3
Running Elcapitan 10.11 w/ a original xbox s controller. Unfortunately all I get is “No Xbox devices found”. Any advice on how to get this working?
Come on! Make update for Mac OS X Yosemite and El Capitan please!!
Can’t you update this for Mac OS X Yosemite?
10.11.x please
Hi there the link seems to be dead and I can’t find the driver anywhere else. Any chance of reuploading please?
Great!
This works for me under El Capitan with CSR disabled. A member of the 360Controller Github project was kind enough to produce a signed build of the kext. After running the installer above, you can replace the kext with the signed one which allows it to run on Mavericks+ without disabling CSR.
https://github.com/360Controller/360Controller/issues/319#issuecomment-248130231
@fosamax, thanks so much for updating this! If you wanted to rebuild the installer with the signed kext then folks could run it on Mavericks+.
Thanks for your kind word but I can’t update as I’m just a user not the original maker . I just pointed out it should work with CSR disabled (since I tried it on Yosemite). I’ll try your solution on El Capitan anyway.
@Eric Drechsel
Your solution with a signed kext works perfectly. Just a couple of command to type in the terminal and my original x-box s as well as my remote works as intended with openemu without needing even a reboot.
I’m happy now.
Does it work?
it doesn’t work for Sierra OS
It works!!!! Thank you! i’m on OS X el captian
Can it work on windows 10