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

[Feature Request] Better compatibility with xinput, controllers are turned off when opening and closing the emulator #577

Open
williansti opened this issue Jan 25, 2025 · 9 comments
Labels
enhancement New feature or request not planned but open to a PR I do not intend on working on this myself, but I would not be opposed to an implementation.

Comments

@williansti
Copy link

Overview

In my case I use original Xbox Series X controls, but every time I open the emulator, the input device is disabled. even though I leave everything right with player 1 using xinput 0 and player 2 using xinput 1, even creating a profile for each control, applying the settings and using them correctly, When I return to the emulator I have to do everything again, because nothing is saved. In short, the settings only work during use, they are not saved..

Smaller details

They could improve compatibility with xinput, implementing functionality like reicast, xenia, xemu or dolphin.

reicast already immediately detects any xinput control when triggered and sets each player to an xinput.

xenia and xemu detect xinput controls almost like a native console, no adjustments are required.

Dolphin, after all the configuration and usage indication for xinput 0: player 1, xinput 1: player 2, xinput 2: player 3 and xinput 3: player 4.
By doing all this and saving a profile for each player, the emulator does not forget the configuration and resumes correctly after each use.

Nature of request

Improve compatibility, efficiency and management of xinput controls in the emulator, so that the emulator "remembers" the settings.

Why would this feature be useful?

It would be useful to solve this annoying problem of every time you open the emulator, having to reconfigure all the controls again, for me and many others who use 4 controls, it is terribly sad, redoing everything every time you want to play.

@williansti williansti added the enhancement New feature or request label Jan 25, 2025
@GreemDev
Copy link
Member

SDL is used to avoid controller-specific code. Xinput is not going to be added, at least not officially.
This is not going to be worked on.

@GreemDev GreemDev added the not planned but open to a PR I do not intend on working on this myself, but I would not be opposed to an implementation. label Jan 25, 2025
@williansti
Copy link
Author

I understand, this may not even be a priority, I also understand that there is much more useful work than this, if there was a collaborator who could implement at least the two options, as in pcsx2 among others, it would be interesting, options are always welcome, think carefully perhaps in the future.

@Anthonyc833
Copy link

havent you press apply when you change the input device?

@williansti
Copy link
Author

havent you press apply when you change the input device?

Yes, I pressed apply, I've tried creating the profiles too, it doesn't work, every time I turn off and on the computer and the controls, everything has to be redone, SDL is complicated, I know there are settings in SDL that save in other emulators, even old ones, like yabasunshiro, but the ideal would be to have an option to detect xinput.

@Anthonyc833
Copy link

are you 100% sure? I just checked on my machine and the settings and my controller input is still saved

@williansti
Copy link
Author

williansti commented Jan 29, 2025

are you 100% sure? I just checked on my machine and the settings and my controller input is still saved

I will give examples of the problems that occur. If you only use 1 controller (I use Xbox series X/S), the setting is kept for xinput 0, as long as you don't open the emulator with the controller turned off, otherwise the input device will be disabled.

If you use 2 or 4 controls, the configuration gets mixed up, player 1 has xinput 1 and no longer 0, player 2 also has xinput 1.

The entire configuration is lost, even if you set it correctly as I mentioned.

Player 1: xinput 0
Player 2: xinput 1
Player 3: xinput 2
Player 4: xinput 3

When opening the emulator again if the controls are turned off, everything will be lost, and if you open the emulator with the controls turned on, each player's input device will shuffle or simply use the same xinput.

That's why I say that it would be very good to implement xinput support as an option in this emulator, because just like redream, flycast, duckstation, pcsx2, rpcs3, xenia, xemu, dolphin, etc... the configuration would be maintained, regardless of whether the control is connected with the emulator open or closed, nothing would ever be lost, in addition to the configuration always being set correctly.

@Anthonyc833
Copy link

wait a second are you connecting your controller by bluetooth or wired?

@williansti
Copy link
Author

I connect all 4 by bluetooth, as I mentioned, older emulators such as yabasanshiro which only uses SDL, saves the settings,

unfortunately ryujinx "forgets" the settings and disables the input if it doesn't find the connected controller, and even if I avoid opening the emulator with the controller disconnected, assuming that I only open it when the controllers are connected, it still scrambles the xinput order as I already mentioned... it's very sad, every time I open the emulator, I have to go in there and activate each control in the input and indicate one by one.

@manituan
Copy link

manituan commented Feb 3, 2025

Same here. This would be my number 1 issue to fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request not planned but open to a PR I do not intend on working on this myself, but I would not be opposed to an implementation.
Projects
None yet
Development

No branches or pull requests

4 participants