Controller works in menu, stops working after loading game

I’m running RetroArch on a TV box (MX9 with Rockchip RK3229).

1 - If I launch RetroArch from the TV box menu using the gamepad itself, it won’t work to navigate the menu unless I unplug it, plug it back and press the D-pad (any direction). If I press any other button, the gamepad is not recognized, even if I press the D-pad later. When I start a game, gamepad won’t work unless I repeat the procedure.

2 - If I launch RetroArch using any other device (keyboard or TV remote), once in the menu, if I press the D-pad in the gamepad, it’s recognized (I get the message “Microntek USB Joystick configured in port #0”) and it works to navigate the menu. If I press any other button, the gamepad is not recognized, even if I press the D-pad later. When I start a game, gamepad won’t work unless I unplug it, plug it back and press the D-pad again.

3 - If I launch RetroArch using any other device (keyboard or TV remote) and do not press any button in the gamepad when in the menu (navigate using the other device), when I start a game, gamepad will be recognized if I press the D-pad. If I press any other button, the gamepad is not recognized, even if I press the D-pad later.

Long story short: looks like RetroArch can’t “find” the controller if it’s used in the OS, and the core can’t find it if it’s used in the menu. Unplugging/plugging back the controller makes it work. I can also avoid using the controller in the OS and in RetroArch menu, so it’s still “available” to the core when emulation starts.

Option 3 is good enough for me. I hope this debugging helps to solve your problem or fix the issue.

I was having pretty much the same issue, and I can match almost all your symptoms, maybe except option 1, because for me I was actually using the gamepad to navigate the smartphone icons and run RetroArch.

Now, option 2. is also almost the exact same with me, but again the exception is that the gamepad is always woking within the menu upon starting RetroArch, only after running a game using the gamepad do I have a problem, but I don’t have a problem if I only use the gamepad after running the game with another input device, like touch screen for example, followed by a D-Pad press before any other key will make the game recognize the gamepad.

Option 3 is similar to option 2 in my case because I do not have the issue in the menu.

Essentially it seems to me that my workaround does not work for you because any interaction from the gamepad within the menu breaks the input for whatever reason. So, I suppose that when you try to press and hold the B button to launch the game it has lost connectivity/input at that point already and cannot regain it without unplugging/replugging.

Part of the issue may be the version of Android, but also as I mentioned in my first post, a part of this seems to be tied to the modern interface of RetroArch and the way it handles and hands-on/off input to the cores and back. At least from my experience these issues weren’t present in the old interface from v1.2.2, they started immediately on the next release, v1.3.0; the issue is that the old versions of RetroArch are pretty bad in comparison to the current ones, in every sense except input.

I was only just experimenting with RetroArch on Android really, but if I depended on it, my workaround does work for me; as a fallback your option 3 would also be viable, unless you accidentally touch the controller before entering the game :slight_smile:

Thanks for replying.

Actually I’m also just experimenting with this Android box, it can handle only up to Neo Geo, N64 is a no go, it runs the games but they are not playable. Unfortunately I don’t have a newer Android device to try. The controller is a generic one but it works fine in RetroArch on PC.

The box is working well enough since I can use the remote control to launch the app and navigate the menus, then the controller will work in the games (unless I touch it accidentally as you said), but if this issue was introduced in a release I guess it would not be too hard to fix.

Thank you, @ner0 ! Your workaround with B+D-pad is working for me. My hardware is Amlogic s905d + Genius g-12u gamepad (USB) and recent Retroarch (1.8 if I remember correctly)

2 Likes

Thanks for taking the time to leave that feedback, @Farmatique, glad it works for you too.

A post was split to a new topic: Forum griping plus input question

I had this problem with a dualshock ps4 controller via Bluetooth on android. Then if I tried to map controls once the game had loaded retroarch would crash. I was about to give up and use octopus but then I hit “bind all”, mapped the controls and it worked perfectly from then on. Good luck!

It sems that this issue is entirely different from the one being discussed in the topic:

  • There is no crash involved;
  • There is no attempt to map or bind the controller keys after loading a game (in most cases because it was mapped beforehand, as it should);

Maybe you should create a separate topic with an appropriate title that puts emphasis on those 2 obvious distinctions, mainly the crash which is even less normal than what the people complain about here (controller unrecognized after loading game using said controller).

Bump this. I am experiencing the same issue on Android. Controls work for all the menus, not in the game (can’t coin, start…). From within the game both mame menu as Retroarch are accessible with the controls, but the game specific controls are not reactive.

Bizarre. It renders my whole Retroarch setup which took me days to setup useless :frowning_face:

No luck with the weird workaround I came up with?

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?