XBOX Driver for Mac OS X Lion / Mavericks

xbox-01

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).

xbox-02

You can download it here:

http://xhd.cvs.sourceforge.net/viewvc/xhd/xhd/Release/xhd_2_0_0.dmg?revision=1.3

Advertisements

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , ,

49 responses to “XBOX Driver for Mac OS X Lion / Mavericks”

  1. Dave Eddy says :

    have you had any luck using this with XBMC?

  2. chellini says :

    Awesome!.. been looking for this for a while. Thanks

  3. agusti bau says :

    This made my day! thank you very much! Downloading

  4. Mike Powers says :

    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!

  5. joshuawoodnz says :

    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?

    • joshuawoodnz says :

      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.

  6. Tom says :

    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.

  7. Vi100 says :

    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!

  8. yf says :

    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 😦

    • joshuawoodnz says :

      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.

  9. Jam says :

    Hi, will this work in mountain lion/mavericks?? Thanks in advance..

    • Josh says :

      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.

  10. mjduez says :

    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!

  11. ZZZ says :

    Does it work with a Xbox One controller?

    • joshuawoodnz says :

      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.

  12. neversc0t says :

    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

    • joshuawoodnz says :

      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.

  13. Tao says :

    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.

  14. dave says :

    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? 😐

  15. dave says :

    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.

  16. fosamax says :

    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.

  17. Jake Lockley says :

    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?

  18. Brad says :

    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?

  19. Ola says :

    Hello!

    Do you know how to uninstall it?

    • Ola says :

      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.

  20. grey nebraska says :

    has anyone tried to download this recently? it seems like the sourceforge link is broken/damaged. is there a mirror up anywhere?

  21. grey nebraska says :

    also does it work for yosemite 10.10?

    • fosamax says :

      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

  22. Renny Jose says :

    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?

  23. says :

    Come on! Make update for Mac OS X Yosemite and El Capitan please!!

  24. Fox says :

    10.11.x please

  25. Gary Hewitt says :

    Hi there the link seems to be dead and I can’t find the driver anywhere else. Any chance of reuploading please?

  26. Eric Drechsel says :

    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+.

    • fosamax says :

      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.

      • fosamax says :

        @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.

  27. Victor Solis says :

    it doesn’t work for Sierra OS

  28. Andrés Durán says :

    It works!!!! Thank you! i’m on OS X el captian

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

%d bloggers like this: