Ryujinx / Ryujinx

Experimental Nintendo Switch Emulator written in C#
https://www.ryujinx.org
MIT License
34.48k stars 3.93k forks source link

[Feature Request] Configurable Hotkeys #3423

Open TomTurbine opened 2 years ago

TomTurbine commented 2 years ago

What feature are you suggesting?

-The ability to add and configure hotkeys.

Overview:

Smaller Details:

Nature of Request:

Why would this feature be useful?

Thank you for your time and your work.

gdkchan commented 2 years ago

How should it work with multiple controllers? If you have 2 PS5 controllers connected, would you expect the button press to trigger the configured action on both controllers, or just on the one you configured? Also, would you expect hotkeys to have mixed configuration with both keyboard and controller buttons, or just one or the other? I ask because that will affect the implementation.

MutantAura commented 2 years ago

As far as user experience goes it's likely best that a single hotkey can have simultaneous "keyboard" and "controller" mappings assigned. For instance the screenshot hotkey could be mapped to both F8 and D-pad up for example. Each hotkey having two columns, one for keyboard and one for controller input therefore likely makes sense.

Another QoL feature that isn't currently included in #3351 is the ability to bind a hybrid keypress such as "Shift + [Button]" or "[Button/Trigger] + [Button/Trigger]" if controller hotkeys become a thing. This would allow a lot more options than the current system and mean even as the hotkeys expand users aren't starting to become limited by their keyboard/controller. This is a lot more important if controller hotkeys become a thing as the lack of discrete buttons becomes a serious limiting factor. e.g. image

The only difficult implementation question is as you described on multiple controllers. Personally I think hotkeys should be limited to the SDL stamp of the controller that mapped it in the first place (I assume there are unique markers even for two identical controllers?). It may also be a solution to allow multiple bindings to the same hotkey so that P1 and P2 could both technically map a "pause" hotkey for instance.

TomTurbine commented 2 years ago

Sorry for the long delay. Github doesn't give notifications if there is a response so I missed this.

When it came to multiple controls, I would say have it work for default controller 1. Would be the most expected one as there will always be a controller 1 for every game.

Also, would definitely agree to a mixed configuration where you can setup a controller input and a keyboard input but just being able to implement even a single one would be enough for most people. Same with the hybrid key press MutantAura suggested.

Eskuero commented 1 year ago

This would be amazing. I would love to be able to map my Pro Controller's screenshot button to actually take a screenshot.

Having to go through the menu with the mouse and click it makes it very slow, specially considering you might have to leave full screen, put aside the controller and manually click it with the mouse, potentially losing what you wanted to screenshot since the games keeps running.

emmauss commented 1 year ago

This would be amazing. I would love to be able to map my Pro Controller's screenshot button to actually take a screenshot.

Having to go through the menu with the mouse and click it makes it very slow, specially considering you might have to leave full screen, put aside the controller and manually click it with the mouse, potentially losing what you wanted to screenshot since the games keeps running.

If you can set those buttons as a normal action button, say a binding for A in controller settings, then it's possible. If you can't set them as a normal binding, then only the face bottons, sticks and triggers can be used. To my knowledge, windows doesn't support the Big and screenshot buttons as user accessible inputs.

Eskuero commented 1 year ago

This would be amazing. I would love to be able to map my Pro Controller's screenshot button to actually take a screenshot. Having to go through the menu with the mouse and click it makes it very slow, specially considering you might have to leave full screen, put aside the controller and manually click it with the mouse, potentially losing what you wanted to screenshot since the games keeps running.

If you can set those buttons as a normal action button, say a binding for A in controller settings, then it's possible. If you can't set them as a normal binding, then only the face bottons, sticks and triggers can be used. To my knowledge, windows doesn't support the Big and screenshot buttons as user accessible inputs.

Works fine for Yuzu under Linux so it should be possible. I don't use Windows so I don't know there.

Eskuero commented 1 year ago

Under Linux if anyone wants a workaround I'm using AntiMicroX to bind the screenshot button of the controller to F8

TomTurbine commented 1 year ago

As an extension to this, allow us to unmap any hotkeys already there.

Was trying something that required me to hit LZ+RZ and the emulator started asking me if I was sure I wanted to close the emulator anytime I did it.

TomTurbine commented 7 months ago

Any progress on this front? I know it's been a while but still worth the ask.

gdkchan commented 7 months ago

I started implementing it on #4503 but never finished.

TomTurbine commented 7 months ago

I started implementing it on #4503 but never finished.

Thanks, hopefully they finish it eventually. Would love to be able to actually configure hotkeys and also UNconfigure existing hotkeys.

TomTurbine commented 4 months ago

Any word on the progress on this one? This is one of those requests that might not help any specific game but would be a huge help to many people who actually like controlling their stuff from their controllers and not have to just swap between it and the keyboard and mouse.

Between users who have a mini-pc hooked up to their televisions which happen to be clear across the room and have it setup specifically to use a controller or just those, like myself, who generally will use the controller but not really care to have to swap to the keyboard just to change games. It has been months since the last time I have even played switch but this was still a big thing back then and would continue to be in the future.

Having to swap between them to change games reminds me of when my nephew would play GTA Online when he was younger and still getting used to not playing the playstation and use the keyboard and mouse normally only to swap to a controller whenever he got into a vehicle and then went back to the keyboard and mouse whenever he got out of it. Just needlessly tedious.

TomTurbine commented 1 month ago

The last real update on this was the end of January, any progress on this since then?

Between this and the ability to auto-add DLC & updates, these are 2 simple things that would really improve the overall experience for many users.

These may not emulation speed or accuracy improvements but they are actually big deals to many users.

ZarifS commented 1 week ago

Would love to be able to control the UI (menu) with a controller. This makes using it from devices like the Rog Ally or a docked steam deck etc way easier when using just a controller.

This would super useful!