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

    How to set 2 joysticks to control Play1 at the same time, and can set combo?

    Scheduled Pinned Locked Moved Help and Support
    joysticks
    9 Posts 2 Posters 673 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.
    • L
      Lilyandy
      last edited by Lilyandy

      How to set 2 joysticks to control Play1 at the same time, and can set combo?

      Pi Model or other hardware: 4B 2G+8G
      Power Supply used: Piboy DMG Kit *2
      RetroPie Version Used (eg 3.6, 3.8.1, 4.1 - do not write latest): v4.8
      Built From: RetroPie HomePage
      USB Devices connected: PS1 *2 joysticks
      Controller used: N/A
      Error messages received: N/A
      Verbose log (if relevant): N/A
      Guide used: N/A
      File: N/A
      Emulator: NeoGeo
      Attachment of config files: N/A
      How to replicate the problem:

      please~~
      My host is Piboy DMG,
      I want to connect two external joysticks, Play1 + Play2,
      But I want Piboy DMG built-in joystick and external Play1 joystick to control Play1 together,
      The Play2 is another Play2 joystick, the joystick is PS1 specification.

      Because when I set up the two joysticks, I also set the "Combo" button, the Play1/2 joysticks can be sure to combo, but the built-in joystick of Piboy DMG can be controlled but cannot be combo.

      S__29237252-1_1_1.jpg

      How should I set it up? thank you all.

      L 1 Reply Last reply Reply Quote 0
      • L
        Lilyandy @Lilyandy
        last edited by

        @Lilyandy

        After researching for a long time, I found a way to install the kit to manage the sequence of controllers, but the disadvantage is that it can only be specified in sequence, but it cannot be set that a single user can use 2 controllers at the same time. It seems that the method may be unsolvable? I wonder if there are other ways?
        2022-08-04_151404.png

        Also, the kit I installed is this:
        git clone https://github.com/meleu/RetroPie-joystick-selection
        cd RetroPie-joystick-selection
        bash install.sh

        But I can't directly execute the kit, I have to use the following command to enter the function...
        bash install.sh

        I can't set the progress with this command. I don't know why?
        sudo ~/RetroPie-Setup/retropie_setup.sh

        1 Reply Last reply Reply Quote 0
        • mituM
          mitu Global Moderator
          last edited by

          It's not possible to use the 2 joysticks for the same P1 with any settings in RetroPie (or the joystick selection utility).
          You can try to use something like https://sourceforge.net/projects/linuxjoymap/, but it's a bit more complicated to install and set-up.

          L 1 Reply Last reply Reply Quote 0
          • L
            Lilyandy @mitu
            last edited by Lilyandy

            @mitu

            Thank you!

            So, please, is there any other way to solve this problem?

            First, when installing additional 2 controllers, set the action of the external 2 controllers,
            It also works fine (Play1+Play2), but the default device controller is set to Play3.
            However, when the 2 extra controllers are removed, the pre-installed device controller goes back to Play1 from Play3, is this possible? Thank you! ^^

            The current situation is that when the 2 extra controllers are removed, the pre-installed device controller is returned from Play3 to Play1, but the settings are invalid, for example:
            input_player1_turbo_btn = "2"
            input_player2_turbo_btn = "2"
            When two controllers are connected, all buttons 2 can be fired continuously!
            But after removing the 2 controllers, although the default controller takes back the control of Play1, it cannot be fired continuously!

            1 Reply Last reply Reply Quote 0
            • mituM
              mitu Global Moderator
              last edited by

              @Lilyandy said in How to set 2 joysticks to control Play1 at the same time, and can set combo?:

              However, when the 2 extra controllers are removed, the pre-installed device controller goes back to Play1 from Play3, is this possible? Thank you! ^^

              I don't think it's possible with the joystick selection script. You may have to remove the configuration to get back to the previous state.

              The current situation is that when the 2 extra controllers are removed, the pre-installed device controller is returned from Play3 to Play1, but the settings are invalid, for example:
              input_player1_turbo_btn = "2"
              input_player2_turbo_btn = "2"

              It's normal, since different gamepad models have different button numbers, where are these settings you mentioned ?

              L 1 Reply Last reply Reply Quote 0
              • L
                Lilyandy @mitu
                last edited by mitu

                @mitu
                Including the preset controllers, there are three controllers in total, of which the two extended controllers are of the same model. This is its setting file:
                es_input.cfg

                <?xml version="1.0"?>
                <inputList>
                  <inputAction type="onfinish">
                    <command>/opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh</command>
                  </inputAction>
                  <inputConfig type="joystick" deviceName="PiBoy DMG Controller" deviceGUID="15000000010000000100000000010000">
                    <input name="pageup" type="button" id="5" value="1"/>
                    <input name="up" type="button" id="12" value="1"/>
                    <input name="left" type="button" id="13" value="1"/>
                    <input name="select" type="button" id="8" value="1"/>
                    <input name="leftanalogdown" type="axis" id="1" value="1"/>
                    <input name="leftanalogright" type="axis" id="0" value="1"/>
                    <input name="right" type="button" id="14" value="1"/>
                    <input name="leftanalogleft" type="axis" id="0" value="-1"/>
                    <input name="pagedown" type="button" id="2" value="1"/>
                    <input name="leftanalogup" type="axis" id="1" value="-1"/>
                    <input name="y" type="button" id="4" value="1"/>
                    <input name="x" type="button" id="3" value="1"/>
                    <input name="down" type="button" id="11" value="1"/>
                    <input name="start" type="button" id="9" value="1"/>
                    <input name="b" type="button" id="1" value="1"/>
                    <input name="a" type="button" id="0" value="1"/>
                  </inputConfig>
                  <inputConfig type="joystick" deviceName="Microntek USB Joystick " deviceGUID="03000000790000000600000010010000">
                    <input name="rightanalogup" type="axis" id="3" value="-1"/>
                    <input name="pageup" type="button" id="4" value="1"/>
                    <input name="rightanalogdown" type="axis" id="3" value="1"/>
                    <input name="up" type="hat" id="0" value="1"/>
                    <input name="left" type="hat" id="0" value="8"/>
                    <input name="select" type="button" id="8" value="1"/>
                    <input name="rightanalogleft" type="axis" id="2" value="-1"/>
                    <input name="leftanalogdown" type="axis" id="1" value="1"/>
                    <input name="leftanalogright" type="axis" id="0" value="1"/>
                    <input name="right" type="hat" id="0" value="2"/>
                    <input name="leftanalogleft" type="axis" id="0" value="-1"/>
                    <input name="rightanalogright" type="axis" id="2" value="1"/>
                    <input name="pagedown" type="button" id="5" value="1"/>
                    <input name="leftanalogup" type="axis" id="1" value="-1"/>
                    <input name="y" type="button" id="3" value="1"/>
                    <input name="x" type="button" id="0" value="1"/>
                    <input name="down" type="hat" id="0" value="4"/>
                    <input name="start" type="button" id="9" value="1"/>
                    <input name="b" type="button" id="2" value="1"/>
                    <input name="a" type="button" id="1" value="1"/>
                  </inputConfig>
                </inputList>
                

                This is the configuration file of the external controller: (both are the same, no extra control file)
                Microntek USB Joystick .cfg

                input_device = "Microntek USB Joystick"
                input_driver = "udev"
                input_enable_hotkey_btn = "8"
                input_r3_btn = "11"
                input_r_y_minus_axis = "-3"
                input_l_btn = "4"
                input_load_state_btn = "4"
                input_r_y_plus_axis = "+3"
                input_up_btn = "h0up"
                input_left_btn = "h0left"
                input_state_slot_decrease_btn = "h0left"
                input_select_btn = "8"
                input_r2_btn = "7"
                input_r_x_minus_axis = "-2"
                input_l_y_plus_axis = "+1"
                input_l_x_plus_axis = "+0"
                input_right_btn = "h0right"
                input_state_slot_increase_btn = "h0right"
                input_l2_btn = "6"
                input_l_x_minus_axis = "-0"
                input_r_x_plus_axis = "+2"
                input_l3_btn = "10"
                input_r_btn = "5"
                input_save_state_btn = "5"
                input_l_y_minus_axis = "-1"
                input_y_btn = "3"
                input_x_btn = "0"
                input_menu_toggle_btn = "0"
                input_down_btn = "h0down"
                input_start_btn = "9"
                input_exit_emulator_btn = "9"
                input_b_btn = "2"
                input_reset_btn = "2"
                input_a_btn = "1"
                

                This is the default built-in controller profile:

                input_device = "PiBoy DMG Controller"
                input_driver = "udev"
                input_enable_hotkey_btn = "8"
                input_l_btn = "5"
                input_load_state_btn = "5"
                input_up_btn = "12"
                input_left_btn = "13"
                input_state_slot_decrease_btn = "13"
                input_select_btn = "8"
                input_r2_btn = "6"
                input_l_y_plus_axis = "+1"
                input_l_x_plus_axis = "+0"
                input_right_btn = "14"
                input_state_slot_increase_btn = "14"
                input_l2_btn = "7"
                input_l_x_minus_axis = "-0"
                input_l3_btn = "10"
                input_r_btn = "2"
                input_save_state_btn = "2"
                input_l_y_minus_axis = "-1"
                input_y_btn = "4"
                input_x_btn = "3"
                input_menu_toggle_btn = "3"
                input_down_btn = "11"
                input_start_btn = "9"
                input_exit_emulator_btn = "9"
                input_b_btn = "1"
                input_reset_btn = "1"
                input_a_btn = "0"
                

                I finally found the problem~~~~~~! Thanks a lot for the tip!
                I tried writing game.zip.cfg as:

                input_player1_turbo_btn = "1"
                input_player1_turbo_btn = "2"
                input_player2_turbo_btn = "2"
                

                In this way, when the preset controller is unique, it can be launched normally and continuously!
                But... after connecting two external controllers...
                Play1 has become A and B keys have become continuous launch... (A key continuous launch will become troublesome),
                Haha... It looks like... Every time you install or uninstall the controller, you have to change the control file again... Maybe there is no solution... It seems that you can only use this troublesome parameter:

                input_shader_next = "5" (L key)
                

                Press L+1 autofire at the same time and then release the L key, and keep pressing the 1 key to achieve the autofire effect.
                But as long as you miss it, you have to start all over again... It's so troublesome~~~

                Wait a moment? Seems like there is a way? ?
                If I set it like this: (for 1,2,3,4,L,R keys)
                Microntek USB Joystick .cfg

                input_device = "Microntek USB Joystick"
                input_r_btn = "5"
                input_l_btn = "4"
                input_y_btn = "3"
                input_x_btn = "0"
                input_b_btn = "2"
                input_a_btn = "1"
                

                This is the default built-in controller profile: (for A,B,X,Y,Z,C keys)

                input_device = "PiBoy DMG Controller"
                input_l_btn = "5"
                input_r_btn = "2"
                input_y_btn = "4"
                input_x_btn = "3"
                input_b_btn = "1"
                input_a_btn = "0"
                

                2022-08-05_082201.png

                It seems...or change the default controller to be as consistent as possible with the external controller. @@"

                1 Reply Last reply Reply Quote 0
                • mituM
                  mitu Global Moderator
                  last edited by

                  Try adding the turbo button binding to the controllers' auto-configuration profile, i.e. using the .cfg files
                  Microntek USB Joystick .cfg:

                  input_device = "Microntek USB Joystick"
                  input_driver = "udev"
                  ...
                  input_turbo_btn = 2
                  

                  and in PiBoy DMG Controller.cfg:

                  input_device = "PiBoy DMG Controller"
                  input_driver = "udev"
                  ...
                  input_turbo_btn = 1
                  

                  Note that if you re-configure the controller in EmulationStation, the .cfg file is overwritten.

                  L 1 Reply Last reply Reply Quote 0
                  • L
                    Lilyandy @mitu
                    last edited by Lilyandy

                    @mitu
                    Wow! grateful! I try to see how it works? ^^"

                    Ah~~~ just tried adding it in PiBoy DMG Controller.cfg
                    input_device = "PiBoy DMG Controller"
                    input_driver = "udev"
                    ...
                    input_turbo_btn = 1 or input_turbo_btn = "1"

                    But none of them have the expected effect, it seems that it may not work? XD

                    mituM 1 Reply Last reply Reply Quote 0
                    • mituM
                      mitu Global Moderator @Lilyandy
                      last edited by

                      @Lilyandy said in How to set 2 joysticks to control Play1 at the same time, and can set combo?:

                      input_turbo_btn = 1 or input_turbo_btn = "1"
                      But none of them have the expected effect, it seems that it may not work? XD

                      Eh, it was worth a shot.

                      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.