libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.05k stars 1.81k forks source link

Input problems with GPD XD device #2420

Closed enodr closed 8 years ago

enodr commented 8 years ago

The new version 1.2.2 has introduced some bugs with the gui and input devices. The issues below apply to the GPD XD device (android portable gaming device with built-in gamepad and physical android buttons).

The GPD XD can have its controller set with two different modes: Playstation 3 or Xbox 360 (default).

Note: test were done with the current Google Play version and current nightly (nov 17th 2015).

1/ When gamepad is set as Xbox 360, retroarch does detect an Xbox controller but it is not configured and cannot be used at all. The gamepad overlay is displayed but is totally unusable (one press up will scroll the menu randomly for several seconds, button press are not recorded, etc)

2/ When configured as Playstation 3, the gamepad is recognized in port 1. When a game is launched the gamepad overlay is displayed even though the gamepad is used. The overlay should be disabled by default if a gamepad is found.

3/ The android physical buttons are recognized as rk29-keypad in port 0 but are not working. Back button does no return to retroarch menu. Trying to remap "menu toggle" does not recognize this button (option "back as menu toggle enable" is enabled)

4/ In general, with the overlay touch screen input is very erratic. Multiple input / retries on the touch screen are needed in order for the input to be recorded

Thanks a lot for the work and time spent on this great tool. I feel current version was not ready to go mainstream on the store, but I hope it will get better quickly.

Side question: is there an option to go back to the older GUI?

andres-asm commented 8 years ago

Don't use 1.2.2, use nightlies, we do not support that anymore and many issues have been fixed already.

  1. It needs an autoconf profile, we do not have one of those, follow this guide to make one http://libretro.com/forums/showthread.php?t=3550
  2. Use nightlies
  3. Each device is hooked up to a RetroArch port, it's not really our fault that manufacturers make controllers that are separate hid devices acting as one, it would need a device specific hack to add that behavior.
  4. Use nightlies

No

enodr commented 8 years ago

Thank you for such a quick reply.

As I wrote those bug are all in the latest nighlies build (17th nov).

  1. I will have a look and make an autoconf profile and submit it.
  2. Bug is in current nightly
  3. Does your answer imply: "won't fix" or is this related to 1. ? It was working fine in the old 1.0.x version with rgui. All android games and other emu I have tested so far are working fine with this "back" button.

I am adding 5:

  1. Going back to rgui driver just crash on the main menu when pushing any gamepad button: "retroarch stopped working"
andres-asm commented 8 years ago
  1. the overlay showing up sometimes when switching activities
  2. needs a per-device hack I can look at it since I added one for the shield. Other emus don't support up to 16 players and don't map one device per port as we do
  3. no idea of this it certainly doesn't happen on my gear
enodr commented 8 years ago

Ok I am trying to make an autoconf for the Xbox controller but the touchscreen GUI isn't registering "click" events. I scan scroll up and down but cannot go to the settings tab nor can enter any menu.

andres-asm commented 8 years ago

is the overlay showing up?, overlays and touch are mutually exclusive

enodr commented 8 years ago

No the overlay is not showing. As I wrote I can scroll up and down with the touchscreen but "click" does not work.

I have made some more tests and the two showstoppers bug are:

Of course there are workarounds (use PS3 controller driver, map l3+r3 as back button, disable overlays in configuration) but I wish I could help you fix these bugs to improve retroarch.

andres-asm commented 8 years ago
enodr commented 8 years ago

Yes I am using GLUI of course.

Tell me if I can provide any usefull debug info for these 2 bugs.

andres-asm commented 8 years ago

Ok I need this:

enodr commented 8 years ago

Here are the exact names:

For the back button: rk29-keypad

For the gamepad (in playstation or xbox mode): PlayStation3 XBOX (726/35301)

legione commented 8 years ago

Hello, I have the same device and the same problem, but also the menu button doesn't work. Is it by design? With the old version, while playing a game, pushing the menu button called the menu of retroarch with the current core options.

When I try to call the menu (long press on the multitask button) it says: Virtual (0/0) not configured

I did a little more troubleshooting also for the back button that proves that @fr500 is right:

  1. if I load retroarch and push any gamepad related button (D-pad, A,B etc) it prints: playstation3 configured in port #0 then if I press the volume buttons or the back button it prints: rk29-keypad configured in port #1
  2. if I load retroarch and the first button I push is volume or back, it prints: rk29-keypad configured in port #0 and then when I press the gamepad buttons, it prints playstation3 configured in port #1 and those don't work (can't go up or down or confirm etc). In both cases the back button doesn't work and volume does.

I have the 2015-12-03 nightly, from the 2015-12-04 and on whichever button I push retroarch crashes.

andres-asm commented 8 years ago

Can either of you come into #retroarch in freenode? If you press first a gamepad button, does it work to navigate the GUI?

If you first use the rk29-keypad, it's binding it to port 0, thats player 1 and menu controls. Sadly I don't think I can make a per-device hack like I did for the shield because the GameMID has rk29-keypad as a primary device including all buttons.

legione commented 8 years ago

I'm on freenode right now.

Yes, if I press first a gamepad button I can navigate the GUI. I cannot navigate only if I press first the rk29-keypad. Sorry, but I don't know what you mean with GameMID.

I don't know if this could be helpful (probably you changed everthing), but with the old retroarch 1.0.0.2-r34 everything works fine.

enodr commented 8 years ago

Tested current nigthly build (2015-12-26) and GPD XD support is almost working good. Still one bug remaining. Steps to reproduce:

andres-asm commented 8 years ago

does some text print when you press the back button?

enodr commented 8 years ago
andres-asm commented 8 years ago

I would need a full logcat to debug this, I don't have such a device. My aim with the hack I implemented was to combine rk29-keypad and the joystick. I didn't pay attention at all to the gpio keys

enodr commented 8 years ago

Yes it seems your hack is almost working perfectly. Maybe a logic bug where the input mapping is "cleared" when going back to retroarch menu and re-entering emulation instead of keeping the current setting?

I will run a logcat and post results here.

enodr commented 8 years ago

gpd_xd.txt

cpages commented 8 years ago

I just installed retroarch from fdroid (I understand it's the nightly) and the dpad is not working, only the buttons. Is this a regression or I might be missing something?

cpages commented 8 years ago

It does work with ps3 mode, sorry for the noise.

brandon-arnold commented 8 years ago

An alternative is to hook a keyboard to the GPD XD (needs a micro USB to USB type A female). Then page over to the input bindings with the keyboard and set the bindings with the GPD XD set in Xbox mode. This worked for me.

andres-asm commented 8 years ago

Xbox mode should work too now I fixed that recently

brandon-arnold commented 8 years ago

Must be because I'm not on the nightly despite all your insistence before ;)

I'm using the latest stable 1.3.4 from Google Play. The user 1 d-pad was certainly not mapped to Hat 0 by default.

nokiot9 commented 6 years ago

I think I'm having this issue. My controls wig out randomly in the menus. Only a hard factory reset fixes it. I'm not understanding this fix with the autoconf tho. Is that in the RA Settings menu?

nokiot9 commented 6 years ago

And that link at the beginning doesn't work. Or I'd just look at it