Has anyone Gotten the Mayflash Gamecube Adapter to work with Retropie?
-
Plugging in the MayFlash Gamecube Adapter to the pie doesn't seem to work out of the box. I followed some instructions that involved setting it to WiiU mode and downloading the ToadKing driver, but I still can't get controllers to work. This is the one I got: LINK
-
No, several people on Reddit have asked about this, but nobody's got it going.
The ToadKing driver only works with the genuine adapter:
https://github.com/ToadKing/wii-u-gc-adapter/issues/21
At least one person has confirmed this works on RetroPie with the genuine one.
-
I have ToadKing's driver working with the Mayflash adapter without any issues. Once it's in 'Wii' mode, ToadKing's driver, as well as the Dolphin emulator can't distinguish it from Nintendo's own. I followed the instructions below:
Just got this working on my Raspberry Pi 3. You are going to want to be on the latest RetroPie (3.6+) which uses Debian Jessie (as opposed to Wheezy).
Using the latest RetroPie image, I did a clean install on my SD card followed by the obligatory update:sudo apt-get update
sudo apt-get -y upgrade
After that, you will need to pull the code from here via git. Here's what I do to clone, build, and install the adapter driver:
cd ~
git clone https://github.com/ToadKing/wii-u-gc-adapter
cd wii-u-gc-adapter
make
chmod +x wii-u-gc-adapter
sudo cp wii-u-gc-adapter /usr/local/bin
sudo chown root /usr/local/bin/wii-gc-adapter
The above commands will build the adapter driver, make it executable, and move it to a standard location (out of the home folder).
Debian Jessie has migrated to systemd, so I made a basic service file to allow the driver to run on boot (and as root):sudo touch /etc/systemd/system/gamecube.service
sudo chown root:root /etc/systemd/system/gamecube.service
sudo nano /etc/systemd/system/gamecube.service
Paste this into the file and save it:
[Unit] Description=Wii U Gamecube Adapter Before=systemd-user-sessions.service [Service] TimeoutStartSec=0 ExecStart=/usr/local/bin/wii-u-gc-adapter User=root [Install] WantedBy=multi-user.target
Then to enable and start the service:
sudo systemctl enable /etc/systemd/system/gamecube.service
sudo systemctl start gamecube.service
Reboot and check that the service is running:
sudo systemctl status gamecube.service
You should get something like this:
gamecube.service - Wii U Gamecube Adapter Loaded: loaded (/etc/systemd/system/gamecube.service; enabled) Active: active (running) since Wed 2016-03-16 23:08:34 EDT; 11min ago Main PID: 363 (wii-u-gc-adapte) CGroup: /system.slice/gamecube.service └─363 /usr/local/bin/wii-u-gc-adapter
-
@mediamogul Fantastic! I encourage you to respond with the same contents on that GitHub issue.
-
I will. It should also be acknowledged that this was resolved by the user 'ewrogers' in this thread.
-
@mediamogul Thank you very much for putting that information up! Much appreciated!
-
Not a problem. I had to work around a few other problems that were inherent with the Gamecube controller's analog control implementation. If you run into these issues as well, give me a shout. I may be able to help further.
-
@mediamogul So funny thing.. I went through the steps and it's still stuck at connecting on port 0.
When I type: sudo systemctl status gamecube.service
I get: gamecube.service - Wii U Gamecube Adapter
Loaded: loaded (/etc/systemd/system/gamecube.service; enabled)
Active: active (running) since Wed 2016-09-14 1:10:15 UTC; 7min ago
Main PID: 402 (wii-u-gc-adapte)
CGroup: /system.slice/gamecube.service
└─402 /usr/local/bin/wii-u-gc-adapterSep 14 01:10:15 retropie wii-u-gc-adapter[402]: adapter 0x0x1146c48 connected
Sep 14 01:10:15 retropie wii-u-gc-adapter[402]: connecting on port 0I can't control anything with the gamecube controller. The prompt to set the inputs isn't coming up either.
-
I might be misunderstanding you, but the 'Input Configuration' tool only shows up automatically on the first boot of the system. Any other time it has to be invoked by either the keyboard or another controller that you have already mapped. Assuming this is the issue, you would press whatever you have already mapped to 'Start' while in Emulation Station and the config option will be at the bottom of the resulting menu.
-
Interesting, I thought the input menu came up any time a new controller that hasn't been used before gets plugged in. I'll use a working controller to bring up the Input Configuration tool.
I assumed that because I was still seeing: Sep 14 01:10:15 retropie wii-u-gc-adapter[402]: connecting on port 0, I was stuck where I was at before. I'll update this post when I get home to try it.
-
@mediamogul said in Has anyone Gotten the Mayflash Gamecube Adapter to work with Retropie?:
Not a problem. I had to work around a few other problems that were inherent with the Gamecube controller's analog control implementation. If you run into these issues as well, give me a shout. I may be able to help further.
Hi mediamogul,
I follow your guide to use my Mayflash Gamecube adapter on my RetroPie v4.0.3 RPi3. Works good.
Only issue left are the analog controls (shoulders and sticks).
Any help/news about that?
Thanks -
@tebra said in Has anyone Gotten the Mayflash Gamecube Adapter to work with Retropie?:
Only issue left are the analog controls (shoulders and sticks).
Are you trying to configure your triggers to be analog or digital? Personally, I would recommend digital in most cases, although analog is possible. Also, what exactly are the problems you're facing with the stick?
-
I might not be around later, so I thought I'd post the configs I use for my own adapter for you to use as a reference.
Analog Triggers:
sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ --evdev /dev/input/by-id/usb-raphnet.net_GC_N64_to_USB__v2.9_3918-event-joystick \ --detach-kernel-driver \ --force-feedback \ --dpad-as-button \ --deadzone-trigger 15% \ --deadzone 4000 \ --device-name "Raphnet Gamecube Adapter - Analog Triggers (xboxdrv)" \ --silent \ --calibration X1=-23436:0:26594,Y1=-25693:0:26593,X2=-20521:0:23068,Y2=-24890:0:19246 \ --axismap -Y1=Y1,-Y2=Y2 \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2,ABS_RZ+=LT,ABS_THROTTLE+=RT \ --evdev-keymap BTN_C=x,BTN_EAST=y,BTN_WEST=a,BTN_NORTH=b,BTN_TR=back,BTN_SOUTH=start,BTN_Z=lb,BTN_TL=rb,BTN_TL2=du,BTN_TR2=dd,BTN_START=dl,BTN_SELECT=dr \ --ui-axismap start+x1=REL_X:10,start+y1=REL_Y:10 \ --ui-buttonmap guide=void,tl=void,tr=void,start+lb=BTN_LEFT,start+rb=BTN_RIGHT
Digital Triggers:
sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ --evdev /dev/input/by-id/usb-raphnet.net_GC_N64_to_USB__v2.9_3918-event-joystick \ --detach-kernel-driver \ --force-feedback \ --dpad-as-button \ --trigger-as-button \ --deadzone-trigger 15% \ --deadzone 4000 \ --device-name "Raphnet Gamecube Adapter (xboxdrv)" \ --silent \ --calibration X1=-23436:0:26594,Y1=-25693:0:26593,X2=-20521:0:23068,Y2=-24890:0:19246 \ --axismap -Y1=Y1,-Y2=Y2 \ --buttonmap LT=lb,RT=rb \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2,ABS_RZ+=LT,ABS_THROTTLE+=RT \ --evdev-keymap BTN_C=x,BTN_EAST=y,BTN_WEST=a,BTN_NORTH=b,BTN_TR=back,BTN_SOUTH=start,BTN_Z=lb,BTN_TL=rb,BTN_TL2=du,BTN_TR2=dd,BTN_START=dl,BTN_SELECT=dr \ --ui-axismap start+x1=REL_X:10,start+y1=REL_Y:10 \ --ui-buttonmap guide=void,tl=void,tr=void,start+lb=BTN_LEFT,start+rb=BTN_RIGHT
-
@mediamogul said in Has anyone Gotten the Mayflash Gamecube Adapter to work with Retropie?:
@tebra said in Has anyone Gotten the Mayflash Gamecube Adapter to work with Retropie?:
Only issue left are the analog controls (shoulders and sticks).
Are you trying to configure your triggers to be analog or digital? Personally, I would recommend digital in most cases, although analog is possible. Also, what exactly are the problems you're facing with the stick?
I try to use my GC controler with reicast emulator.
But when I start /opt/retropie/emulators/reicast/bin/reicast-joyconfig it hang at "please move tha analog stick as far left as possible now"
So I suppose that default stick confioguration is not analog. -
@mediamogul said in Has anyone Gotten the Mayflash Gamecube Adapter to work with Retropie?:
I might not be around later, so I thought I'd post the configs I use for my own adapter for you to use as a reference.
Analog Triggers:
sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ --evdev /dev/input/by-id/usb-raphnet.net_GC_N64_to_USB__v2.9_3918-event-joystick \ --detach-kernel-driver \ --force-feedback \ --dpad-as-button \ --deadzone-trigger 15% \ --deadzone 4000 \ --device-name "Raphnet Gamecube Adapter - Analog Triggers (xboxdrv)" \ --silent \ --calibration X1=-23436:0:26594,Y1=-25693:0:26593,X2=-20521:0:23068,Y2=-24890:0:19246 \ --axismap -Y1=Y1,-Y2=Y2 \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2,ABS_RZ+=LT,ABS_THROTTLE+=RT \ --evdev-keymap BTN_C=x,BTN_EAST=y,BTN_WEST=a,BTN_NORTH=b,BTN_TR=back,BTN_SOUTH=start,BTN_Z=lb,BTN_TL=rb,BTN_TL2=du,BTN_TR2=dd,BTN_START=dl,BTN_SELECT=dr \ --ui-axismap start+x1=REL_X:10,start+y1=REL_Y:10 \ --ui-buttonmap guide=void,tl=void,tr=void,start+lb=BTN_LEFT,start+rb=BTN_RIGHT
Digital Triggers:
sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ --evdev /dev/input/by-id/usb-raphnet.net_GC_N64_to_USB__v2.9_3918-event-joystick \ --detach-kernel-driver \ --force-feedback \ --dpad-as-button \ --trigger-as-button \ --deadzone-trigger 15% \ --deadzone 4000 \ --device-name "Raphnet Gamecube Adapter (xboxdrv)" \ --silent \ --calibration X1=-23436:0:26594,Y1=-25693:0:26593,X2=-20521:0:23068,Y2=-24890:0:19246 \ --axismap -Y1=Y1,-Y2=Y2 \ --buttonmap LT=lb,RT=rb \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RY=y2,ABS_RZ+=LT,ABS_THROTTLE+=RT \ --evdev-keymap BTN_C=x,BTN_EAST=y,BTN_WEST=a,BTN_NORTH=b,BTN_TR=back,BTN_SOUTH=start,BTN_Z=lb,BTN_TL=rb,BTN_TL2=du,BTN_TR2=dd,BTN_START=dl,BTN_SELECT=dr \ --ui-axismap start+x1=REL_X:10,start+y1=REL_Y:10 \ --ui-buttonmap guide=void,tl=void,tr=void,start+lb=BTN_LEFT,start+rb=BTN_RIGHT
So I can use virtual xboxdrv with ToadKing's driver?
-
I accidentally posted my settings for the RaphNet Gamecube adapter. I'll have to dig up my configs for Mayflash after a while. Sorry for the confusion.
-
@tebra said in Has anyone Gotten the Mayflash Gamecube Adapter to work with Retropie?:
when I start /opt/retropie/emulators/reicast/bin/reicast-joyconfig it hang at "please move tha analog stick as far left as possible now"
If I remember correctly, I couldn't get
reicast-joyconfig
to read the analog stick either, but I'm almost certain you can just add the standard axis values to/home/pi/.reicast/emu.cfg
and it will read them normally.I believe the following are the two configs I used with the Mayflash adapter and ToadKing's driver:
Analog Triggers
/opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ --evdev /dev/input/by-id/usb-mayflash_limited_MAYFLASH_GameCube_Controller_Adapter-event-mouse \ --force-feedback \ --deadzone-trigger 15% \ --deadzone 4000 \ --device-name "Mayflash GameCube Port 1 (xboxdrv)" \ --silent \ --axismap -Y1=Y1,-Y2=Y2 \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_RX=LT,ABS_RY=RT,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \ --evdev-keymap BTN_TOP=x,BTN_TRIGGER=y,BTN_THUMB2=a,BTN_THUMB=b,BTN_BASE2=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb
Digital Triggers
/opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ --evdev /dev/input/by-id/usb-mayflash_limited_MAYFLASH_GameCube_Controller_Adapter-event-mouse \ --force-feedback \ --trigger-as-button \ --deadzone-trigger 15% \ --deadzone 4000 \ --device-name "Mayflash GameCube Port 1 (xboxdrv)" \ --silent \ --axismap -Y1=Y1,-Y2=Y2 \ --buttonmap LT=lb,RT=rb \ --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_RX=LT,ABS_RY=RT,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y \ --evdev-keymap BTN_TOP=x,BTN_TRIGGER=y,BTN_THUMB2=a,BTN_THUMB=b,BTN_BASE2=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb
-
@mediamogul said in Has anyone Gotten the Mayflash Gamecube Adapter to work with Retropie?:
/dev/input/by-id/
Thank you for your config but I have a problem: my gamepad is not listed on /dev/input/by-id/
Here is the information given by "cat /proc/bus/input/devices" command
I: Bus=0003 Vendor=0000 Product=0000 Version=0000
N: Name="Wii U GameCube Adapter Port 1"
P: Phys=
S: Sysfs=/devices/virtual/input/input2
U: Uniq=
H: Handlers=event2 js0
B: PROP=0
B: EV=20000b
B: KEY=f 0 0 0 0 0 0 0 adb0000 0 0 0 0 0 0 0 0 0
B: ABS=3f
B: FF=50000 0 0I: Bus=0003 Vendor=0000 Product=0000 Version=0000
N: Name="Wii U GameCube Adapter Port 2"
P: Phys=
S: Sysfs=/devices/virtual/input/input3
U: Uniq=
H: Handlers=event3 js1
B: PROP=0
B: EV=20000b
B: KEY=f 0 0 0 0 0 0 0 adb0000 0 0 0 0 0 0 0 0 0
B: ABS=3f
B: FF=50000 0 0 -
You can also fall back on using the event numbers as well:
--evdev /dev/input/event2
--evdev /dev/input/event3
-
@mediamogul
Is it possible by N: Name="Wii U GameCube Adapter Port 1" and N: Name="Wii U GameCube Adapter Port 2".
Because if I reboot the rpi3 without my keyboard the event number will change. I'm right?
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.