Jump to content
LaunchBox Community Forums

Retroarch controller mapping for individual cores


superdavit

Recommended Posts

This is taking years off my life. It seems simple: Load up a core, choose a game and start it, press F1 to get the quick menu, then change the keys. FYI, I'm using an X-Arcade stick which is basically emulating keyboard strokes for buttons (left shift = button 4, x = button 1, etc.).

If I go to "Controls" and then "Port 1 Controls" it will only allow me to swap the buttons around so that the predetermined A button is the B button, or vice versa.

What I WANT is to set the A or B buttons to whatever button I press on my X-Arcade Stick.

PLEASE HELP!!

Link to comment
Share on other sites

Hi @superdavit Take a closer look in that Port 1 Controls section. Depending on what controller you have assigned to port 1 is what will show up there. There should be smaller text under each button. When I have an Xbox One controller connected it will for ex display "Port #1: XBOX One Controller". Using the attached pic for reference, the physical B button on my controller, or the physical X key on my keyboard will both act as the virtual A button for a SNES controller in a SNES game (since I had a SNES game loaded here). Next the physical A button on my controller, or the physical Z key on my keyboard will both act as the virtual B button for SNES controller. So on, and so forth.

 

Take note what you are adjusting is what VIRTUAL button is assigned to your PHYSICAL button. You get to select the virtual button from the list that appears when you click on one of them

 

You're in the right page to make the adjustment.....unless your x-arcade stick isn't supported you shouldn't be having any issues remapping buttons. Since you said your stick is basically emulating a keyboard you have an additional layer of remapping to make sure it is all aligned properly. ie if your "button 1" maps to keyboard key "X" then using the photo I attached as further example, that would mean it would engage the virtual SNES button A

 

Then when you're done remapping do save core remap and all games used by that core will now use this remap

 

image.thumb.png.deedba240b8d816e7e7b3dedaa8873bd.png

  • Thanks 1
Link to comment
Share on other sites

Sounds like you want to set the keys that are mapped to the virtual Retropad, not remap controls.

You can map the virtual buttons to your keyboard keys if you want in the the settings > input > player 1 binds menu. (Save configuration after)

You can also manually do the same in your retroarch.cfg file. I have different keys set for different cores so I manually add the keys I want in Retroarch -> config -> core name.

You're looking for entries like this:

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"

 

Link to comment
Share on other sites

You two are both amazing!!  Thank you so much for all of this. 

The internet told me I needed to load a core, start a rom, and then once that had started, I needed to press F1 to open the quick menu.  That's where I was trying to configure the controls.  It sounds like you're both saying that's not the way to do it.

Link to comment
Share on other sites

On 8/1/2022 at 5:55 PM, superdavit said:

You two are both amazing!!  Thank you so much for all of this. 

The internet told me I needed to load a core, start a rom, and then once that had started, I needed to press F1 to open the quick menu.  That's where I was trying to configure the controls.  It sounds like you're both saying that's not the way to do it.

so to clarify, that is exactly what I was suggesting. the internet sounds right to me lol! F1 goes to quick menu, you then navigate to controls and adjust. honestly, it sounds like you may be confused how Retroarch's controls work because you're complaining about making the adjustment you describe you want to make....so I 'm not sure where your challenge might be. it sounds like someone saying "I didn't ask for a pepperoni pizza.....I wanted a cheese pizza with pepperoni on top!" they are the same thing.

 

you can achieve changing controls the global way that HeadRush69 suggested. just understand that a change made there will impact everything, it's a global config file. the way I and the internet suggested to you will give you controls that are specific to either the core/system or game. you can do both methods if needed. maybe you do need to edit the global config, but still need more specific changes made per core/system or game. that sort of setup is also possible.

 

I'll try to be specific to your arcade stick since you gave a couple examples of your buttons and it is basically a keyboard encoder by the sounds of it

If "Button 1" engages keyboard key "x" this means if you were to for example, open Notepad and hit "Button 1", you would see a "x" type out in Notepad.

Using the photo I previously attached, this is the controls menu found in the quick menu. Notice the names in the left hand side, specifically the first entry says "(Key: x)". This means if I were to press "x" on my keyboard, it would engage the virtual button "A". Since I also had an Xbox controller plugged in, it also shows I could engage the virtual "A" button by pressing my Xbox controller's "B" button

Using your arcade stick, if you pressed "Button 1", it makes keyboard key "x", it would by default engage virtual button "A"

If you wanted to change this, you simply click on that button in the Retroarch menu, and select a different virtual button, let's pretend you change it to virtual button "Y"

Boom, that's it, you remapped a button. Dozo basically.

Now to save this change so it loads the next time you boot this game or core/system you need to need to save it accordingly, either for the game or core/system. Whatever you prefer

So now next time you hit "Button 1", it will still engage keyboard key "x", you would see x typed out in Notepad for example, but now it engages virtual button "Y".

 

 

Now if you want to make global changes, or need to change the default keyboard layout you would do what Headrush69 suggested. For example

You hit "Button 1" but you edit it so instead of engaging keyboard key "x" you want it to engage keyboard key "a"

This would still engage the default virtual button "A"

So if you wanted to additionally make a change to the virtual button, you do the method I detailed above.

Note you also need to save the global config. That is in settings, configuration file, then save it accordingly

 

Hope this helps you understand Retroarch's controls better. This is a case of all roads lead to Rome, there is multiple ways to achieve changing controls. None are wrong, you just need to use the method(s) that work for your use case

 

That list HeadRush69 include is a good resource also if you wanted to manually edit the global config instead of doing through the built in menu of Retroarch. You could use the search function of Notepad or whatever text editor you use to find those lines in the config and edit accordingly. It's a bit annoying to find them by your eye alone because there are like 16 player inputs along with all the other global options, there are a lot of lines to search through.

  • Thanks 1
Link to comment
Share on other sites

You both are wonderful.  Truly appreciate it.  I know what I'm trying to do and it SHOULD be easier.  Worst case, I'll capture a video and post it if I'm still having issues.  If I can get it working, I'll send you both some Starbucks gift cards or something.  I appreciate your help and time!!!!

Link to comment
Share on other sites

4 hours ago, superdavit said:

You both are wonderful.  Truly appreciate it.  I know what I'm trying to do and it SHOULD be easier.  Worst case, I'll capture a video and post it if I'm still having issues.  If I can get it working, I'll send you both some Starbucks gift cards or something.  I appreciate your help and time!!!!

lol totally unnecessary. paying it forward and helping a fellow gamer enthusiast, getting their appreciation is worth more than any tangible object!

 

but I just thought of something that might be giving you a challenge. I just checked out the manual for perhaps what is your specific model? you will have to confirm....

https://cdn.shopify.com/s/files/1/0192/2714/files/X-Arcade_Manual_USA.pdf?4536

Check out page 10 about programming your stick, which means changing what your physical buttons correspond to what keyboard key. Did you even know you can change these?! This might be a better method for you, depending on your use case

 

 

Otherwise I see the default layout would really NOT be friendly for Retroarch. For ex z, x, a, s are default keyboard buttons for retroarch.....yet the default layout on your arcade stick puts z and x on Player 1, and A and S on Player 2....lmao that is NOT going to be a good time! You might want to adjust the global retroarch file then as suggested by HeadRush69 so all their keys correspond to your arcade stick's default layout. This is what I said in my first post, about you may have another layer of remapping to worry about to make sure everything lines up correctly as you want it to. If everything was to be left at default, imagine this, you would be hitting the Z and X buttons over on P1 and need to hit A and S on P2 in order to have a good time playing a SNES game. You wouldn't even be able to move since the joystcks default the numpad for P1 and RFDG for P2.....in other words this thing is mostly useless for Retroarch until you configure everything

 

So like I warned, you have multiple layers of remapping to be concerned with. You need to understand exactly what each button on your x-arcade stick corresponds to on the keyboard, and then use the keyboard keys to be used in the emulators.

 

 

Thanks to headrush for making the list. you would want something like this if mapping stuff out in the vein of a modern controller. you can of course adjust this to your liking, but I hope this puts you on the right path, finally lol. note Retroarch uses "keypad" before the number for the NUMPAD keys. if you want to press the number keys along the top row of the keyboard those start with "num". also note I just gave example for player 1. you would absolutely need to do this for player 2 also.

input_player1_up = "keypad8"
input_player1_down = "keypad2"
input_player1_left = "keypad4"
input_player1_right = "keypad6"
input_player1_a = "shift"
input_player1_b = "z"
input_player1_l = "space"
input_player1_l2 = "c"
input_player1_l3 = "nul"
input_player1_r = "x"
input_player1_r2 = "num5"
input_player1_r3 = "nul"
input_player1_select = "num1"
input_player1_start = "num2"
input_player1_x = "ctrl"
input_player1_y = "alt"

 

Which would like this (refer to photo below) under Settings > Controls > Port 1 Controls

When you are done editing you need to back out the Main Menu > Configuration File and then select save

Save current overwrites the current one - I recommend this option because Save new will create a new file which you will have to direct Retroarch to load. both work fine, but you have another step that you may not want to deal with

 

image.thumb.png.16dcf3e9d42d28d15f71ca6ac6b46c1d.png

Link to comment
Share on other sites

19 hours ago, skizzosjt said:

you can achieve changing controls the global way that HeadRush69 suggested. just understand that a change made there will impact everything, it's a global config file. the way I and the internet suggested to you will give you controls that are specific to either the core/system or game. you can do both methods if needed. maybe you do need to edit the global config, but still need more specific changes made per core/system or game. that sort of setup is also possible.

To be honest, I don't use this globally but core specific, so each core can use different keys. (Not just remapped)

The mappings are the same but it's added to the core override in Retroarch -> config -> <corename>. As you've noted above, the default mapping falls apart in several situations.

I started with an Xarcade, but upgraded it to an iPac, but it's essentially the same still. When I started, Retroarch naming for the actual controller and the Retropad was confusing so manipulating the config files was easier, but it has improved greatly and possibly GUI based might work just as easy now. The important thing is grasping the concept of the virtual Retropad. 

A few issues I found:

  1. The default mapping of using the left ALT key caused some issues with some tools and some emulators. I changed it to H.
  2. Some cores, (Like Stella for Atari 2600) have lots of system buttons like difficulty switches which can only be mapped to player 1 in Retroarch. For an arcade stick set up this was ugly, and by adjusting the keys like above, you could map player2 COIN and START to player 1 inputs for selecting in Retroarch. It's a little confusing but works perfectly.
  3. On some games, you just need analog inputs or triggers, etc so you might to use another controller for these games/platforms.  When you use these key overrides you can set to nul to disable the keys. This way someone playing on a controller isn't affected when the kids hit cabinet buttons.

As skizzosjt mentions, getting your Xarcade mapped to the Retropad first is essential. I have disabled most Retroarch hotkeys but if I remember correctly, I thought [ and ] were mapped to functions in Retroarch, so you may want to make sure so those are mapped on Player 2.

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...