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:
input_enable_hotkey
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"
Next, search for:
input_autodetect_enable
input_remap_binds_enable
and change them to :
input_autodetect_enable = "true"
input_remap_binds_enable = "true"
In [ retroarch > settings > input > user1binds ] you will know autoconfig is working because binds will show: “Auto: Button” for all of the buttons configured. If you don’t see “Auto: Button” then in that same menu select “User1BindDefaultAll”.
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)
- Select “User1BindDefaultAll”. You should now see “Auto: Button” for your buttons, this means autoconfig is working.
- 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
N30/SN30 example:
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.