Can I map a controller to act like some buttons would a second controller? [SOLVED]
-
Ok, I know I need to explain this.
What it comes down to is that when playing almost any Nintendo game on my PI, I use a USB SNES controller.
When playing The Legend of Zelda and it's squeal for NES, I would like to map the L and R buttons to represent a second controller.
One pressing "UP" and the other pressing "A".For those that don't know, this will pull the option to save the game without having to die.
I know I can make custom controller mappings and have them load per emulator or per ROM. I had to do this for my Sega games as I have a USB converted 6-button Genesis/Megadrive controller and it uses the same hardware ID as the SNES controller.
However a single controller act as two is not something I have had any luck finding information anything on. -
This is interesting. Are you using RetroArch?
If so, you should be able to change the Input 2 config to use the same device as player 1. Then you can map the controls for those inputs to those buttons.
I’ve had player 1,2,3 all mapped to the same controller before accidentally, and that was fun :-), but I’ve never thought about using it in this way.
-
Yep, I have lr-nestopia as my main, and if needed fecumm and quicknes as backups.
Any clues on exactly how to do this? I didn't see anything that was obvious.
Also keep in mind I intend to use this on a per-ROM bases. -
@nathan1031982 ok here we go. First I have either never heard of this trick or it is lost in the vast void of lost childhood memories. So thanks for this.
First launch the game (I’m in Nestopia) press “select + X” to enter RetroArch menu. It may enter you into the quick menu, if so back out to the main menu and select “settings”.
Select “Input”
Select “Input User 2 Binds”
Change “User 2 Device Index” to what ever controller you use for player 1. I use a wireless Xbox 360 pad, so I choose “Xbox 360 Wireless Receiver #1.
Scroll down and select “User 2 D-Pad Up”, when the prompt displays press the Left Shoulder button on Controller 1.
Scroll down and select “User 2 A”, when the prompt displays press the Right Shoulder button on Controller 1.
Back all the way out to the main menu and enter the Quick Menu. Scroll down (or just press up once) to “Save Game Overrides” and press A to save.
Exit the RetroArch menu with “Select + X”.
This should be done at this point but I am having some trouble getting the menu to show consistently. I find the best way to get the save screen to appear is by pressing the Left and Right shoulder buttons first, then pressing start.
Hope you get it to work. What a great little cheat.
UPDATE: I can enter the menu 100% after exiting and re-launching the game.
-
@chuckyp THANK YOU!
I had to edit the override file manually because of it not wanting to save the button configuration, however this was PERFECT!
Editing the file manually causes the menu to come up every time. I loaded it about 4 times without issue, and now I just need to copy the file and name it for each Zelda game/mod I have.If anyone is interested in my config file, you just have to save a game override and then edit the override file found in /configs/all/retroarch/"emulator"/"rom file name".cfg
change "emulator" to whatever core you are using and change "rom file name" to whatever the file name of the rom is that you want to configure.
Then just add the fallowing lines to map it to the shoulder buttons:
input_player2_joypad_index = "0"
input_device_p2 = "0"
input_player2_a_btn = "7"
input_player2_up_btn = "6"You will need to find change the button numbers to what they are on your own controller.
-
@nathan1031982 Looks good, glad you got it working. Mine wouldn't save either but I thought it was due to locking down all my configs manually.
I think you can remove the "input device p2 = 0" it does the same thing as the "input player 2 joypad index = 0 " command, but if it works as is, it's not a big deal.
-
I wasn't sure about that line as it looked to do the same thing, however when I pulled the lines from the main retroarch.cfg file, both lines were there so I put them both in "just in case."
Could be that the core looks at one line and retroarch looks at another, or that some lines found else-ware look for the other string.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.