Controller works in menu, stops working after loading game

Nah, Retroarch for Android is seriously broken. I have a Xin Mo controller (PS3 encoder board) that works for everything in Android, but Retroarch doesn’t play with it. Quite disheartening to see that I can operate all menu key combos in the game but it does not recognise in game buttons for over half of the games. Something is wrong and it is consistently over different cores, so it is not the emulators, it is the Retroarch system itself (I believe). Hopefully it will be fixed at some point. I will stop using Retroarch but there is not much alternative

I agree. In this particular instance I’m not sure if the reason why this issue is being ignored is because:

  1. A low percentage of people have the issue;

  2. It is generally unreported and people just give up;

  3. Nobody takes RetroArch for Android seriously due to performance and stability issues;

  4. All of the above.

  1. We can’t fix what we can’t reproduce.

That’s understandable, but I guess that if there was will to fix it you would reach out to people willing to help debug and test it. So, clearly, not strictly #5.

I don’t know if it is helpful, but could it be related to ROM naming, or at least something ROM specific? Here is why I think it might: I downloaded different rom sets and from each ROM set I tried the same game with the appropriate emulator. “Pac Man” (no matter if it is the Mame 2003, Mame 2003Plus, Mame 2000 variant,…) will never work (i.e the in-game controls) while “DigDug” will work no matter the Rom set and (appropriate) emulator I choose. It is bizarre. “Cadillacs and Dinosaurs” does not work across the board, not as Mame (any version), and does not work as FBA (not Fba, FbaNEO ) etc… The opposite for “Galaga”: works across all cores.

I end up with a super long list of games that never work, no matter the Rom Set/Emulator. This goes over all Mame but also all FBA emulators across the board.

The result is a long list of games that do not have working in-game controls in any (Arcade) emulator.

PS: In these tests, I made sure to use the appropriate Rom Set for each emulator.

PS2: I also have DIG frontend installed. I don’t know if that can influence RetroArch behaviour.

1 Like

It’s possible. Are you launching from DIG when the issue happens? Can you reproduce it without DIG in the mix?

I can reproduce it when launching from Retroarch and from Dig. It happens on both occasions.

Alright, probably not Dig’s fault, then. Thanks for checking.

I FIXED IT!: The issue was having the Select/Coin button assigned as Hotkey in Retroarch. Having the Select button assigned as Hotkey renders the in-game Coin button not operable for a certain (but big) number of games. Once I choose a different Hotkey in Retroarch (I choose RB in my case), I can put coins in again and PLAY!

This issue was tormenting me for days and the solution turns out very simple (in my case) I have no idea why having the Select button as Hotkey works for some games and not for others throughout all emulators, but I imagine it must be a bug.

Great! My arcade/pinball cabinet is working now in Android!

1 Like

Hi i have just installed RetroArch on my shield pro and having the exact same issue. controller works fine in main menus, but the minute you load a game the controller stops working.

are we still at just a workaround for this with no imminent permanent fix? it’s easy to replicate to so if @hunterk needs anything i can certainly provide it.

also, does it only affect USB controllers? or do bluetooth controllers also have the same issue?

I haven’t been able to reproduce it at all. What controller(s) do you have that’s doing it?

It isn’t a system connectivity issue. This has happened with both wired and wireless controllers (see above for reference to iPega PG-9017). I don’t doubt that the circumstances must be very specific, I can replicate this issue with one controller but not with another. Is the controller the problem? Partially, but since the system never loses grip of the controller, and also that workaround (which only works for a handful of people), I would say that it’s RetroArch’s responsibility somehow.

hi, this is the USB controller i’m, trying, to use.

they are cheap controller, but bought them to try retroarch to see if i like it before i went and bought better ones.

does anyone know of controllers that don’t have the problem?

XBox controllers shouldn’t have any issue. I have even used a chinese knockoff of the XBOne controller and it works perfectly. As far as retro lookalike controllers go, I am not sure. I have 2 chinese knockoffs (SNES and MD/Genesis, they seem to use the same chips and PCB) and both of them have this issue with RA. I also have a Genesis licensed replica from Retro-bit but haven’t ever tested it with Android’s RA.

1 Like

what about the 8bitdo sn30 pro that i see about a lot. bluetooth bit can be quite expensive.

I personally don’t know, there are quite a few people complaining of difficulties getting it to work, but I wonder how much of it is just ignorance (apparantly the controller has differents modes of pairing and people don’t know about it). I did find a French-speaking user doing an unboxing of the non-Pro version: https://www.youtube.com/watch?v=1rZq58N6cNA

Despite being in French, the interface is in English and should give an idea, although it seems to work properly he never uses it in the menu for whatever reason.

@hunterk is there anything further i can provide to help with this? logs etc?

Apparently this issue also happens in Linux. I was trying antiX 19 and the same thing happens.

Input driver is “x”. Joystick driver, by default, is “udev” and behaves worse than my Android, it only grabs the controller if RetroArch is already running and loses it whenever a core is started. Toggling fullscreen also loses the controller.

Using “sdl2” as joystick driver works great with the caveat that one important button in the controller cannot be mapped for whatever reason. Weirdly it always pop-up 2 detection messages when opening RA.

Using “linuxraw” driver works perfectly, never loses the controller and can map every button correctly.

Joystick driver may be where things go sideways on Android.

OK Bois and Girls here is my contribution in case someone even gonna read it I did read each and every reply here and from what i understood i should press and hold B button and tap/click/press and release any d-pad button rapidly

But as ner0 stated trick is to press and HOLD B button then press and HOLD any d-pad button right arrow/direction on d-pad works for me idk if it will work for you

And im here just to make that 1 thing clear but i didnt come empty handed Even so i dont know any solution to this problem i made (actually edited existing one) overlay that have only 3 buttons on default layer which are invisible by default (which means u wont see any buttons when u launch content with that overlay)

(overlays dont have modular functionality they dont add or remove items/buttons/sticks they have layers kinda like next page or new picture so when u click button to switch to virtual analog stick instead of d-pad it does not replace one with another actually it just switches to different layer with same buttons as previous layer with exception of that analog stick instead of d-pad <- info for ppl who care to edit it even more)

So it starts as overlay (IN LANDSCAPE MODE) with 3 buttons 1 - left side of screen = fast forward 2 - center of the screen = toggle menu (go back to menu) 3 - right side of screen = show gamepad overlay

Basically what i did was swapped default retropad layer which shows gamepad layer with layer that have no buttons except show gamepad button (i believe it is default gamepad overlay anyway)

This will help ppl who forgot to do that trick with physical controller to make it to work so in the result they are stuck in retroarch without means to go back into menu but also not forcing ppl who use physical gamepad and sometimes controller into switching overlay on and off

I edited overlay called retropad (which i renamed to retropadZ) which was in folder named flat (which i renamed to flatZ) As a bonus i added fast forward button on gamepad layer in upper left its left from ENABLE analog button

Here is download link to overlay i EDITED https://drive.google.com/file/d/12gvXTU9a_ZWl7LCW95C9ZyvPpfajAq51/view?usp=sharing

What u need to do is download and extract/unzip it and you will have folder named flatZ It can be placed anywhere but for sake of simplicity on your phone place it into RetroArch>Layouts folder which u get when u have RetroArch installed Next u go into RetroArch go into settings and then head to Overlay on screen or display on screen idk how its in english but something like that is just above user interface Next u just scroll a little down until sliders end and u see some name like retroapd or something Here u click it then in file browser u click up arrow to go 1 folder higher until u reach ur phones root directory Here go into RetroArch then Layouts then flatZ and then just select retropadZ

And your set have fun and enjoy

Hello, I found this topic, but I confess I didn’t understand, apparently that would solve the problem at the root.