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

    Generic USB Arcade Controls with SNES + PSX?

    Scheduled Pinned Locked Moved Help and Support
    arcade controls
    18 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.
    • C
      csetera
      last edited by

      I've done a bit of searching and reading, but so far I haven't been able to figure out how to get my (generic USB) arcade controllers to control SNES or PSX games in my bartop arcade machine. The controls work great for MAME and I was able to configure XBOXDRV to allow the controllers to act as a keyboard for Daphne, but I'm not sure what to do with SNES or PSX. In both cases, it is as if the joystick is not "seen" at all. If I go into RGUI, I can see that the USB controller is recognized, but I'm guessing something needs to be done configuration wise. All my navigation within RGUI has to be done via keyboard.

      I have a generic Dragonrise USB controller with a digital arcade joystick (off of Amazon) and 10 arcade buttons. Is it possible to use that with SNES and PSX at all? Even if it is possible, I'm not sure how well the games will play with a digital joystick, but I'd love to get it going and find out.

      Alternatively, I have a Logitech F710 controller connected as well, which I could use... but not sure how to get SNES and PSX to use that controller instead of the arcade controls?

      Thanks for any tips or pointers.
      Craig

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

        @csetera said in Generic USB Arcade Controls with SNES + PSX?:

        In both cases, it is as if the joystick is not "seen" at all. If I go into RGUI, I can see that the USB controller is recognized, but I'm guessing something needs to be done configuration wise. All my navigation within RGUI has to be done via keyboard.

        Is the gamepad is configured for RetroArch ? When you configure your gamepad in EmulationStation, it should generate an configuration file for RetroArch, so the gamepad is recognized and configured when you start a libretro core. When you start RetroArch (through the snes/psx emulator cores), do you get a message that the controller is not-configured ?

        Add more info about your system, as detailed in https://retropie.org.uk/forum/topic/3/read-this-first.

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

          Thanks for responding. I will pull together the relevant information tonight.

          1 Reply Last reply Reply Quote 0
          • C
            csetera @mitu
            last edited by csetera

            @mitu I do see that both controllers are configured when starting a game. The read-this-first information:

            Pi Model or other hardware: Pi 4B - 4G RAN
            Power Supply used: Vilros Raspberry Pi 4 Compatible Power Supply with on/off switch
            RetroPie Version Used 4.6.1 - Latest updates
            Built From: Retropie Image for 4.6.0 (before initial release)
            USB Devices connected:

            • 046d:c21f Logitech, Inc. F710 Wireless Gamepad [XInput Mode]
            • 0079:0006 DragonRise Inc. PC TWIN SHOCK Gamepad

            Controller used: Attempting to use Arcade controls attached to DragonRise adapter
            Error messages received: N/A
            Log found in /dev/shm/runcommand.log (if relevant): https://pastebin.com/8YfWzkPn
            Guide used: N/A
            File: N/A
            Emulator: lr-pcsx_rearmed & lr-snes9x2010
            Attachment of config files: N/A - Specific configuration files available as it makes sense
            How to replicate the problem: Attempt to run emulated game with arcade controllers

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

              I see the gamepad(s) are detected

              
              [WARN] [udev]: Couldn't open any keyboard, mouse or touchpad. Are permissions set correctly for /dev/input/event*?
              [INFO] [udev]: Plugged pad: DragonRise Inc.   Generic   USB  Joystick   (121:6) on port #0.
              [INFO] [udev]: Pad #0 (/dev/input/event0) supports 0 force feedback effects.
              [INFO] [udev]: Plugged pad: Logitech Gamepad F710 (1133:49695) on port #1.
              [INFO] [udev]: Pad #1 (/dev/input/event1) supports force feedback.
              [INFO] [udev]: Pad #1 (/dev/input/event1) supports 16 force feedback effects.
              

              but I don't see loading of any auto-configuration profile for them.

              When you configure the gamepad in EmulationStation, a RetroArch auto-configuration profile is created for it in \\retropie\configs\all\retroarch-joypads. Can you check to see if you have those entries there ?

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

                Here's what I'm seeing:

                pi@retropie:/opt/retropie/configs/all/retroarch-joypads $ ls
                'DragonRise Inc.   Generic   USB  Joystick  .cfg'      'Logitech Gamepad F710.cfg'
                'DragonRise Inc.   Generic   USB  Joystick  .cfg.bak'  'Logitech Gamepad F710.cfg.bak'
                pi@retropie:/opt/retropie/configs/all/retroarch-joypads $ cat DragonRise\ Inc.\ \ \ Generic\ \ \ USB\ \ Joystick\ \ .cfg
                input_device = "DragonRise Inc.   Generic   USB  Joystick  "
                input_driver = "udev"
                input_enable_hotkey_btn = "6"
                input_l_btn = "2"
                input_load_state_btn = "2"
                input_select_btn = "6"
                input_r2_btn = "9"
                input_l_y_plus_axis = "+1"
                input_l_x_plus_axis = "+0"
                input_l2_btn = "8"
                input_l_x_minus_axis = "-0"
                input_r_btn = "5"
                input_save_state_btn = "5"
                input_l_y_minus_axis = "-1"
                input_y_btn = "1"
                input_x_btn = "0"
                input_menu_toggle_btn = "0"
                input_start_btn = "7"
                input_exit_emulator_btn = "7"
                input_b_btn = "4"
                input_reset_btn = "4"
                input_a_btn = "3"
                
                1 Reply Last reply Reply Quote 0
                • mituM
                  mitu Global Moderator
                  last edited by

                  Here's what I'm seeing: [..]

                  This looks ok - if you have the DragonRise .. controller as P1 - you can check in the RGUI - then it should work.
                  If you wish to use another controller as P1, you'll have to go into the RGUI and change the controls and choose in the Port 1 Binds the Logitech Gamepad as the device, then save the a remap file for the core (so all games for this system would use the Logitech as P1).

                  C 1 Reply Last reply Reply Quote 0
                  • C
                    csetera @mitu
                    last edited by

                    @mitu What I'm seeing is that the buttons on the Dragonrise are properly recognized, but the joystick is not. Is it possible to use a digital joystick with SNES and PSX emulators or will that not work? I could switch to the Logitech device for those emulators per your suggestion, but would prefer to be able to use the arcade joystick if possible.

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

                      Have you tried setting the Analog to Digital Type for the P1 controls ?

                      341a1afc-bfb7-450a-b25a-b80868cb57e3-image.png

                      C 1 Reply Last reply Reply Quote 0
                      • C
                        csetera @mitu
                        last edited by

                        @mitu Does that work for Digital -> Analog? I saw that option, but it looked like it was the reverse of what I needed.

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

                          @csetera No, it's actually exactly what you're trying to do - map an Analog controller to the RetroPad's D-Pad.

                          C 1 Reply Last reply Reply Quote 0
                          • C
                            csetera @mitu
                            last edited by

                            @mitu Is there a configuration key/value that I can set in

                            ./configs/snes/retroarch.cfg
                            
                            

                            to set that value properly? Does setting the value in RGUI set it at the emulator level or the game level?

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

                              @csetera As said before - you can change the settings from the RGUI, then save a core or game remap from the RGUI. This will save the .rmp configuration file to the configuration folder of the system you're configuring.
                              The configuration option is named input_player1_analog_dpad_mode (for P1), if you wish to add it to the retroarch.cfg, you can add a line with

                              input_player1_analog_dpad_mode=1
                              
                              C 1 Reply Last reply Reply Quote 0
                              • C
                                csetera @mitu
                                last edited by

                                @mitu said in Generic USB Arcade Controls with SNES + PSX?:

                                input_player1_analog_dpad_mode

                                I must be doing something wrong, but not sure what it would be. I updated the retroarch.cfg:

                                pi@retropie:~ $ cat /opt/retropie/configs/snes/retroarch.cfg
                                # Settings made here will only override settings in the global retroarch.cfg if placed above the #include line
                                
                                input_player1_analog_dpad_mode=1
                                input_remapping_directory = "/opt/retropie/configs/snes/"
                                
                                #include "/opt/retropie/configs/all/retroarch.cfg"
                                

                                Unfortunately, the joystick still didn't want to work. I see that config being read in the runcommand.log (pasted here: https://pastebin.com/B1Fj3kM5)

                                Thanks again for helping me out with this. I'm sure I'm missing something stupid.
                                Craig

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

                                  It depends on how you mapped your joystick. Can you post your controller .cfgfile, from \\retropie\configs\all\retroarch-joypads ?

                                  Do you have any game/core overrides present ? Have you tried changing the option from the RGUI ?

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

                                    Success!

                                    I'm not sure what I was doing wrong the first time I tried, but I was just able to get this working via RGUI for a PSX game. Do changes in one game via RGUI apply to all games for that core or does it need to be done for every game individually? Where do the values set in RGUI get stored?

                                    I just began the disassembly of my bartop build (long story), so I won't be able to do much with this until I get it put back together again. I really appreciate all of your help!

                                    Craig

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

                                      @csetera said in Generic USB Arcade Controls with SNES + PSX?:

                                      Do changes in one game via RGUI apply to all games for that core or does it need to be done for every game individually?

                                      Changes in the RGUI don't save by default, you'll need to save them somehow. In your case, as I said before, save a Core/Game remap and the configuration will be applied accordingly.

                                      Where do the values set in RGUI get stored?

                                      Remaps are saved in /opt/retropie/configs/<system>/<core name>.

                                      C 1 Reply Last reply Reply Quote 0
                                      • C
                                        csetera @mitu
                                        last edited by

                                        @mitu Thanks again for all of your help. After doing the single game remap, I took a look at the generated remap file. In there I found:

                                        input_player1_analog_dpad_mode = "1"
                                        

                                        On a whim, I tried that in the retroarch.cfg files for SNES and PSX and it worked. It appears that the value needed to be quoted and that you were otherwise correct. I'm glad to be able to set that at the core level and have it apply.

                                        Thanks again,
                                        Craig

                                        1 Reply Last reply Reply Quote 1
                                        • 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.