First, thanks for the awesomeness that is Dolphin -- I've had a lot of fun tinkering around with it!
I spent quite a bit of time trying to get my Wii Classic Controller to work as a gamepad for GameCube games. After a lot of tinkering, I think I have a pretty workable config. This includes all buttons, the D-Pad, both analog sticks, and the analog shoulder buttons.
First off, I'm running Ubuntu for this -- I'm sure something similar could be done using GlovePIE or whatnot, but I'm using cwiid. The trick is to get all your buttons, and especially axes, to have usable assignments with cwiid, then to get Dolphin to recognize everything you've setup.
Things you'll need:
- cwiid working (running 'wminput' should properly detect your WiiMote). There are lots of other guides on teh Interwebs that can help you with this.
- Dolphin otherwise configured. I've tested this with both 3.0 Release and latest SVN.
All of this is specific to Ubuntu, but will likely work for other distros too. Some of the commands MAY need to be run as sudo/root.
First, we need to create the proper mappings from the Classic Controller to system actions.
Paste in the following:
Do Ctrl-O then Enter to save.
Now, we'll create a new GameCube controller profile that associates what SDL reads the above system actions as with GameCube controller buttons.
And paste this...
Do Ctrl-O then Enter to save.
Now, we need to connect the WiiMote with the new profile we created.
Push 1+2, and wait until the program says 'Ready.'
Finally, let's import our new controller profile into Dolphin. Open Dolphin, click GCPad, select "Classic Controller" from the drop down on the right, and click Load. You should now be able to see that all your Classic Controller buttons work!
Caveats
- This is mapped how I like my buttons. It does NOT match the labels on the Classic Controller, but I think it feels more like the original GameCube controller. It is perfectly safe to remap the buttons using Dolphin. However, the axis detection is not terribly reliable, so you should probably leave those alone.
- The only 'bug' I know of is that the analog shoulder buttons have to be pressed down half way before they register at all. This is because their Axis registers from -32767 to +32,767 and the Analogs are only set to Axis +. If there is a way to set these to use the entire range with the fancy-dancy boolean editor, or by telling Dolphin to use the entire axis, I would love to learn about it.
If you have any questions, if I did something wrong, or if all of this is just blindingly obvious, feel free to comment below.
Thanks again for all the work on Dolphin -- hopefully this begins to "pay" for my enjoyment of it.
I spent quite a bit of time trying to get my Wii Classic Controller to work as a gamepad for GameCube games. After a lot of tinkering, I think I have a pretty workable config. This includes all buttons, the D-Pad, both analog sticks, and the analog shoulder buttons.
First off, I'm running Ubuntu for this -- I'm sure something similar could be done using GlovePIE or whatnot, but I'm using cwiid. The trick is to get all your buttons, and especially axes, to have usable assignments with cwiid, then to get Dolphin to recognize everything you've setup.
Things you'll need:
- cwiid working (running 'wminput' should properly detect your WiiMote). There are lots of other guides on teh Interwebs that can help you with this.
- Dolphin otherwise configured. I've tested this with both 3.0 Release and latest SVN.
All of this is specific to Ubuntu, but will likely work for other distros too. Some of the commands MAY need to be run as sudo/root.
First, we need to create the proper mappings from the Classic Controller to system actions.
Code:
# nano /etc/cwiid/wminput/classic-controller
Paste in the following:
Code:
# Wii Classic Controller for Dolphin
Classic.Dpad.X = ABS_HAT0X
Classic.Dpad.Y = ABS_HAT0Y
Classic.LStick.X = ABS_X
Classic.LStick.Y = ABS_Y
Classic.RStick.X = ABS_RX
Classic.RStick.Y = ABS_RY
Classic.A = BTN_A
Classic.B = BTN_B
Classic.X = BTN_X
Classic.Y = BTN_Y
Classic.Minus = BTN_SELECT
Classic.Plus = BTN_START
Classic.Home = BTN_MODE
Classic.L = BTN_TL
Classic.R = BTN_TR
Classic.LAnalog = ABS_Z
Classic.RAnalog = ABS_RZ
Classic.ZL = BTN_TL2
Classic.ZR = BTN_TR2
Do Ctrl-O then Enter to save.
Now, we'll create a new GameCube controller profile that associates what SDL reads the above system actions as with GameCube controller buttons.
Code:
#nano ~/.dolphin-emu/Config/Profiles/GCPad/Classic\ Controller.ini
And paste this...
Code:
[Profile]
Device = SDL/0/Nintendo Wiimote
Buttons/A = Button 1
Buttons/B = Button 3
Buttons/X = Button 0
Buttons/Y = Button 2
Buttons/Z = Button 7
Buttons/Start = Button 9
Main Stick/Dead Zone = 10.000000
Main Stick/Up = Axis 1+
Main Stick/Down = Axis 1-
Main Stick/Left = Axis 0-
Main Stick/Right = Axis 0+
C-Stick/Dead Zone = 10.000000
C-Stick/Up = Axis 4+
C-Stick/Down = Axis 4-
C-Stick/Left = Axis 3-
C-Stick/Right = Axis 3+
Triggers/L = Button 4
Triggers/R = Button 5
Triggers/L-Analog = Axis 2+
Triggers/R-Analog = Axis 5+
D-Pad/Up = Hat 0 S
D-Pad/Down = Hat 0 N
D-Pad/Left = Hat 0 W
D-Pad/Right = Hat 0 E
Do Ctrl-O then Enter to save.
Now, we need to connect the WiiMote with the new profile we created.
Code:
#wminput -c classic-controller
Push 1+2, and wait until the program says 'Ready.'
Finally, let's import our new controller profile into Dolphin. Open Dolphin, click GCPad, select "Classic Controller" from the drop down on the right, and click Load. You should now be able to see that all your Classic Controller buttons work!
Caveats
- This is mapped how I like my buttons. It does NOT match the labels on the Classic Controller, but I think it feels more like the original GameCube controller. It is perfectly safe to remap the buttons using Dolphin. However, the axis detection is not terribly reliable, so you should probably leave those alone.
- The only 'bug' I know of is that the analog shoulder buttons have to be pressed down half way before they register at all. This is because their Axis registers from -32767 to +32,767 and the Analogs are only set to Axis +. If there is a way to set these to use the entire range with the fancy-dancy boolean editor, or by telling Dolphin to use the entire axis, I would love to learn about it.
If you have any questions, if I did something wrong, or if all of this is just blindingly obvious, feel free to comment below.
Thanks again for all the work on Dolphin -- hopefully this begins to "pay" for my enjoyment of it.