-
Notifications
You must be signed in to change notification settings - Fork 117
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
Guide button recognized as BTN_MODE instead of KEY_MENU #415
Comments
Devices that have The behavior you are asking for has actually been in xpadneo in different implementations:
In the end, xpadneo currently settled to See also #286 After v0.10 release, I will be working to resolve this and add features to remap buttons to different codes. The xpadneo driver will then expose a keyboard and gamepad device at the same time so you can mix and match mappings whatever you like, including switchable profile presets. But first, I'll have to resolve some open bug reports. Until then, you may be able to use something like anti-micro to resolve the issue or simply ask the Retroarch developers to support both event codes no matter which device they think is connected (because I think original Xbox controllers DO NOT send You may also try using #283 which is an attempt to work around some software quirks. Most of this patch has been absorbed into the main branches already: It mostly only changes trigger scaling now, and also pretends to be a USB device instead of Bluetooth. It also disables the shift mode operation of the Guide button as used for future features and makes it operate as a real gamepad button. |
Thank you a lot for the explanation! |
Tried "Switch" mode and the button is also recognized as |
What "Switch" mode? There's nothing that changes the device ID unless you're using PR #283. If you mean "Nintendo Switch" emulation (which swaps A/B and X/Y) using the quirks option, there's absolutely nothing Retroarch could know about it - we swap the buttons at a very low level in the HID reports without touching anything else, even SDL has no chance to see this modification. Ahhh wait! You mean the Switch hardware emulation mode of your controller... Yeah, that proves my point. Our driver currently doesn't support this controller mode, so you're not using xpadneo in this case. If you see |
Yep! Thanks for the info. |
Sorry, closed it accidentally. I assume that you wanted to keep this open as a remainder for 0.11. |
There's a small chance that RetroArch uses SDL - and SDL may not see |
The Guide button works in |
There is a setting in Retroarch to use SDL2. But it set to |
If it uses |
Tried switching input driver to |
Upcoming SDL2 will have better support for all Xbox controllers, no matter if xpad, xpadneo or hid-microsoft is used. For xpadneo, tho, customizing how the Guide button is handled will be deferred until after v0.10. |
I am seeing this issue with Furthermore, when testing in
@Shatur I am also using RetroArch and I'm interested in tracking the status of this issue across xpadneo and RetroArch. If you did end up opening a RetroArch issue ticket, please link your RetroArch issue ticket here for ease of navigation. Thank you for reporting this. |
This is intended behavior: While holding the logo button, you can press A,B,X,Y to switch between mapping profiles (which are not yet implemented) and there will be a mouse emulation mode which can be enabled in a similar way (will land in v0.10). When running Future versions will allow to disable the shift mode operation so it can better support applications like RetroArch.
That said, custom mappings will come after v0.10, thus in a future version you will be able to customize which button emits which event and switch to different mappings using 3 custom profiles (the first profile will always be the default mapping which makes it 4 profiles in total). |
I'm not sure if what I wrote was understood. What I wrote was that there is no event on press, but two instantaneously on release, which was the press and release events. The press event should fire when the button is pressed, not when it is released. Any profile-switching behavior should be irrelevant to this. I'm talking simply about when the corresponding events fire. If a button combination is implemented for switching profiles, it would need to know when the button is pressed anyway, and currently because these two events fire simultaneously only on release, there can be no "held" state, which would prevent any hypothetical button combination from being able to work. |
Oh, I'm sorry, I forgot to open it. Could you please do it instead and like the issue? |
I tried uninstalling Therefore, I am no longer interested in this issue. I wish the xpadneo devs well and hope they can resolve the logo button press event issue for users who want to use xpadneo still. If By the way, I can confirm that the default driver (not xpadneo) seems to use
Also, I'd like to add that I tried the 8bitdo SN30 Pro with xpadneo in |
Yes, this is intended behavior. We hold the button event back until released, because it could be used as a shift key, and in that case, no event at all would be fired for the logo button. |
This is not an issue because this behavior is intended - as written above.
Yes, but this is probably wrong. It was done because the original firmware of the Xbox Bluetooth controllers sent |
This is another reason I can't use xpadneo then. I personally prefer if the driver I'm using faithfully translates hardware signals to OS-level events, which can then be interpreted in any way desired by applications. If I want to add a button combination to change "profiles" by myself using a user-land application, that would allow me to. With the "pressed" event being sent only on release, there is no possibility of doing that, which makes the driver lack functionality. |
As written above, this is planned for after v0.10 initially released. But for your use-case, the native hid-microsoft driver in the kernel is probably what you're looking for. |
Can you link to any release notes or give a very brief overview of the changes? |
This is one of the relevant commits: libsdl-org/SDL@db1d4d3 There's one before which prepared those changes, then there's one following which fixes a few things I've found. This may give a better overview: I'm not sure if it has been merged into a released version yet. It should be in 2.28.0 and newer if I remember correctly. Regarding xpadneo itself, you could browse the projects tab of xpadneo: https://github.com/atar-axis/xpadneo/projects?type=classic And here's the relevant discussion: #428 |
Version of xpadneo
0.9.5
Controller Model
Connection mode
Installed Software
Protocol Information
Please help us identify at which layer the problem can be found if you want
to report mapping errors or if the controller fails to be detected:
evtest
is showing issues (describe the issues below)BTN_NORTH
andBTN_WEST
are intentionally swappedjstest
is showing issues (describe the issues below)gamepad-tool
is showing issues (post console output below)Please describe how it is failing below in the next sections.
Severity / Impact
Describe the Bug
In
evtest
guide button recognized asBTN_MODE
instead ofKEY_MENU
. If I remove the driver, 8BitDo SN30 Pro reports this buttons asKEY_MENU
.Steps to Reproduce
Connect the gamepad and run
sudo evtest
.Expected Behavior
Should this button recognized as
KEY_MENU
? For example I can't mapBTN_MODE
in Retroarch, it's simply not recognized it as a button. But withKEY_MENU
it works (this is how it works without the driver) and it's the default shortcut for opening Retroarch menu.Screenshots / GIFs / Videos
System Information
Controller and Bluetooth Information
xpadneo-btmon.txt
xpadneo-dmesg.txt
Additional Context
The text was updated successfully, but these errors were encountered: