USB Xbox 360 controller HID driver kext . . . attached

As you may know, 10.6 broke the “tattiebogle” Mac drivers:

http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/OsxDriver

Last month I tried his latest build for SL but they apparently KP’d on me last week so I removed them with extreme prejudice.

With the xbox excitement I finally got around to trying to rebuild for 10.6 x86 his driver KEXT and have attached it here. I’ve only tested for an hour or so but the kext seems to work now . . .

The rebuild involved taking his latest 0.07 drop, removing XCode 2.x cruft from the FF and Controller project settings, and rebuilding with 10.6 as the base SDK. I also only built for i386 (32bit intel) not x64 to keep things simple for now.

Note: This is just the kext, not the daemon or control panel. This is only expected to work on 10.6, 32-bit kernel boot.

Installing

  1. unzip the attachment, eg onto the desktop.

  2. do the following jive:

sudo chmod -R 755 /Users/troy/Desktop/360Controller.kext 
sudo chown -R root:wheel /Users/troy/Desktop/360Controller.kext
  1. Copy load it:
sudo cp -r /Users/troy/Desktop/360Controller.kext /System/Library/Extensions/
sudo kextload /System/Library/Extensions/360Controller.kext
  1. Verify that it’s loaded:
kextstat | grep 360

You should see:

  133    0 0x50cd6000 0x3000     0x2000     com.mice.driver.Xbox360Controller (1.0.0d5) <35 29 12 11 7 6 5 4 3 1>

Note that it’s important to do the chmod/chown stuff before copying into the system folder, since Leopard will pick up the incoming kext automatically and reject it for being malformed before you can run the changes.

Wonkiness

LEDs don’t work. ? . FF is untested. If you have multiple controllers it’s apparently indeterminate which one will be picked up as joystick 1.

Notes

The good news is that this Mac HID driver exposes the triggers as separate axes (#5 #6), like XNA, and unlike the Microsoft USB drivers which make the triggers into a single axis which destroys their usefulness. The bad news about this is that the triggers are initially 0.0f until the user touches one, then they move to a [-1 … 1] range instead (with -1 being fully open).

219621–7980–$360controllerkext_153.zip (20.5 KB)

ah man the axes work but the buttons don’t.

Back to the drawing board.

I may just have to install the alternate xbcd drivers on Windows to get functional joysticks and just test there.

Unfortunately, Unity is not working correctly with multiple joysticks (filing a bug).

Have you seen that Intel commercial on TV where the inventor of USB is honored?

I want to punch that idiot in the nose.

Just curious if you could post the updated code so others of us might start from where you got to? I’m dying for a 10.6 update for Core 2 (64-Bit) machines.

It would be a great boon especially for the OS X/Unity community to have a bit more robust controller support open sourced. I’ve loved Tattiebogle.net up until this. I even approached him with a contract to update it and add keypad support with no reply. Would really love to have this stuff work without fear.