I’ve been exceedingly impressed with RetroArch’s performance and modular, multiple-core setup. I have my living room retro gaming experience working quite beautifully now, thanks to Steam Link. However, after getting most of my cores properly configured and working smoothly, I finally decided to try working in some gamepads other than my default XBox 360 controller (wired at the computer, 4x wireless at the TV). I was sorely disappointed to discover how difficult this part of the process is, compared to everything else… I’m running RetroArch 1.3.6 on Windows 10, by the way.
As mentioned above, I have a wired XB360 gamepad and a XB360 wireless receiver that works mostly without issue. I foresee a tad bit of a headache when it comes to mapping all 4 wireless controllers within the RGUI, but I am confident I can get it done… The problem is that I have a number of generic USB controllers that I am trying/planning to setup with the various cores. I have an N64 USB adapter, USB SNES gamepads, USB NES pads, an Atari 2600 USB adapter, and a couple different USB Genesis/Saturn gamepads. So far I’ve only tried setting up the N64 controllers & adapter, and one USB SNES controller, but neither went very well at all. The N64 adapter & controllers get configured when RetroArch starts, but the only way I can find to edit the mappings is in the in-game RGUI menu and I can’t tell it “bind this button” then have it ask me for an input, it only has a few options for each button that I have to cycle through, and the button names on either side are quite confusing and the selection for each input is far too limited; e.g. I could not bind any of the c-buttons to any of the c-buttons. The USB SNES controller just gets reported as unconfigured when I start RetroArch.
I’ve peeked at a few of the files in RetroArch’s autoconfig directory. I don’t understand if there’s a reason that some files list the mappings line by line, and some seem to have no whitespace between fields. I also vaguely understand the concept of the Retropad, which I’m guessing most of these autoconfig files map to, but for the likes of an N64 controller, I don’t see any C buttons or Z button (though I imagine those could be mapped to the second stick and L or select, or something, then tested and sorted out in the RGUI). I see a “Generic_SNES_USB_Controller.cfg” file, but clearly that’s not the same as MY generic SNES USB controller. And I can only guess that most of my other controllers will offer similar headaches. So I’m wondering how one goes about creating an autoconfig file from scratch, so I can manually map the inputs myself. Like, what fields/intputs are required/available? How do you determine what “input_driver” to use? How do you find the “input_vendor_id” & “input_product_id”? How do you find the labels for the buttons returned by the controller? General syntax rules, etc.?
I recently decided to try just using a standalone emulator (BSNES) rather than the RetroArch core, with hopes that the input keymapping procedure would be simpler, but for some reason the emulator’s performance was absolutely abysmal compared to how the RetroArch version handles it. So, it seems, I’m stuck with RetroArch. But I really want to get all my other gamepads working with it. So I’d greatly appreciate any advice or assistance anyone might be able to offer me on the matter.