I am currently able to do this. I have an Xbox One controller, N30Modkit and SN30Modkit.
Step 1: Delete hotkey settings
In retroarch.cfg look for:
You will find multiple inputs with hotkey in them. Simply type/replace what is in the quotes with nul:
input_enable_hotkey = "nul"
input_enable_hotkey_axis = "nul"
input_enable_hotkey_btn = "nul"
input_enable_hotkey_mbtn = "nul"
This will appear as “Auto:” in Retroarch.
Step 2: Creating autoprofiles
Next, in “_parent/autoconfig/xinput” folder I have two cfg files which were created by retroarch. In order to keep it clean i deleted everything else from this folder. If you don’t have these cfg files, we will create them.
XBOX One Controller (User 1).cfg
XInput Controller (User 1).cfg (M30modkit/SN30modkit)
- Connect only the controller you wish to configure first.
- Launch retroarch.
- Go to Settings > Input > User1Binds
- Bind the controller to your liking
- When finished, select “User1SaveAutoconfig”. (This will create the cfg file)
- Exit retroarch and disconnect controller. Connect the next controller to configure and repeat.
I discovered that the XInput Controller (User 1).cfg profile works for both the N30 and SN30 so it is only necessary to configure the SN30 first.
Step 3: Multiple hotkeys
In “_parent/autoconfig/xinput” folder edit the cfg files and add:
input_enable_hotkey_btn = "button_listed_in_cfg"
Xbox One example:
input_enable_hotkey_btn = “8” #Left Thumb button
input_enable_hotkey_btn = “7” #Select Button
The issue i am having which I am hoping someone here can help me out with. When assigning select or start buttons as a hotkey, that button will no longer function in some games on NES/SNES/Gameboy etc. For example if I assign the start button as the hotkey, the start button no longer works in Super Metroid for SNES but it will in other SNES games. Same issue with using select for example in Link’s Awakening for gameboy, the select no longer functions when using the hotkey.
It is my understanding that whatever button you assign as the hotkey on the controller, it will block the original command and be overwritten as a hotkey only. If only there was the option to allow a slight delay when pressing assigned hotkey button to first trigger the in-game command and then begin the hotkey call.