Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues when using Retroflag 6-button controller #1138

Open
martingalvan opened this issue Jun 8, 2024 · 15 comments
Open

Issues when using Retroflag 6-button controller #1138

martingalvan opened this issue Jun 8, 2024 · 15 comments

Comments

@martingalvan
Copy link

martingalvan commented Jun 8, 2024

Description

I'm using a Retroflag Sega Genesis-style 6-button controller (called "Classic USB Controller M" in https://retroflag.com/Classic-USB-Controller-M.html) with RetroArch 1.19.1 and the Snes9x 1.62.3 and Genesis Plus GX v1.7.4 60955a0 cores on Windows 10, and RetroArch 1.19.0 on Ubuntu 24.04. The issue happens both with xinput and dinput.

I've configured the controller as recommended in libretro/RetroArch#12849 (see the second image), both in RetroArch's main menu and later on the menu which shows up when loading a ROM and pressing F1. I also set the controller to 6-button MD in that menu.

The issue is that pressing the controller's B button (which is the same as RetroPad's B button) for some reason triggers both the B and A buttons of the RetroPad (B and C in the physical controller). I have no idea why this happens, since I've made sure only one button of the physical controller is mapped to one button of the RetroPad.

Expected behavior

The physical B button triggers only the B button in the RetroPad.

Actual behavior

The physical B button triggers both the B and A buttons in the RetroPad.

Version/Commit

RetroArch 1.19.0 and 1.19.1 with the Snes9x 1.62.3 and Genesis Plus GX v1.7.4 60955a0 cores.

Environment information

  • OS: Windows 10 and Ubuntu 24.04
@hizzlekizzle
Copy link
Contributor

It's happening in both Windows and linux? My first guess was that something external like Steam input was involved since RetroArch doesn't really have any way to do one-to-many macros internally.

@martingalvan
Copy link
Author

It's happening in both Windows and linux? My first guess was that something external like Steam input was involved since RetroArch doesn't really have any way to do one-to-many macros internally.

Yes, it happens in both. I don't use Steam.

I don't think the controller is the issue either, since I've used it with MAME, Gens, and other such emulators with no issues. I tried multiple ROMs and they all have the same problem.

@hizzlekizzle
Copy link
Contributor

Have you tried other gamepad/controller drivers? IIRC, the default is udev, but SDL2 is another good one to try.

@martingalvan
Copy link
Author

Have you tried other gamepad/controller drivers? IIRC, the default is udev, but SDL2 is another good one to try.

I think the default is SDL2, but I'm not sure. On Windows I tried both xinput and dinput, and I get the same issue on all. I haven't tried other controllers since I don't have any, and this one works fine with other emulators. IIRC I had even used Snes9x itself with it.

In any case, I think if I do decide to continue testing RetroArch it'll have to be on Windows since the Linux version has other issues such as random crashes, etc. It would depend on whether this issue has a solution.

@hizzlekizzle
Copy link
Contributor

Hmm, I use linux full time and don't get random crashes.

Anywho, dunno what else to tell you. Like I said, there's not really any way to do one-to-multi/many macros within RetroArch (it's an oft-requested feature), so I don't know how such a thing could even occur without some sort of external intervention.

@zoltanvb
Copy link

zoltanvb commented Jun 9, 2024

Can you check if the double trigger is visible with Remote Retropad? (last items in Load Core). If pressing B lights up 2 buttons, it may be the binding and/or autoconfig file.

@martingalvan
Copy link
Author

Hmm, I use linux full time and don't get random crashes.

Anywho, dunno what else to tell you. Like I said, there's not really any way to do one-to-multi/many macros within RetroArch (it's an oft-requested feature), so I don't know how such a thing could even occur without some sort of external intervention.

Are there any logs/config files I can provide to help debug this issue?

Can you check if the double trigger is visible with Remote Retropad? (last items in Load Core). If pressing B lights up 2 buttons, it may be the binding and/or autoconfig file.

Will try this and report back. Thanks.

@martingalvan
Copy link
Author

Can you check if the double trigger is visible with Remote Retropad? (last items in Load Core). If pressing B lights up 2 buttons, it may be the binding and/or autoconfig file.

I tested this just now, and saw that there are actually three physical buttons that light up 2 Remote RetroPad buttons at the same time, not just one as I originally thought. I guess those extra buttons weren't used by the games I tried.

Do you know how could I fix this?

@martingalvan
Copy link
Author

martingalvan commented Jun 9, 2024

I think I managed to fix this. On the main Input menu I disabled the Autoconfig option, and then reconfigured the control buttons once more (since the D-pad keys were lost for some reason after that). Once I did this, the controller started working as expected.

I have no clue of why this happened, but I think this behavior should be documented somewhere for future users facing this same problem. Thanks @zoltanvb for the clue.

One more thing I noticed is that Remote RetroPad always failed to start the first time I tried it before disabling Autoconf, so I had to start it again for it to work. That issue is now gone as well. I guess it's good that I tried it twice instead of just once...

@zoltanvb
Copy link

zoltanvb commented Jun 9, 2024

Good to hear that it works, that is the main thing :)
Usually, it should go in a way that autoconfig sorts out the controller-to-Retropad mapping without any manual intervention, and especially without double assigns. I can only see one autoconfig entry for "Retroflag Classic USB Controller M", and it is for linux/udev, but some other controllers share the same vendor/product ID, for example iBuffalo BGSP801, did you see any such notices about this controller when autoconfig was enabled?
Remote Retropad not starting is not a common occurrence (first time I hear about it), if you have a log about it, it is welcome.

@martingalvan
Copy link
Author

Good to hear that it works, that is the main thing :) Usually, it should go in a way that autoconfig sorts out the controller-to-Retropad mapping without any manual intervention, and especially without double assigns. I can only see one autoconfig entry for "Retroflag Classic USB Controller M", and it is for linux/udev, but some other controllers share the same vendor/product ID, for example iBuffalo BGSP801, did you see any such notices about this controller when autoconfig was enabled? Remote Retropad not starting is not a common occurrence (first time I hear about it), if you have a log about it, it is welcome.

Hi, I don't remember seeing any such notices. I did see the controller being labeled as "Xbox 360 Controller" in some menus, but I don't remember exactly where.

I can provide any logs you need if you point me to where they're located.

@zoltanvb
Copy link

Log generation is described here, starting it from menu is fine, level 0 (debug) is needed for both frontend and core:
https://docs.libretro.com/guides/generating-retroarch-logs/

@RobLoach RobLoach transferred this issue from libretro/RetroArch Jun 11, 2024
@RobLoach
Copy link
Member

@martingalvan Would you mind exporting your configuration? We could update the autoconfig so that you don't have to do this again in the future.

@martingalvan
Copy link
Author

Hi guys, thanks for the responses. I'm a bit busy right now but will probably come back to this over the weekend.

@martingalvan
Copy link
Author

martingalvan commented Jun 15, 2024

Hi guys, I generated log files with and without autoconf being on. What I did was start RetroArch, then load the Remote RetroPad and press the buttons on my physical controller a few times. For some reason I wasn't able to reproduce the Remote RetroPad crash again, even with autoconf on, so I wasn't able to generate logs for that one again.

I've also attached my controller profile as @RobLoach indicated; keep in mind though that I'm using this on Genesis games only. I haven't tried Sega Saturn, but from libretro/RetroArch#12849 it seems like the joypad may need to be configured differently for that one.

retroarch.autoconf_off.log
retroarch.autoconf_on.log
Controller (XBOX 360 For Windows).cfg.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants