Advanced Controller Options Request

Hey, first of all, thanks for the great emulator. I love that Retroarch unifies the audio, video, and feature (save states etc.) interfaces across emulators (as well as the awesome GUI!).

If I were to ask for one thing, it would be more robust controller handling. Specifically, I’d like to: [ol] [li]Assign the same emulator control to different physical buttons. For example, the Atari 2600 only has one button. It would be nice to assign that button to my main physical controller buttons (A,B,X,Y) so I don’t have a bunch of dead buttons on my controller[/:m:72e00jeq][/li][li]Assign multiple emulator buttons to the same physical control. This is great for arcade fighting games as you can assign multi-button moves to unused keys (similar to how SFIV assigns all three punch/kick keys to the triggers to make moves with those button combinations easier to pull off.[/:m:72e00jeq][/li][li]Assign combinations of physical buttons to an emulator or system key (for example L-Trigger+A activates turbo for A)[/:m:72e00jeq][/ol][/li] As for implementation, I think the (non-Retroarch) Mame GUI does a pretty good job of handling it, where after you select a control you can: [ol][li]Press a key to add that key to the keys that will trigger the control (repeating this process will add additional keys)[/:m:72e00jeq][]Press two keys at the same time or within a fixed time (0.5seconds or so) of each other to add a combo[/:m:72e00jeq][]Press delete to remove any keys that have been assigned[/:m:72e00jeq][/ol][/li]If that’s too complex, it could be left out of the GUI and left as an advanced feature implemented only through directly editing the configs.

I think you can already do this with the ‘hotkey’ system…unless you were describing a specific shortcoming of the existing system.

Multiple real buttons for a single retro-button may be a fundamental limitation of the way input is implemented, IIRC, but having it as a config option with comma-delineated-values for the assignment would be nice if it’s possible.

Yeah, I figured it would be a pretty big overhaul to adjust the GUI, but even having the config option would be very much appreciated.

As for the hotkeys, correct me if I’m wrong but with the current implementation, isn’t there only one hotkey per config, and after it’s assigned aren’t all system functions bound to hotkey+functionkey?

If so, while workable, it’s a bit more rigid than the multi-button combo system I was recommending. For example, let’s say you were playing a snes game on a 360 controller, you couldn’t assign say “Guide Button+R-Bumper” to save state while “R-Trigger+A” for Turbo A at the same time. Obviously, you could just make Guide your hotkey and use “Guide+A” for turbo or make the trigger the hotkey and go “R-Trigger+R-Bumper” to save state, which is doable in the current system.

However, if you went with guide as your hotkey, you’d be stuck with a rather hard combination to pull off efficiently (you have to take your left thumb off the navigation keys and hold down Guide while you use turbo). On the other hand, if you assign your hotkey to the R-Trigger, you’re no longer to use your hotkey combinations in post n64 systems as it will conflict with the triggers. Does that make sense?

What I’m recommending is, instead of hotkeys, being able to directly assign key combinations (L-Trigger+A) to a retro-button or function. These are very small issues, of course, but I do think that allowing that flexibility would allow for a wider variety of comfortable human->controller->game interfaces.