RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Can I map a controller to act like some buttons would a second controller? [SOLVED]

    Scheduled Pinned Locked Moved Help and Support
    controllermapcontrollercontroller confcontroller helpcontroller map
    7 Posts 2 Posters 1.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Nathan1031982N
      Nathan1031982
      last edited by Nathan1031982

      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.

      1 Reply Last reply Reply Quote 0
      • C
        ChuckyP
        last edited by ChuckyP

        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.

        1 Reply Last reply Reply Quote 0
        • Nathan1031982N
          Nathan1031982
          last edited by Nathan1031982

          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.

          1 Reply Last reply Reply Quote 0
          • C
            ChuckyP
            last edited by ChuckyP

            @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.

            Nathan1031982N 1 Reply Last reply Reply Quote 0
            • Nathan1031982N
              Nathan1031982 @ChuckyP
              last edited by

              @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.

              C 1 Reply Last reply Reply Quote 0
              • C
                ChuckyP @Nathan1031982
                last edited by

                @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.

                1 Reply Last reply Reply Quote 0
                • Nathan1031982N
                  Nathan1031982
                  last edited by

                  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.

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  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.