Hacking Gamecube Adapter Support and FAQ

Mike4Real

Member
Newcomer
Joined
Jan 8, 2015
Messages
9
Trophies
0
XP
105
Country
United States
I've made some progress on a driver for OSX:

https://github.com/area/wiiu-gc-adapter-osx

Thanks for your work on this driver area, I was hoping someone would get to it. I've downloaded Xcode and what you've made so far, and I was able to build GC.kext.

I got stuck at trying to run it though, I followed your instructions in the readme, but terminal returns this after the third command:
/tmp/GC.kext - no compatible dependency found for com.apple.kpi.iokit.
I get a few more lines similar to that one, and then I get, "Code Signing Failure: not code signed" at the bottom.

I followed your instructions to disable the requirement for kext files to be code signed and it seemed to work, but maybe not. I am running OX X 10.9.5 Mavericks, which may be why I'm having issues.
 

area

Member
Newcomer
Joined
Jan 4, 2015
Messages
17
Trophies
0
XP
103
Country
I got stuck at trying to run it though, I followed your instructions in the readme, but terminal returns this after the third command:
/tmp/GC.kext - no compatible dependency found for com.apple.kpi.iokit.

I am running OX X 10.9.5 Mavericks, which may be why I'm having issues.

I think your version of OSX is the issue. If I'm right though, it's an easy fix (assuming that I've not used anything that's only introduced in 10.10... no guarantees - this is all new territory for me).

Instead of trying to load the kext, run
Code:
kextlibs /tmp/GC.kext
This should give you the versions of the libraries you need to link against, which are probably different? Edit the OSBundleLibraries dictionary in Info.plist appropriately using XCode, build it and try and load it again.

If that works, and that's the issue, I'll update the README accordingly.
 

KIT786

Well-Known Member
Newcomer
Joined
Nov 2, 2008
Messages
55
Trophies
0
Website
Visit site
XP
1,401
Country
I'm having issues running it too, i'm on 10.10. I get the following:

Code:
Defaulting to kernel file '/System/Library/Kernels/kernel'
Notice: /tmp/GC.kext has debug properties set.
Diagnostics for /tmp/GC.kext:
Code Signing Failure: not code signed
/tmp/GC.kext appears to be loadable (not including linkage for on-disk libraries).
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext "/tmp/GC.kext"
Loading /tmp/GC.kext.
/tmp/GC.kext successfully loaded (or already loaded).

However don't have anything appear to map controls to games?
 

area

Member
Newcomer
Joined
Jan 4, 2015
Messages
17
Trophies
0
XP
103
Country
I'm having issues running it too, i'm on 10.10. I get the following:

Code:
Defaulting to kernel file '/System/Library/Kernels/kernel'
Notice: /tmp/GC.kext has debug properties set.
Diagnostics for /tmp/GC.kext:
Code Signing Failure: not code signed
/tmp/GC.kext appears to be loadable (not including linkage for on-disk libraries).
kext-dev-mode allowing invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext "/tmp/GC.kext"
Loading /tmp/GC.kext.
/tmp/GC.kext successfully loaded (or already loaded).

However don't have anything appear to map controls to games?


That's loaded correctly. As it stands, it just appears as a HID controller - there's no PrefPane, and you'll have to use something to map buttons to keyboard buttons for things that don't support HID controllers (which is sadly a surprising number of games). I've been using Enjoyable for testing.
 

Mike4Real

Member
Newcomer
Joined
Jan 8, 2015
Messages
9
Trophies
0
XP
105
Country
United States
I think your version of OSX is the issue...
Yea I think you're right, thanks for the help :). I ran what you suggested and I got:
Code:
For all architectures:
    com.apple.iokit.IOHIDFamily = 2.0
    com.apple.kpi.iokit = 13.4
    com.apple.kpi.libkern = 13.4
    com.apple.kpi.mach = 13.4
I changed OSBundleLibraries to these numbers (13.4 instead of 14.0) and rebuilt. Now I think it loads correctly, I get this when I load it:
Code:
Notice: /tmp/GC.kext has debug properties set.
Diagnostics for /tmp/GC.kext:
Code Signing Failure: not code signed
/tmp/GC.kext appears to be loadable (not including linkage for on-disk libraries).
WARNING - Invalid signature -67062 0xFFFFFFFFFFFEFA0A for kext "/tmp/GC.kext"
Loading /tmp/GC.kext.
/tmp/GC.kext successfully loaded (or already loaded).
 

KIT786

Well-Known Member
Newcomer
Joined
Nov 2, 2008
Messages
55
Trophies
0
Website
Visit site
XP
1,401
Country
Ah sorry my misunderstanding. Loaded up Enjoyable and working fine :)

Thanks mate, much appreciated!

Mike, looks to me like its working mate as i got almost an identical response. Download and test with Enjoyable to test it out
 

Mike4Real

Member
Newcomer
Joined
Jan 8, 2015
Messages
9
Trophies
0
XP
105
Country
United States
Mike, looks to me like its working mate as i got almost an identical response. Download and test with Enjoyable to test it out
Yea, its working :) . I downloaded Enjoyable but for some reason the application seems to think I am holding the control stick in a direction at all times, keeps jumping back to Axis 6 low.

I was able to get the Dolphin Emulator Version 4.0-652 to recognize it as an "Unkown Device" without using Enjoyable running though.
 

area

Member
Newcomer
Joined
Jan 4, 2015
Messages
17
Trophies
0
XP
103
Country
Yea, its working :) . I downloaded Enjoyable but for some reason the application seems to think I am holding the control stick in a direction at all times, keeps jumping back to Axis 6 low.

I see the same, actually. Axis 6 is one of the triggers - I think it's just a consequence of how the triggers start at the end of their range, but I agree it's annoying!

Glad it's working for you guys though.

EDIT: Hmmm, multiple controllers are a bit screwy in Dolphin. It's clearly due to the HID REPORT_ID stuff (when configuring a second controller, the second controller's inputs are recognised, but are mapped as coming from the first controller).
 

The Gameboy-cube

Active Member
Newcomer
Joined
May 20, 2013
Messages
38
Trophies
0
Age
30
XP
97
Country
United States
I see the same, actually. Axis 6 is one of the triggers - I think it's just a consequence of how the triggers start at the end of their range, but I agree it's annoying!

Glad it's working for you guys though.

EDIT: Hmmm, multiple controllers are a bit screwy in Dolphin. It's clearly due to the HID REPORT_ID stuff (when configuring a second controller, the second controller's inputs are recognised, but are mapped as coming from the first controller).


How hard will it be to split each controller as a separate one instead of a single one?
 

area

Member
Newcomer
Joined
Jan 4, 2015
Messages
17
Trophies
0
XP
103
Country
In my mind, that is what it should be doing at the moment, at least based on the second part of http://eleccelerator.com/tutorial-about-usb-hid-report-descriptors/ - I agree that it's not, and I don't know why! I should stress that this is all new territory for me - kexts in OSX, USB HID descriptors and so forth, so I'm learning as I go. Someone who knows what they're doing might be able to do a much better job!

Getting it working in Dolphin - from the perspective of playing four player emulated games - might be easy, if the HID spec supports it. Rewriting the HID descriptor, and have it present as a single controller with 24 axes and 48 buttons would make it work in Dolphin easily - but it might be harder for other games, where it assumes one controller is controlling one player, rather than allowing per-button and per-axis mapping to the controls.

Weirdly, Enjoyable seems to correctly identify button presses coming from different controllers, so I have no clue where the discrepancy between Dolphin and Enjoyable is.

Getting it working in Dolphin is clearly a very appropriate mission statement, so I will investigate deliberately getting it to present as one-huge-controller possibility in the next day or two. If the HID spec doesn't support it though, then it will be harder.

NWPlayer123: Are you happy with this sort of talk continuing in this thread, or shall we take it elsewhere?
 

NWPlayer123

Well-Known Member
OP
Member
Joined
Feb 17, 2012
Messages
2,642
Trophies
0
Location
The Everfree Forest
XP
6,693
Country
United States
In my mind, that is what it should be doing at the moment, at least based on the second part of http://eleccelerator.com/tutorial-about-usb-hid-report-descriptors/ - I agree that it's not, and I don't know why! I should stress that this is all new territory for me - kexts in OSX, USB HID descriptors and so forth, so I'm learning as I go. Someone who knows what they're doing might be able to do a much better job!

Getting it working in Dolphin - from the perspective of playing four player emulated games - might be easy, if the HID spec supports it. Rewriting the HID descriptor, and have it present as a single controller with 24 axes and 48 buttons would make it work in Dolphin easily - but it might be harder for other games, where it assumes one controller is controlling one player, rather than allowing per-button and per-axis mapping to the controls.

Weirdly, Enjoyable seems to correctly identify button presses coming from different controllers, so I have no clue where the discrepancy between Dolphin and Enjoyable is.

Getting it working in Dolphin is clearly a very appropriate mission statement, so I will investigate deliberately getting it to present as one-huge-controller possibility in the next day or two. If the HID spec doesn't support it though, then it will be harder.

NWPlayer123: Are you happy with this sort of talk continuing in this thread, or shall we take it elsewhere?
Nah, you're fine. I like seeing progress.
 

mrbigreddog

Well-Known Member
Newcomer
Joined
Mar 12, 2009
Messages
66
Trophies
0
XP
211
Country
United States
It seems that the PC driver doesn't recognize more than one direct at a time on the d-pad (basically It can't do diagonal) Anyone having a problem like this? Trying to play some NES & SNES emulators and specific games are unplayable without diagonal ability. If you look at the TEST part of WindowS Gamepad Info (Point of View Hat)... You can see it only shows up,down,left,right on the d-pad. No diagonal and no combination of 2 buttons.

Edit: Realized I didn't have the newest version... But not I have NO D-PAD AT ALL!!! All other buttons work and show fine. D-pad was least half way worked before. But now, nothing. Help please!
Edit 2: got it work, doesn't show as Point of View Hat anymore, you have to add 4 more buttons (total 12) to vJoy for each controllers. Works perfect now.
 

Mike4Real

Member
Newcomer
Joined
Jan 8, 2015
Messages
9
Trophies
0
XP
105
Country
United States
Alright so I've got good news and bad news about the OS X driver on 10.9.5 Mavericks. The good news is that it works amazing in dolphin 4.0-652 on netplay and I can now play games with my friends who live far away on a GameCube controller.

The bad news is that if I play on dolphin for about 45 minutes in a row using the controller, my computer will crash and restart from a kernel panic. I get this error message:
Code:
zalloc: zone map exhausted while allocating from zone kalloc.8192, likely due to memory leak in zone kalloc.256
I can reproduce this consistently, sometimes the error report will say kalloc.128 instead of kalloc.256, also I can post the whole error report if that would be helpful.

Some other information, when I first plug in the adapter and check the devices list in dolphin, it shows as "Input/0/WUP-028", which is the model number of the adapter. After I load the driver from the kext file to run the adapter it changes and shows up as "Input/0/Unknown device", and it becomes functional. I don't know if this is a significant factor but I thought it was worth mentioning. Also when configuring the controller on the GCPad menu in dolphin, it reads that I am always pressing very slightly on L and R according to the small red meters on the button mapping GUI. I think this is a result of the same thing that happens on Enjoyable when it thinks you are always pressing one of the triggers.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: This movie rip so werid has 10180p quality but the audios ripped with movie theater audio quality