Several buttons on 2nd controller not working
-
Hi All,
I'm building an arcade, and have 2x USB encoders. One for each player.
Bus 003 Device 005: ID 0079:0006 DragonRise Inc. PC TWIN SHOCK Gamepad Bus 003 Device 007: ID 0079:0006 DragonRise Inc. PC TWIN SHOCK Gamepad
Both devices show up correctly, and work perfectly in EmulationStation. Both devices test correctly using
jstest /dev/input/js0
andjstest /dev/input/js1
. All buttons respond, and button ordering as report byjstest
is identical between both joysticks.However, when I launch arcade games (I'm using the mame2010 libretro core), I'm having an issue where some of the buttons on Player 2's controller don't work (B for example). Opening the service menu for the game (In this case, Street Fighter EX) I get a input test screen.
Using this input test screen, I can see all P1 controls respond correctly, and 3 of the 6 P2 controls do not respond.
If I unplug the P1 encoder, then go to input test screen again, I can see all 6 buttons on the P2 pad are now working.
My retroarch.cfg is pretty much stock - https://pastebin.com/raw/HwGs6jY3
ES has generated an autoconfig file for the pad - https://pastebin.com/raw/k0hKreK9How do I debug this?
RetroPie Version: 4.4.2
Host OS: Ubuntu 18.04
Hardware: Standard x86_64 PCThanks :)
-
This is a shot in the dark, but is your power supply up to snuff?
If a single USB connected device works, and it starts misbehaving when more devices are connected it might be due to not enough power to drive both Mame2010 running SF EX and the USB devices.
Is your red LED constantly ON (solid red light, no blinks) when running Street Fighter Ex?
Try some other games on Mame2010 (especially older 80s ones) and try some other emulators with both USB pads connected.
Edit: I know it probably won't be it with an X86 machine, but if it is older hardware, it might be the case.
-
@cybrasty said in Several buttons on 2nd controller not working:
This is a shot in the dark, but is your power supply up to snuff?
If a single USB connected device works, and it starts misbehaving when more devices are connected it might be due to not enough power to drive both Mame2010 running SF EX and the USB devices.
It's having no issues that I can see giving the necessary power. Even with the game playing, I can open
jstest
(via SSH) and see everything is still working as expected.Try some other games on Mame2010 (especially older 80s ones) and try some other emulators with both USB pads connected.
I've tried a few, including some 2 button games, and on the P2 pad, one of the buttons wasn't working :(
-
Adding some more info - I grabbed a spare Raspberry Pi 2B, installed RetroPie using retropie-4.4-rpi2_rpi3.img - hooked up one pad, configured in Emulation Station, verified the pad in SF EX input test screen.
I then hooked up the second pad, configured, headed back into the same SF EX input test screen, I can see P1's pad is fully functional, and P2's pad is missing 2 of 6 buttons.
So, with 100% stock config (bar the ES input configuration..), I'm seeing this behaviour.
-
Do you have any other USB gamepads (other brand/model) you can test, so we can figure out if it is only affects the current gamepads (then you would mess with the particular gamepad .cfg) or is it system wide.
My thinking is that because they are the same model, there might be some crossed wires when it comes to signals being sent to CPU. Maybe Retropie can distinguish those signals, but Mame, being older build, might run into some issues interpreting them?
Edit: Try setting them up with this to bind each to a particular player, if the signals get lost because they end up somewhat calling a button for different player, this might help. It probably won't, but it is worth a shot.
-
edit /boot/cmdline.txt and add at the end of line this :
usbhid.quirks=0x0079:0x0006:0x040
reboot
set your p1 controller up again in emulation station you should be good to go
-
@grant2258 said in Several buttons on 2nd controller not working:
edit /boot/cmdline.txt and add at the end of line this :
usbhid.quirks=0x0079:0x0006:0x040
reboot
set your p1 controller up again in emulation station you should be good to go
I should have mentioned, I already gave this a go - I tried adding it again anyway, and no change.
That said - Which quirk is 0x040 enabling? I had a hard time tracking down the hex value to a specific quirk being fixed?
-
@cybrasty said in Several buttons on 2nd controller not working:
Do you have any other USB gamepads (other brand/model) you can test, so we can figure out if it is only affects the current gamepads (then you would mess with the particular gamepad .cfg) or is it system wide.
My thinking is that because they are the same model, there might be some crossed wires when it comes to signals being sent to CPU. Maybe Retropie can distinguish those signals, but Mame, being older build, might run into some issues interpreting them?
I dug out another controller (a 8Bitdo NES30..), and you're onto something (I just don't know what yet!). The same set of buttons doesn't work for P2 when using this pad in place of the "DragonRise" encoder :)
-
@kill That is curious, especially that it does the same on the fresh copy of Retropie.
Is the issue limited to MAMA2010, or do other emulators behave the same?
-
I read the first post fully is sounds like its a mame2010 setup issue as the js test was good. I use two dragon rises and have no issues. @markwkidd has done a lot of work on the input system on mame2003plus. I can help you setting that up no problems at all. I havent used lr-mame2010 but 2003plus i know inside out as i helped with the setup for dragonrise 6 and 8 button configs
-
@cybrasty said in Several buttons on 2nd controller not working:
@kill That is curious, especially that it does the same on the fresh copy of Retropie.
Is the issue limited to MAMA2010, or do other emulators behave the same?lol - @kill (You have no idea how often I type
kiallall <process>
instead ofkillall
;))Anyway - So far, I've only tested with lr-mame2010. I can try find a game with a good input test screen like SFEX that works with lr-mame2003 / lr-mame2003-plus.. I'll give it a go later today.
@grant2258 said in Several buttons on 2nd controller not working:
I read the first post fully is sounds like its a mame2010 setup issue as the js test was good. I use two dragon rises and have no issues. @markwkidd has done a lot of work on the input system on mame2003plus. I can help you setting that up no problems at all. I havent used lr-mame2010 but 2003plus i know inside out as i helped with the setup for dragonrise 6 and 8 button configs
As mentioned above, I'll give lr-mame2003 / lr-mame2003-plus a go today and see what happens.
Thanks for the pointers all - will let you know what happens...
-
the setup for mame2003 plus is simple. if you have 6 buttons map like this
https://github.com/libretro/mame2003-plus-libretro/blob/master/metadata/wipcontrols/snesmapping.png
if you have 8 buttons map like this
https://github.com/libretro/mame2003-plus-libretro/blob/master/metadata/wipcontrols/10PANEL.png
then goto quick menu -> controls
change user1 and 2 device type to 6 button or 8 buttonpick save remapfile your done. The top left side is the mame button number order.
you can also redifne any buttons n this menu.
There is also a 8 button setup for compatibility with fba/sf2 fightstick for 8 button layout but it doesnt map l and r very nice for other cores by default.
here is the link for that mapping
https://github.com/libretro/mame2003-plus-libretro/blob/master/metadata/wipcontrols/modern.png -
I was wondering if there was any resolution to this issue. I'm having the EXACT same problem with my Player 2 controller. All of the Player 2 buttons work on the menu screen, but when I'm playing any of my fighting ROMS the "A" and "RS" buttons (i.e. Medium Kick and Heavy Kick) stop working.
-
@deverdon Which emulator do you use? (mame2003, mame2003-plus, …)
Did you try @grant2258's solution in mame2003-plus?
If that doesn't help, please provide the information about your system that is requested in https://retropie.org.uk/forum/topic/3/read-this-first.
-
@kill if you have matching controllers or encoders you never have to configure player 2. Both players share the same config file. After you setup player one if you want player two working immediately in emulationstation just restart emulationstation. Retroarch emulators dont need a restart to have player 2 already working in it. You can create problems trying to find an issue with encoders wiring between both players if you setup player 2 as it overwrites any configuration you setup with player one.
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.