somail Posted June 3, 2022 Share Posted June 3, 2022 Hi, I hope this is the best venue for the most beginner question for any emulator. How do I set up core/game specific keyboard bindings in Retroarch? I am trying to setup the Flycast-Naomi core and I understand there are two areas in retroarch to set key bindings: 1. Global Controls: Settings -> Input -> Port 1 Controls (This is super easy and I am having no issues) 2. Core/Game Specific Controls: (With core/game loaded) Quick Menu -> Controls -> Port 1 Controls (I am having trouble in this section) I do not understand how to set the Core/Specific Game Controls. Below is a screenshot. I am trying to bind L3 and R3 to Numpad 1 and Numpad 2, respectively. When I click on the specific control I want to set (e.g. L3) a drop down of all key on the keyboard appear and I am selecting the ones I want. It shows on the screen I selected the button I wanted (see screenshot) but when I go back to the game the key bindings are not working. I would think this should be as simple as clicking and pressing the button I want (like in the global settings a grey box will pop up and prompt me to press the button I want) but this menu is behaving differently. Thank you for your help. Quote Link to comment Share on other sites More sharing options...
neil9000 Posted June 3, 2022 Share Posted June 3, 2022 7 minutes ago, somail said: but when I go back to the game the key bindings are not working. I'm a little confused here by what you mean "not working". Dreamcast, or in this case from your screenshot Naomi, did not have L3 or R3 buttons in the arcade, so those wont do anything at all in the emulator either. Seems to me you are trying to map non existent buttons to your keyboard. Quote Link to comment Share on other sites More sharing options...
somail Posted June 3, 2022 Author Share Posted June 3, 2022 2 minutes ago, neil9000 said: I'm a little confused here by what you mean "not working". Dreamcast, or in this case from your screenshot Naomi, did not have L3 or R3 buttons in the arcade, so those wont do anything at all in the emulator either. Seems to me you are trying to map non existent buttons to your keyboard. For Naomi & Atomiswave, L3 and R3 are used for the service and test buttons. I confirmed they work/exist by setting these in the global Port 1 controls previosly, however I do not want these to be a global setting across all cores so I am trying to only do it for the core. I would like L3 & R3 to be blank by default and then I set them on a per core basis. I just can't get the core setting to work. Thank, Somail Quote Link to comment Share on other sites More sharing options...
Headrush69 Posted June 4, 2022 Share Posted June 4, 2022 When you select keyboard, this represents the device connected to the emulated machine, not your keyboard. The L2 and R2 in your screenshot are Retropad virtual buttons and you do not appear to have them mapped to your physical controller yet. Once you do you will see your physical controller listed after Port 1: You haven't said what controllers you are using, or if just a keyboard, but changing keycodes (which also map to the virtual Retropad buttons), can be done in your retroarch.cfg file or added in a core or file specific override. Something like this: Quote input_player1_l2 = "numpad1" input_player1_r2 = "numpad2" You can see here Retroarch default keyboard key mappings to virtual Retropad Quote Link to comment Share on other sites More sharing options...
somail Posted June 4, 2022 Author Share Posted June 4, 2022 Thanks Headrush. Yes, just a keyboard and I am trying to duplicate my MAME (real Mame not Retroarch Mame) mappings for the flycast core. If I understand what you are saying correctly, I cannot simply assign a key to a button. I have to assign a master key to a virtual controller and then swap the buttons of the virtual controller while I have the core loaded. So Global Controller: Player 1 Button A = "q" Player 1 Button B = "w" Core Controller: Player 1 Button A = Global Button B Player 1 Button B = Global Button A I tried editing the flycast.rmp (remap file) with different buttons but retoarch seems to ignore my mapping even if it says it has the remap file loaded. Even if I remap in the GUI the saved file is pretty much blank like retroarch is just pretending to save something. I am not one to complain as "it is what it is" but retroarch's controller config system seems broken. Thanks again for the help. I have set up dozens of emulators over the years and I have never seen a system like this. If it wasn't for wanting bezels I would just stick to the standalone flycast emulator - that took all of a minute to get working. Quote Link to comment Share on other sites More sharing options...
Headrush69 Posted June 4, 2022 Share Posted June 4, 2022 7 hours ago, somail said: If I understand what you are saying correctly, I cannot simply assign a key to a button. I have to assign a master key to a virtual controller and then swap the buttons of the virtual controller while I have the core loaded. Not exactly. You assign your keyboard keys to map to this Retropad abstract controller. You can see the defaults in retroarch.cfg. I have set all mine to nul and than in a core override (which is saved in Retroarch/config), I set the keys I want for that specific core. Here is an example from my my Stella core: Quote input_player1_up = "nul" input_player1_down = "nul" input_player1_left = "nul" input_player1_right = "nul" input_player1_a = "nul" input_player1_b = "nul" input_player1_l = "ctrl" input_player1_l2 = "space" input_player1_l3 = "6" input_player1_r = "h" input_player1_r2 = "x" input_player1_r3 = "2" input_player1_select = "num5" input_player1_start = "num1" input_player1_x = "nul" input_player1_y = "nul" So now in Retroarch, you will see those keys are set to those Retropad buttons. 8 hours ago, somail said: I tried editing the flycast.rmp (remap file) with different buttons but retoarch seems to ignore my mapping even if it says it has the remap file loaded. Even if I remap in the GUI the saved file is pretty much blank like retroarch is just pretending to save something. What the remap does, is it allows you do re-assign the Retropad buttons to different emulator functionality. For example, if Retropad button A is set to punch, you can remap Retropad button B to punch. Remaps change the Retropad assignments to the emulator function, not your keyboard keys. Retroarch controller mapping does seem different at first, but once you wrap your head around it, there are lots of advantages. You also have to remember Retroarch is dealing with so many cores, while an individual emulator is only dealing with one, so they need flexibility that straight keystroke mapping can't handle. Just a heads up, I've noticed with the flycast core, it seems some things have to mapped to specific Retropad buttons. For example in Naomi racing games, whatever key I choose, (or joystick button), has to be mapped to Retropad L2 and R2 for analog controls like gas pedal and brakes to work. Hope that helps. 1 Quote Link to comment Share on other sites More sharing options...
somail Posted June 4, 2022 Author Share Posted June 4, 2022 Thanks Headrush. That cleared it up well. I was trying to follow Mame's logic and that clearly isn't the case with retroarch. I got everything mapped the way I needed it. There does appear to be a few limitations on the flycast core for the mappings but I was able to work around them. Thanks again for the help. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.