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

    The old multiple controller problem! Multiple Controller devices are equal on my Arcade cabinet.

    Scheduled Pinned Locked Moved Help and Support
    controllersemulationstatioesinput.cfg
    3 Posts 2 Posters 861 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.
    • HoraceAndSpiderH
      HoraceAndSpider
      last edited by

      Hi everyone,

      I've been doing quite a bit of digging around, but don't seem to be able to find a clear answer to my problem.

      I have build a cocktail arcade cabinet, with 4 controllers. The controller boards recognise as DragonRise Inc. Generic USB Joystick .

      Due to being an arcade cab, 2 of the controllers are orientated differently. On a game-by-game scenario, i resolve this with some custom control settings in a game-specfic retroarch config.

      For example, in 1941 one of the players is sitting the wrong way up, plus i am using the 'vertical' controllers, which are connected as input numbers '2' and '3' - so i fix the problem like this:

      input_player2_joypad_index = "3"
      input_player2_left_axis = "+0"
      input_player2_right_axis = "-0"
      input_player2_up_axis = "+1"
      input_player2_down_axis = "-1"
      

      The boards always connect in the same 'order' , so this works fine. I can even created strangely orientated controls for top-down games like Gauntlet, and this is all good.

      However, my problem comes with Emulation Station and navigation of the menu. I want to orientate the AXIS so that they match the movement of the option on screen. i.e. left/right movements will actually operation as 'up/down' etc , and be inverted on the opposite site.

      I've found some similar related topics such as:
      https://retropie.org.uk/forum/topic/6264/you-have-to-use-identical-controllers-for-multiplayer-games-please-prove-me-wrong
      and
      https://retropie.org.uk/forum/topic/2287/8bitdo-multiple-controllers-and-retroarch-cfg
      and
      https://www.raspberrypi.org/forums/viewtopic.php?t=126590

      However, it seems the GUID of all the devices is the same:

      pi@retropie:~ $ ./sdl2-joystick
      03000000790000000600000010010000 "DragonRise Inc.   Generic   USB  Joystick  " axes:5 buttons:12 hats:1 balls:0
      03000000790000000600000010010000 "DragonRise Inc.   Generic   USB  Joystick  " axes:5 buttons:12 hats:1 balls:0
      03000000790000000600000010010000 "DragonRise Inc.   Generic   USB  Joystick  " axes:5 buttons:12 hats:1 balls:0
      03000000790000000600000010010000 "DragonRise Inc.   Generic   USB  Joystick  " axes:5 buttons:12 hats:1 balls:0
      

      Which means i dont seem to be able to make the right modifications in es_input.cfg

      By the same token, the input_vendor_id and input_product_id appear the same:

      pi@retropie:~ $ sudo lsusb
      Bus 001 Device 010: ID 1ea7:0002  
      Bus 001 Device 009: ID 0079:0006 DragonRise Inc. PC TWIN SHOCK Gamepad
      Bus 001 Device 005: ID 05e3:0608 Genesys Logic, Inc. Hub
      Bus 001 Device 008: ID 0079:0006 DragonRise Inc. PC TWIN SHOCK Gamepad
      Bus 001 Device 007: ID 0079:0006 DragonRise Inc. PC TWIN SHOCK Gamepad
      Bus 001 Device 006: ID 0079:0006 DragonRise Inc. PC TWIN SHOCK Gamepad
      Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. Hub
      Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
      Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
      Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
      

      So... in short - is there any way i can make an adjustment to es_input.cfg or an EmulationStation specific retroarch.cfg which identifies purely by the index number (like input_player2_joypad_index = "3") and does not adversely affect the setup for everything else?

      All comments welcome!

      1 Reply Last reply Reply Quote 0
      • HoraceAndSpiderH
        HoraceAndSpider
        last edited by

        Just a guess that there is no solution to this issue then?

        S 1 Reply Last reply Reply Quote 0
        • S
          spud11 @HoraceAndSpider
          last edited by spud11

          @horaceandspider I've got an arcade cabinet using 4 Sanwa-style arcade joysticks that are recognised as Dragonrise. The only way I've been able to address this problem of differentiating between joysticks is to use meleu's joystick configurator together with Attract Mode (which allows very easy programming of joystick controls "outside" the game environment) and xboxdrv (for in game control).

          Basically, xboxdrv "ties" each joystick button/movement to keyboard inputs which have been set in Retroarch and also set in each non-Retroarch emulator (the key being that almost every emulator allows keyboard input). I then invoke xboxdrv via runcommand-onstart to start up the specific xboxdrv joystick configuration for that particular emulator. xboxdrv can even be used on a per-game basis, so it is very flexible.

          This works very well and basically bypasses the problem of differentiating between each joystick as the effect is that you are "using the keyboard" when moving the joystick or pressing a joystick button, whichever joystick it might be.

          However, I suspect it might prove to be quite a bit of work for you to set this up on an established system that is already devoted to emulationstation. You could achieve the same using emulationstation, leaving Attract Mode to one side, but I shifted over to Attract Mode about 2 years ago. Mediamogul is the guru on xboxdrv.

          RetroPie v4.4.1 • RPi3 Model B • 5.1V 2.5A PSU • 32GB SanDisk Extreme microSD • 2TB Toshiba Canvio Basics Portable USB 3.0 hard drive • 4 x DragonRise USB Arcade joysticks • 2 x TurboTwist spinners • 1 x USB trackball • 1 x PS4 wireless • 1 x 8BitDo Zero

          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.