azahar-emu / azahar

A new Citra fork
https://azahar-emu.org/
2.55k stars 133 forks source link

Per-game Controller Profiles (Including Touch Profiles) #254

Open Jakerfv opened 4 months ago

Jakerfv commented 4 months ago

Is there an existing issue for this?

What feature are you suggesting?

The ability to use custom control schemes or different controller profiles, auto-launched on a per-game basis instead of the default global option (similar to how some graphics options work).

Why would this feature be useful?

There are games that benefit from different control schemes and button placement compared to others. Profiles would help mitigate some issues. In The Legend of Zelda Majora's Mask 3D, it may be prudent to simply keep the controls as is for a 360 pad (A = A, B = B) for easier button prompts. However, the button positioning is counter-intuitive for games like Senran Kagura: Deep Crimson. A Musou game that carries some idiosyncrasies if the user is used to playing character action games. It's generally preferable to have the 'light' attack be the left button and the 'heavy' be the top button. X for light, Y for heavy on an Xbox controller but these buttons are now in different places with the Majora's Mask profile (and they're swapped on the actual 360 pad compared to a 3DS, and the issue is not as pronounced as the placement of 'A' and 'B'), meaning a controller profile change is necessary for these types of users. Having to change profiles every time can be cumbersome and tedious, especially on limited UI platforms like the Steam Deck (Windows and Linux).

In addition, having profiles for games with an emphasis on touch-screen inventories would be made infinitely simpler. Currently, there are some profiles people have shared for The Legend of Zelda Ocarina of Time 3D, and similar games that rebind your controller's D-pad to inventory mapping options (such as the Ocarina or First Person View). The problem is that you can only use one "touch profile" at a time in this fashion by editing the config.ini file. If a player wanted to start playing Majora's Mask part-way through an Ocarina playthrough, they would have to re-edit the config.ini file again or import and change another profile and back whenever switching games.

Per-game controller settings would help infinitely. Even better if these can also be saved, exported, loaded, and ultimately: easily shared.

newhinton commented 4 months ago

A more generalized implementation would also solve the multi-controller issue where switching controller types requires a remapping of the buttons. This would be highly appreciated!

Jakerfv commented 4 months ago

A more generalized implementation would also solve the multi-controller issue where switching controller types requires a remapping of the buttons. This would be highly appreciated!

This seem to be a quirk with a lot of 3D emulators nowadays. I recall Dolphin being a bit less "stingy" with controllers along with similar emulators but years ago. But something changed. It used to simplu recognize your controller, x-input or d-input, and it would work with whatever profile you had. I think something changed, at least on Windows, when it came to controller support. We might have went from a generic x-input device to "this is an xbox one model S controller and this is an xbox series X controller, they are recognized differnetly because they are different". But profiles became more cumbersome. Though emulators like Yuzu (once you select the correct input) give you an auto profile, but the saved profile still won't switch over to a different controller.

Renkoto commented 3 months ago

As a PC user I don't have a proper game controller to use, so this would be especially beneficial for keyboard players.