360controller / 360controller Goto Github PK
View Code? Open in Web Editor NEWTattieBogle Xbox 360 Driver (with improvements)
License: GNU General Public License v2.0
TattieBogle Xbox 360 Driver (with improvements)
License: GNU General Public License v2.0
I disconnect my 360 controller. When trying to unload the 360Controller kext via kextunload
, it would say that two instances were in use. I found out when I don't have my ChatPad attached, it unloads fine.
Hello, I tried installing v0.13.1 but got this when I try loading 360Controller.kext:
Notice: /System/Library/Extensions/360Controller.kext has debug properties set.
Warnings:
Personality CFBundleIdentifier differs from containing kext's (not necessarily a mistake, but rarely done):
ChatPadKeyboardEvents
(kernel) kxld[com.mice.driver.Xbox360Controller]: The super class vtable '__ZTV11IOHIDDevice' for vtable '__ZTV20ChatPadKeyboardClass' is out of date. Make sure your kext has been built against the correct headers.
(kernel) kxld[com.mice.driver.Xbox360Controller]: The super class vtable '__ZTV11IOHIDDevice' for vtable '__ZTV22Xbox360ControllerClass' is out of date. Make sure your kext has been built against the correct headers.
(kernel) kxld[com.mice.driver.Xbox360Controller]: The super class vtable '__ZTV11IOHIDDevice' for vtable '__ZTV20ChatPadKeyboardClass' is out of date. Make sure your kext has been built against the correct headers.
(kernel) kxld[com.mice.driver.Xbox360Controller]: The super class vtable '__ZTV11IOHIDDevice' for vtable '__ZTV22Xbox360ControllerClass' is out of date. Make sure your kext has been built against the correct headers.
(kernel) Can't load kext com.mice.driver.Xbox360Controller - link failed.
(kernel) Failed to load executable for kext com.mice.driver.Xbox360Controller.
(kernel) Kext com.mice.driver.Xbox360Controller failed to load (0xdc008016).
(kernel) Failed to load kext com.mice.driver.Xbox360Controller (error 0xdc008016).
Failed to load /System/Library/Extensions/360Controller.kext - (libkern/kext) link error.
Check library declarations for your kext with kextlibs(8).
There are a lot of opened issues about supporting new devices #20 #14 #5 #1 #17 and a few messages buried inside other issue's comments.
@bleeq said on #5 he was working on adding new devices.
Someone also made a script to change (the version 0.11 of) the driver to accept a big list of new devices, here: http://forums.macrumors.com/showthread.php?t=636420 (the script https://dl.dropboxusercontent.com/u/14890209/Xbox360Driver0.11ExtraPadSupport.command.zip )
That wont work on signed drivers, I think.
So I think that we should add basic support for these devices, It is apparently easy.
Did you do something about that @bleeq ?
Which file do I look to add support for new devices?
As discussed on #15 , would be good to create a user defined setting UI to set the power off timeout.
My wireless official Microsoft Xbox360 controller just blinks all four leds simultaneously when the receiver is connected thru USB-hub. The controller shows ok in the System Preferences XBox driver view and functions great in Super Meat Boy. For testing I removed all other devices from the USB-hub. The hub itself is simple 4-port hub with option to use external power source. I didn't use it and doubt it is about power.
The wireless controller and the receiver are the official Windows version of Microsoft XBox360 controller package.
I am willing to do further testing if this needed for fixing this issue.
I was testing a bit on Yosemite and noticed the current version's installer doesnt ask the user to restart (as the 0.12 version did), since the driver needs a reboot to work properly I think this is a good idea.
With the driver installed the xbox 360 controller doesn't work with OnLive. I would have to uninstall this driver for it to work. Would be great to have a button in PrefPane to be able to disable it so we don't have to uninstall and reinstall the driver if we want to use OnLive.
This is an old bug, as said in #65
the user settings is not loaded properly when the controller is connected (in fact, you cant change the settings without the controller connected, so it is a common scenario)
The controller connects fine with the transceiver and the XBox360 Controllers control panel see the input just fine. My controller, though, will not stop spinning and stay on the player 1 light.
Does this happen to anyone else?
I'm using OS X Yosemite 10.10.1 and version 0.14 of the XBox360 Controller driver. It stopped working altoegther after I updated to Yosemite but 0.14 fixed it. The spinning lights had been a problem before I updated to Yosemite, though.
Hi there -
I recently switched from Linux to Mac OS. Some linux ports only support xbox 360 controller mappings, like Super Meat Boy. It seems like some Mac OS games are like this, too (like Castle Crashers).
On Linux, I can use xboxdrv to create a virtual joystick, and map buttons from my cruddy old PS2 to USB adapter. I'm wondering if it makes sense to incorporate that kind of functionally into this project.
I would love to be able to continue using my older controllers with newer games.
This has been the functionality of the driver since the beginning. D-pad shows as multiple individual buttons to the operating system. It leads to some problems with games that by default map some functionality to some buttons. It also might lead to problems with games that get confused with too many buttons. Latter is off course example of bad design in the game, rather that in the driver.
Anyway, I was hoping that maybe there could be an option where you could choose between current functionality and an alternative one where d-pad wouldn't show as bunch of buttons. I think we need to keep the current mapping as well, as many games depend on it.
My current test case is with Residual VM. Steps to reproduce, using Xbox360 wireless controller, driver release 0.14:
Observe that the default interaction button is mapped to one of the d-pad directions.
There needs to be a way to create an Installer package that will install the right kext for the OS version. The current program could be used, but it looks like it will take a lot of Packages (the name of the app that generates Installer packages for us) projects, and we might still need to use command line tools.
Seems like apple broke some stuff again... it is not working in the latest yosemite beta :/
I've noticed that the controller order get messed up when a controller disconnects.
For example, there are 4 360 controllers used. Controller 3 disconnects, and you reconnect it straight after it disconnects. It will show up again as controller 3 on the indicator lights, but the game will see it as controller 4 and not as 3, while the real controller 4 will not be able to control anything form that point.
So the indicator lights on the controller work well after reconnecting, but the internal controller order gets messed up. I've tested this with 2 games so far one of then Towerfall which works native with 360 controllers.
Yesterday i tried to play "Broforce" with my brand new XBOX 360 Wireless Controller with your driver under OSX 10.10.1. It worked well, but the screensaver appeared while playing.
Is this game-related or input-device related?
I think it could be a combination of both, havent tried any other game.
My Gamestop controller is FINALLY supported in this release, but I have another issue.
As long as the controller is connected via USB, the display fails to go to sleep and I need to remember to unplug the controller so the display sleeps as expected. Is there a way to fix this so the display functions/sleeps as expected? Unplugging the controller when done with it does fix it, but where it is now attached is not the most convenient place to reach to unplug when done...
Hey,
I think I'm dumb as hell but I've tried to install this sofware maybe 15 times and everytime it has finished installing it, I can't find the software anywhere : nor in my Files or my Apps ... Someone please help me !!
I'm using a MacBook Pro with OSX Yosemite 10.10
I got an Xbox 360 keyboard to try and see how the keyboard support was. It turns out that the support doesn't really work.
the driver doesnt seem to recognise this device. Does anyone have one to test?
Apple has their own framework to provide access to game controllers: Game Controller Framework Reference
I have tried it with Xbox360 Wireless and this driver, but nothing gets found:
#import <GameController/GameController.h>
for (GCController *controller in [GCController controllers]) {
NSLog(@"CONTROLLER FOUND: %@", controller);
}
I could access it via SDL2.
So I was wondering, what would be the effort to add support for GameController Framework?
After a successful connection (controller works) the 4 Player LEDs keep blinking (normally there should be Player 1/2/3/4 etc.)
Using Yosemite with 0.14
Just a quick PSA to say that the yosCodeSign
branch has been moved to master
, while the contents of the old master
branch have moved to snowLeopardCompat
.
Think that would be awesome. I know that this works on windows with the official driver for the wireless controller.
Hi any reason why the XB360 Mortal Kombat FightStick isn't detected by the PrefPane? I've added it to the info.plist and recompiled but still doesn't show up. Any help would be great. Trying to build a Mac mini cade.
XB360 Mortal Kombat FightStick:
Product ID: 0xf906
Vendor ID: 0x1bad
Version: 1.00
Serial Number: 2370656
Speed: Up to 12 Mb/sec
Manufacturer: Performance Designed Products
Location ID: 0x14100000 / 8
Current Available (mA): 500
Current Required (mA): Unknown (Device has not been configured)
I've also tried running the following command
sudo /Library/PreferencePanes/Pref360Control.prefPane/Contents/Resources/DriverTool \
edit \
XB360MortalKombatFightStick 7085 63750 \
[BETOP (GAME FOR WINDOWS)]:
产品 ID: 0x5506
厂商 ID: 0x11c0 (Sanmos Microelectronics Corp.)
版本: 1.00
速度: 最大 12 Mb/秒
制造商: HJC Game
位置 ID: 0x14200000 / 3
可用电流 (mA): 500
所需电流 (mA): 500
I can't seem the find a list of compatible controllers with this driver.
Maybe it's a idea to include this in the Readme of the driver?
Hi,
Could you add the support for this pad?
Thanks!
Mad Catz FightPad:
Product ID: 0xf02e
Vendor ID: 0x1bad
Version: 4.90
Serial Number: 1871A46A
Speed: Up to 12 Mb/sec
Manufacturer: Mad Catz, Inc.
Location ID: 0xfd140000 / 5
Current Available (mA): 500
Current Required (mA): Unknown (Device has not been configured)
This is probably my fault, but I wonder if something could be done about it. I'm willing to post logs or whatever to get this to work. I apparently bought a Chinese knock off wireless receiver instead of the official Microsoft one. I didn't do it intentionally, but I figure the device would still function.
However when I try to pair the receiver and wireless controller the lights flash (and circle on the controller) as expected. Then the receiver light goes solid and all four lights flash on the controller 4 times, pause, then continue to flash as if the pairing was unsuccessful.
Using this driver with a wired Xbox 360 controller, force feedback effects only work if the duration is at least 1 second. Anything less and the effect doesn't work at all (but it still reports success, or at least SDL does.)
This can be easily tested by modifying the durations in the SDL_HapticRumblePlay
calls in testrumble.c
.
Full Speed device @ 7 (0x14100000): ............................................. Vendor-specific device: "Controller"
Port Information: 0x101a
Not Captive
Attached to Root Hub
External Device
Connected
Enabled
Number Of Endpoints (includes EP0):
Total Endpoints for Configuration 1 (unconfigured): 8
Device Descriptor
Descriptor Version Number: 0x0200
Device Class: 255 (Vendor-specific)
Device Subclass: 255 (Vendor-specific)
Device Protocol: 255
Device MaxPacketSize: 8
Device VendorID/ProductID: 0x12AB/0xF701 (Honey Bee Electronic International Ltd.)
Device Version Number: 0x0110
Number of Configurations: 1
Manufacturer String: 1 "Microsoft Inc."
Product String: 2 "Controller"
Serial Number String: 3 "102612E"
Current configuration: 0 (unconfigured)
Configuration Descriptor
Length (and contents): 153
Raw Descriptor (hex) 0000: 09 02 99 00 04 01 00 A0 FA 09 04 00 00 02 FF 5D
Raw Descriptor (hex) 0010: 01 00 11 21 10 01 01 25 81 14 03 03 03 04 13 02
Raw Descriptor (hex) 0020: 08 03 03 07 05 81 03 20 00 04 07 05 02 03 20 00
Raw Descriptor (hex) 0030: 08 09 04 01 00 04 FF 5D 03 00 1B 21 00 01 01 01
Raw Descriptor (hex) 0040: 83 40 01 04 20 16 85 00 00 00 00 00 00 16 05 00
Raw Descriptor (hex) 0050: 00 00 00 00 00 07 05 83 03 20 00 02 07 05 04 03
Raw Descriptor (hex) 0060: 20 00 04 07 05 85 03 20 00 40 07 05 05 03 20 00
Raw Descriptor (hex) 0070: 10 09 04 02 00 01 FF 5D 02 00 09 21 00 01 01 22
Raw Descriptor (hex) 0080: 86 07 00 07 05 86 03 20 00 10 09 04 03 00 00 FF
Raw Descriptor (hex) 0090: FD 13 04 06 41 00 01 01 03
Number of Interfaces: 4
Configuration Value: 1
Attributes: 0xA0 (bus-powered, remote wakeup)
MaxPower: 500 ma
Interface #0 - Vendor-specific
Alternate Setting 0
Number of Endpoints 2
Interface Class: 255 (Vendor-specific)
Interface Subclass; 93 (Vendor-specific)
Interface Protocol: 1
Raw Descriptor (hex) 0000: 11 21 10 01 01 25 81 14 03 03 03 04 13 02 08 03
Raw Descriptor (hex) 0010: 03
Endpoint 0x81 - Interrupt Input
Address: 0x81 (IN)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 32
Polling Interval: 4 ms
Endpoint 0x02 - Interrupt Output
Address: 0x02 (OUT)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 32
Polling Interval: 8 ms
Interface #1 - Vendor-specific
Alternate Setting 0
Number of Endpoints 4
Interface Class: 255 (Vendor-specific)
Interface Subclass; 93 (Vendor-specific)
Interface Protocol: 3
Raw Descriptor (hex) 0000: 1B 21 00 01 01 01 83 40 01 04 20 16 85 00 00 00
Raw Descriptor (hex) 0010: 00 00 00 16 05 00 00 00 00 00 00
Endpoint 0x83 - Interrupt Input
Address: 0x83 (IN)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 32
Polling Interval: 2 ms
Endpoint 0x04 - Interrupt Output
Address: 0x04 (OUT)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 32
Polling Interval: 4 ms
Endpoint 0x85 - Interrupt Input
Address: 0x85 (IN)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 32
Polling Interval: 64 ms
Endpoint 0x05 - Interrupt Output
Address: 0x05 (OUT)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 32
Polling Interval: 16 ms
Interface #2 - Vendor-specific
Alternate Setting 0
Number of Endpoints 1
Interface Class: 255 (Vendor-specific)
Interface Subclass; 93 (Vendor-specific)
Interface Protocol: 2
Raw Descriptor (hex) 0000: 09 21 00 01 01 22 86 07 00
Endpoint 0x86 - Interrupt Input
Address: 0x86 (IN)
Attributes: 0x03 (Interrupt no synchronization data endpoint)
Max Packet Size: 32
Polling Interval: 16 ms
Interface #3 - Vendor-specific .............................................. "Xbox Security Method 3, Version 1.00, \251 2005 Microsoft Corporation. All rights reserved."
Alternate Setting 0
Number of Endpoints 0
Interface Class: 255 (Vendor-specific)
Interface Subclass; 253 (Vendor-specific)
Interface Protocol: 19
Raw Descriptor (hex) 0000: 06 41 00 01 01 03
Hi,
I'm currently using the xbox 360 wireless controller to play some good ol' n64 games with openEmu. The problem is that the controls on the left joystick axes are way to sensitive, so on moving the sticks only a little bit Mario just RUNS instead of walking slowly.
So:
A) I didn't understand what the sliders on the very left and at the bottom right are for. When I move them I see the red lines going back and forth, but it doesn't change the controls in any way. If these sliders are supposed to change sensitivity, then this is a bug-report.
B) The sliders have nothing to do with sensitivity. Then this is a feature-request for adding another slider, that would decrease sensitivity, so that little Mario can walk slowly in the future.
Cheers! -H
I was writing a uninstall script (#54) and noticed the kexts aren't unloading correctly. Both for Wired and Wireless controllers.
please try:
sudo kextunload -b "com.mice.driver.Xbox360Controller"
or
sudo kextunload -b "com.mice.driver.Wireless360Controller"
The controller(s) stop working as expected but the driver is still on memory
(check with sudo kextstat | grep com.mice.driver
)
if you reload the driver it will get back working with another stance.
Apparently the old stance was never released and leak.
This is the message I got when trying to unload the kext in verbose mode, after unloading/loading a few times:
(sudo kextunload -b "com.mice.driver.Xbox360Controller" -v 6
)
Kext user-space log filter changed from 0xff2 to 0xfff.
Kext kernel-space log filter changed from 0xff2 to 0xfff.
Requesting unload of com.mice.driver.Xbox360Controller (with termnation of IOServices).
(kernel) User-space log flags changed from 0x0 to 0xfff.
(kernel) Received 'Unload' request from user space.
(kernel) Can't unload kext com.mice.driver.Xbox360Controller; classes have instances:
(kernel) Kext com.mice.driver.Xbox360Controller class Xbox360Peripheral has 7 instances.
(kernel) Kext com.mice.driver.Xbox360Controller class Xbox360ControllerClass has 1 instance.
(kernel) Kext com.mice.driver.Xbox360Controller class XboxOneControllerClass has 7 instances.
Kernel error handling kext request - (libkern/kext) kext is in use or retained (cannot unload).
Failed to unload com.mice.driver.Xbox360Controller - (libkern/kext) kext is in use or retained (cannot unload).
Also, this is certainly the reason why you usually need to restart (#11) when upgrading the driver.
Maybe this is related to #13 too?
Also, this may help, I think:
http://stackoverflow.com/questions/13536970/cant-unload-kernel-extension-classes-have-instances
I'm running OS X 10.10.1 on a mid-2012 MBP and a late 2009 Mac Mini. 360Controller doesn't work with my EX2 Turbo, on the MPB or the Mini. It doesn't show up as a device under the XBox 360 Controllers preference. No game or emulator can see it.
It does show up under System Report->USB and works perfectly in Windows 7 running under Parallels, though.
I even tried deleting 360Controller from the MBP and using Tattieboggle's driver + workarounds. Still nothing. What's going on?
I don't if it is possible but a I like to see an on/off button in the menu bar to turn your controllers of in the menu bar as a new feature. Because now you have to open the config window every time you like to do that. I have no clue if this is a lot of work to implement, if so, don't bother.
Hi,
I'm using drivers version 0.13.1 and when my mac wake up form sleep I can't connect the wireless xbox 360 controller, all 4 lights blink. Is necessary disconect the receptor from USB and connect again to working. Is this a bug? There is a fix for that?
My iMac is Mavericks OS X 10.9.4
Thanks,
Charles
I noticed this bug since I installed the Yosemite release. The wireless controller goes to sleep after the timeout like I hadn't been using it at all. Could it be related with the fact that the lights keep blinking?
I'm having the same issue other folks have mentioned (in the SRK forum) regarding the HORI Real Arcade Pro EX. When I connect, I've got flashing lights but the driver does recognize it. However, system_profiler SPUSBDataType would indicate that the OS does recognize the device. This is what I get from /var/log/syslog.log:
Oct 25 00:37:03 disorder kernel[0]: Unknown device release 100start - failed to read chatpad setting
Dug into the code and saw this:
if (device->DeviceRequest(&controlReq, 100, 100, NULL) != kIOReturnSuccess)
{
IOLog("start - failed to read chatpad setting\n");
goto fail;
}
I also found this:
bool Xbox360Peripheral::start(IOService *provider)
{
const IOUSBConfigurationDescriptor *cd;
IOUSBFindInterfaceRequest intf;
IOUSBFindEndpointRequest pipe;
XBOX360_OUT_LED led;
IOWorkLoop *workloop = NULL;
if (!super::start(provider))
return false;
// Get device
device=OSDynamicCast(IOUSBDevice,provider);
if(device==NULL) {
IOLog("start - invalid provider\n");
goto fail;
}
// Check for configurations
if(device->GetNumConfigurations()<1) {
device=NULL;
IOLog("start - device has no configurations!\n");
goto fail;
}
// Set configuration
cd=device->GetFullConfigurationDescriptor(0);
if(cd==NULL) {
device=NULL;
IOLog("start - couldn't get configuration descriptor\n");
goto fail;
}
// Open
if(!device->open(this)) {
device=NULL;
IOLog("start - unable to open device\n");
goto fail;
}
if(device->SetConfiguration(this,cd->bConfigurationValue,true)!=kIOReturnSuccess) {
IOLog("start - unable to set configuration\n");
goto fail;
}
// Get release
{
UInt16 release = device->GetDeviceRelease();
switch (release) {
default:
IOLog("Unknown device release %.4x", release);
// fall through
case 0x0110:
chatpadInit[0] = 0x01;
chatpadInit[1] = 0x02;
break;
case 0x0114:
chatpadInit[0] = 0x09;
chatpadInit[1] = 0x00;
break;
}
}
These two functions combined seem to make the the contents of the log file. Don't know that much about device drivers or ObjC/C, but I can do some guessing:
It looks like the first conditional does not return kIOReturnSuccess, which might indicate that the DeviceRequest failed.
In the second code section, it looks like device is some sort of pointer to a struct or object and GetDeviceRelease is the method for that struct or object. The return value is release, which is likely a 16 bit int. The switch logic defaults to failure if release doesn't match the either of the hex values listed above. Since there are no comments for those values, I have no idea what they're for (at least without digging deeper)
If anyone is willing to take this on, I'd be more than happy to assist in any way I can. Would be great to get this bug squashed.
Dear developer,
My friends and I have xbox one gamepad and sometimes want to use it on MAC.
Do you have a plan to develop a driver for xbox one controller for MAC OS X?
I can confirm that this method gives me a working controller (Razer Sabertooth Elite):
http://forums.macrumors.com/showthread.php?p=18789871#post18789871
However is it possible to get this controller working with this version so I don't have to deal with crashes??
The information for this controller is as follows:
Product ID: 0xfe00
Vendor ID: 0x1689
Version: 1.24
Serial Number: 0773633A
Speed: Up to 12 Mb/sec
Manufacturer: Razer
Location ID: 0x14500000 / 10
Current Available (mA): 500
Current Required (mA): 500
Thanks, or if you could point me in the direction of how to help the project support it even better
Anonymous UUID: 3375D1AB-DD7E-F75E-096A-382488A25960
Wed Aug 13 20:49:06 2014
panic(cpu 0 caller 0xffffff80288dbf5e): Kernel trap at 0xffffff7faad4e98e, type 14=page fault, registers:
CR0: 0x000000008001003b, CR2: 0x0000000000000000, CR3: 0x000000002b407000, CR4: 0x00000000001606e0
RAX: 0xffffff804e745a00, RBX: 0xffffff804e745a00, RCX: 0x0000000000000007, RDX: 0xffffff804fec3500
RSP: 0xffffff82158a3b10, RBP: 0xffffff82158a3b20, RSI: 0x00000000e0000010, RDI: 0x0000000000000000
R8: 0x0000000000000000, R9: 0x0000000000000000, R10: 0x0000000000000010, R11: 0xffffffffffffff00
R12: 0xffffff8055aa3540, R13: 0x00000000e0000010, R14: 0x0000000000000007, R15: 0xffffff804fec3500
RFL: 0x0000000000010246, RIP: 0xffffff7faad4e98e, CS: 0x0000000000000008, SS: 0x0000000000000010
Fault CR2: 0x0000000000000000, Error code: 0x0000000000000000, Fault CPU: 0x0
Backtrace (CPU 0), Frame : Return Address
0xffffff82158a37a0 : 0xffffff8028822fa9
0xffffff82158a3820 : 0xffffff80288dbf5e
0xffffff82158a39f0 : 0xffffff80288f3456
0xffffff82158a3a10 : 0xffffff7faad4e98e
0xffffff82158a3b20 : 0xffffff8028c91d3a
0xffffff82158a3b80 : 0xffffff8028c92053
0xffffff82158a3ba0 : 0xffffff8028c8d219
0xffffff82158a3be0 : 0xffffff8028c91ea2
0xffffff82158a3c10 : 0xffffff8028c92019
0xffffff82158a3c50 : 0xffffff8028c93b72
0xffffff82158a3ca0 : 0xffffff8028caf25e
0xffffff82158a3ce0 : 0xffffff8028c9326f
0xffffff82158a3d60 : 0xffffff8028c92d27
0xffffff82158a3da0 : 0xffffff8028c92aba
0xffffff82158a3e00 : 0xffffff8028c9408c
0xffffff82158a3e10 : 0xffffff7fa8e301a1
0xffffff82158a3e30 : 0xffffff7fa9a28b1a
0xffffff82158a3e70 : 0xffffff7fa9a2c7f7
0xffffff82158a3ea0 : 0xffffff7fa9a2cc97
0xffffff82158a3f00 : 0xffffff7fa9a27b8f
0xffffff82158a3f20 : 0xffffff802884a23a
0xffffff82158a3fb0 : 0xffffff80288d7127
Kernel Extensions in backtrace:
com.apple.iokit.IOUSBFamily(677.4)[7B660BA0-DC2C-3B67-9156-A9E8F9CC783F]@0xffffff7fa8e1b000->0xffffff7fa8e7bfff
dependency: com.apple.iokit.IOPCIFamily(2.9)[244D4E48-78E6-3369-8D76-285C66EF9BF4]@0xffffff7fa8dec000
com.apple.driver.AppleUSBHub(666.4)[67DBE53A-831B-3DE4-8D54-DC56789C25EC]@0xffffff7fa9a1b000->0xffffff7fa9a32fff
dependency: com.apple.iokit.IOUSBFamily(677.4.0)[7B660BA0-DC2C-3B67-9156-A9E8F9CC783F]@0xffffff7fa8e1b000
com.mice.driver.Xbox360Controller(1.0d12)[CD56688F-D773-3C80-AE8E-34AC8CAB8988]@0xffffff7faad4d000->0xffffff7faad52fff
dependency: com.apple.iokit.IOHIDFamily(2.0.0)[FDF4C462-65B0-367C-8A5E-56136D7C54A5]@0xffffff7fa9928000
dependency: com.apple.iokit.IOUSBFamily(677.4.0)[7B660BA0-DC2C-3B67-9156-A9E8F9CC783F]@0xffffff7fa8e1b000
BSD process name corresponding to current thread: kernel_task
Mac OS version:
13D65
Kernel version:
Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64
Kernel UUID: ADD73AE6-88B0-32FB-A8BB-4F7C8BE4092E
Kernel slide: 0x0000000028600000
Kernel text base: 0xffffff8028800000
System model name: MacBookPro10,1 (Mac-C3EC7CD22292981F)
System uptime in nanoseconds: 813303276860
last loaded kext at 245656911662: com.apple.filesystems.msdosfs 1.9 (addr 0xffffff7fa9764000, size 65536)
last unloaded kext at 306429236733: com.apple.driver.AppleUSBOHCI 656.4.1 (addr 0xffffff7fa9a01000, size 53248)
loaded kexts:
com.mice.driver.Xbox360Controller 1.0.0d12
com.Cycling74.driver.Soundflower 1.5.1
org.virtualbox.kext.VBoxUSB 4.2.16
org.virtualbox.kext.VBoxDrv 4.2.16
com.apple.driver.AppleHWSensor 1.9.5d0
com.apple.filesystems.autofs 3.0
com.apple.filesystems.ntfs 3.11
com.apple.iokit.IOBluetoothSerialManager 4.2.4f1
com.apple.driver.AudioAUUC 1.60
com.apple.driver.AppleMikeyHIDDriver 124
com.apple.driver.AppleMikeyDriver 2.6.1f2
com.apple.driver.ApplePlatformEnabler 2.0.9d1
com.apple.driver.AGPM 100.14.15
com.apple.driver.X86PlatformShim 1.0.0
com.apple.driver.AppleHDA 2.6.1f2
com.apple.driver.AppleUpstreamUserClient 3.5.13
com.apple.iokit.IOUserEthernet 1.0.0d1
com.apple.driver.AppleUSBDisplays 360.8.14
com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport 4.2.4f1
com.apple.GeForce 8.2.6
com.apple.Dont_Steal_Mac_OS_X 7.0.0
com.apple.driver.AppleHWAccess 1
com.apple.driver.AppleThunderboltIP 1.1.2
com.apple.driver.AppleSMCPDRC 1.0.0
com.apple.driver.AppleSMCLMU 2.0.4d1
com.apple.driver.AppleMuxControl 3.5.26
com.apple.driver.AppleLPC 1.7.0
com.apple.driver.AppleMCCSControl 1.1.12
com.apple.driver.AppleIntelHD4000Graphics 8.2.6
com.apple.driver.AppleIntelFramebufferCapri 8.2.6
com.apple.driver.AppleUSBTCButtons 240.2
com.apple.driver.AppleUSBTCKeyboard 240.2
com.apple.AppleFSCompression.AppleFSCompressionTypeDataless 1.0.0d1
com.apple.AppleFSCompression.AppleFSCompressionTypeZlib 1.0.0d1
com.apple.BootCache 35
com.apple.driver.AppleFWOHCI 5.0.2
com.apple.driver.XsanFilter 404
com.apple.iokit.IOAHCIBlockStorage 2.5.1
com.apple.driver.AppleSDXC 1.5.2
com.apple.iokit.AppleBCM5701Ethernet 3.8.1b2
com.apple.driver.AppleUSBHub 666.4.0
com.apple.driver.AirPort.Brcm4331 700.20.22
com.apple.driver.AppleAHCIPort 3.0.0
com.apple.driver.AppleUSBEHCI 660.4.0
com.apple.driver.AppleUSBXHCI 677.4.0
com.apple.driver.AppleSmartBatteryManager 161.0.0
com.apple.driver.AppleACPIButtons 2.0
com.apple.driver.AppleRTC 2.0
com.apple.driver.AppleHPET 1.8
com.apple.driver.AppleSMBIOS 2.1
com.apple.driver.AppleACPIEC 2.0
com.apple.driver.AppleAPIC 1.7
com.apple.driver.AppleIntelCPUPowerManagementClient 217.92.1
com.apple.nke.applicationfirewall 153
com.apple.security.quarantine 3
com.apple.driver.AppleIntelCPUPowerManagement 217.92.1
com.apple.kext.triggers 1.0
com.apple.iokit.IOSerialFamily 10.0.7
com.apple.iokit.IOSCSIArchitectureModelFamily 3.6.6
com.apple.driver.DspFuncLib 2.6.1f2
com.apple.vecLib.kext 1.0.0
com.apple.iokit.IOBluetoothHostControllerUSBTransport 4.2.4f1
com.apple.iokit.IOBluetoothFamily 4.2.4f1
com.apple.iokit.IOAcceleratorFamily 98.20
com.apple.nvidia.driver.NVDAGK100Hal 8.2.6
com.apple.nvidia.driver.NVDAResman 8.2.6
com.apple.driver.X86PlatformPlugin 1.0.0
com.apple.driver.AppleUSBAudio 2.9.5f4
com.apple.iokit.IOAudioFamily 1.9.7fc2
com.apple.kext.OSvKernDSPLib 1.14
com.apple.driver.AppleHDAController 2.6.1f2
com.apple.iokit.IOHDAFamily 2.6.1f2
com.apple.iokit.IOFireWireIP 2.2.6
com.apple.driver.AppleSMC 3.1.8
com.apple.driver.AppleGraphicsControl 3.5.26
com.apple.driver.IOPlatformPluginFamily 5.7.0d11
com.apple.driver.AppleSMBusPCI 1.0.12d1
com.apple.driver.AppleBacklightExpert 1.0.4
com.apple.driver.AppleSMBusController 1.0.11d1
com.apple.iokit.IOSurface 91.1
com.apple.iokit.IONDRVSupport 2.4.1
com.apple.iokit.IOAcceleratorFamily2 98.20
com.apple.AppleGraphicsDeviceControl 3.5.26
com.apple.iokit.IOGraphicsFamily 2.4.1
com.apple.driver.AppleUSBMultitouch 240.9
com.apple.iokit.IOUSBHIDDriver 660.4.0
com.apple.driver.AppleThunderboltPCIUpAdapter 1.4.5
com.apple.driver.AppleThunderboltDPInAdapter 3.1.7
com.apple.driver.AppleThunderboltDPOutAdapter 3.1.7
com.apple.driver.AppleThunderboltDPAdapterFamily 3.1.7
com.apple.driver.AppleThunderboltPCIDownAdapter 1.4.5
com.apple.driver.AppleUSBMergeNub 650.4.0
com.apple.driver.AppleUSBComposite 656.4.1
com.apple.iokit.IOFireWireFamily 4.5.5
com.apple.driver.AppleThunderboltNHI 2.0.1
com.apple.iokit.IOThunderboltFamily 3.2.7
com.apple.iokit.IOEthernetAVBController 1.0.3b4
com.apple.driver.mDNSOffloadUserClient 1.0.1b5
com.apple.iokit.IO80211Family 630.35
com.apple.iokit.IONetworkingFamily 3.2
com.apple.iokit.IOUSBUserClient 660.4.2
com.apple.iokit.IOAHCIFamily 2.6.5
com.apple.iokit.IOUSBFamily 677.4.0
com.apple.driver.AppleEFINVRAM 2.0
com.apple.driver.AppleEFIRuntime 2.0
com.apple.iokit.IOHIDFamily 2.0.0
com.apple.iokit.IOSMBusFamily 1.1
com.apple.security.sandbox 278.11
com.apple.kext.AppleMatch 1.0.0d1
com.apple.security.TMSafetyNet 7
com.apple.driver.AppleKeyStore 2
com.apple.driver.DiskImages 371.1
com.apple.iokit.IOStorageFamily 1.9
com.apple.iokit.IOReportFamily 23
com.apple.driver.AppleFDEKeyStore 28.30
com.apple.driver.AppleACPIPlatform 2.0
com.apple.iokit.IOPCIFamily 2.9
com.apple.iokit.IOACPIFamily 1.4
com.apple.kec.corecrypto 1.0
com.apple.kec.pthread 1
0.12 featured power-off timeout. All cool for keeping the battery alive, but a timeout of only 2 minutes is too damn short. Any cutscene will make the controller to turn off. That shouldn't be a problem, but most games stop recognizing the controller afterwards (which I don't know if it's another bug on its own) and I end up needing to close and launch them again.
Ideally, I see this a something to be configurable, but back then, as a quick fix, I re-compiled the driver with a more reasonable timeout of 15 minutes. I also tried to contact tattiebogle to have it merged, but never got word from him. I'm happy to find this "unofficial" fork of the driver so the community can finally contribute.
This appears to be caused by an upstream apple bug, http://openradar.appspot.com/radar?id=5792030827479040 .
More testing wouldn't hurt though.
So... "in order to compile (with 32-bit support), you need to set DEVELOPER_DIR to an Xcode 4.6 Developer directory and run build.sh. Xcode 5 cannot compile 32-bit kexts."
Does this even work in Xcode 6 on Yosemite/Mavericks?
Is there any breaking changes that prevent 32bit from building in the yosCodeSign branch?
As discussed in #31 , this branch probably should be on master.
Maybe it is the time to bump up the minimum required version to the one that supports kexts signed with the latest xcode (10.7? 10.8? 10.9?) and maybe keep another branch that works on older versions.
@d235j @MaddTheSane thoughts?
According to MSDN — http://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.reference.xinput_gamepad(v=vs.85).aspx — the thumbstick values are negative for down and left.
When I read out the values from this driver I get negative values for UP and left. Was this deliberate, is MSDN wrong or is it a driver issue?
Additionally, wiggling the left stick yields actions for the right stick and vice versa unless I hold the first stick at extreme values. So, e.g. I hold the left stick at, say, -20000, and I then move the right stick. I get input value callback calls for the left stick as well (with the right values for both though). Not sure if this is a limitation of the hardware or a bug.
The problem is the same as in https://github.com/d235j/360Controller/issues/38
Xbox 360 Wireless Receiver for Windows:
Product ID: 0x0719
Vendor ID: 0x045e (Microsoft Corporation)
Version: 1.00
Serial Number: 00000000
Speed: Up to 12 Mb/sec
Manufacturer: ©Microsoft
Location ID: 0x1a110000 / 3
Current Available (mA): 500
Current Required (mA): 260
I could see in Windows under Parallels id of the controller:
USB\VID_045E&PID_02A1&IG_00
What should I add to the info.plist to work?
P.S. Sorry for my bad english
Hello,
Before I've upgraded to Yosemite, I used this instruction and your driver in 10.9 to play Steam games using Logitech F710 gamepad in X-Input mode and it worked great, thank you for that!
But with the upgraded driver and 10.10 the trick does not seem to work, could you please look into it?
PS: I (and many F710 users I guess) would also appreciate, if the driver supported this gamepad out-of-the-box, there seems to be no rocket-science in Xbox360DriverExtraPadSupport.command
I have read in another form that we can use pkgutil --files com.mice.pkg.Xbox360controller; to see the files installed by your driver and uninstalled manually. I am wondering if maybe you could include some kind of uninstaller to make the process easier.
Thank you for your amazing work
I've upgraded to the 0.14 version of the driver (to work on Yosemite) and the controller is being recognized, but the 4 LEDs on the front just spin the whole time (as if they are looking to pair with an XBox).
This happens with both the wired and the wireless controller.
I'm on 10.10.1 MacBook Pro (Retina, 15-inch, late 2013)
Maybe a nitpick, but are you open to the idea of using a DeveloperSettings.xcconfig which is added to .gitignore (as described here: http://stackoverflow.com/a/333177/114132) to store the CODE_SIGN_IDENTITY
variable?
It would make my working tree a bit cleaner, and would also help with initial error messages for people trying to build.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.