Navigation

    Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Problems while building my arcade with - DragonRise Inc. Generic USB Joystick

    GamePad/GPIO/USB encoder
    while building arcade dragonrise inc
    5
    25
    13179
    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.
    • Tom Cenin
      Tom Cenin last edited by Nachtgarm

      I just build myself a arcade cabinet with 2x DragonRise Inc. Generic USB Joystick encoders.
      alt text
      I have bought them from Ali Express, but when i was try my cabinet for a test run i noticed that the controls where not working properly.

      Before i build in my controls in the cabinet i build-ed a mdf test-board, and then i worked fine.
      But now when i startup the Raspberry with Recalbox my controls where all hustled.

      And sure not playable. After reading the problems with Dragon Rise and Recal in the forum i decided to put some effort in fixing this and sharing it with others. The solution for the problem is connect all of the buttons on the same place on the mainbord of your PCB do this for player one and two, when you now configure the board in Emulationstation it works just fine.! Also i added an configuration to my input config of Retroarch (system\configs\retroarch\inputs\default.cfg)

      I added:

      input_device = "DragonRise Inc.   Generic   USB  Joystick"
      input_driver = "udev"
      input_vendor_id = 121
      input_product_id = 6
      
      #########
      
      input_x_btn = "0"
      input_a_btn = "1"
      input_b_btn = "2"
      input_y_btn = "3"
      input_l_btn = "4"
      input_r_btn = "5"
      input_l2_btn = "6"
      input_r2_btn = "7"
      input_select_btn = "8"
      input_start_btn = "9"
      input_l3_btn = "10"
      input_r3_btn = "11"
      
      input_up_btn = "h0up"
      input_down_btn = "h0down"
      input_left_btn = "h0left"
      input_right_btn = "h0right"
      input_l_x_plus_axis = "+0"
      input_l_x_minus_axis = "-0"
      input_l_y_plus_axis = "+1"
      input_l_y_minus_axis = "-1"
      input_r_x_plus_axis = "+2"
      input_r_x_minus_axis = "-2"
      input_r_y_plus_axis = "+3"
      input_r_y_minus_axis = "-3"
      
      #########
      
      input_x_btn_label = "1"
      input_a_btn_label = "2"
      input_b_btn_label = "3"
      input_y_btn_label = "4"
      input_l_btn_label = "L"
      input_r_btn_label = "R"
      input_l2_btn_label = "L2"
      input_r2_btn_label = "R2"
      input_select_btn_label = "Select"
      input_start_btn_label = "Start"
      input_l3_btn_label = "L3"
      input_r3_btn_label = "R3"
      
      input_up_btn_label = "D-Pad Up"
      input_down_btn_label = "D-Pad Down"
      input_left_btn_label = "D-Pad Left"
      input_right_btn_label = "D-Pad Right"
      input_l_x_plus_axis_label = "Left Analog X+"
      input_l_x_minus_axis_label = "Left Analog X-"
      input_l_y_plus_axis_label = "Left Analog Y+"
      input_l_y_minus_axis_label = "Left Analog Y-"
      input_r_x_plus_axis_label = "Right Analog X+"
      input_r_x_minus_axis_label = "Right Analog X-"
      input_r_y_plus_axis_label = "Right Analog Y+"
      input_r_y_minus_axis_label = "Right Analog Y-"
      

      I hope this will help people!

      1 Reply Last reply Reply Quote 0
      • Substring
        Substring last edited by

        A few things :

        • dragonrise has many variants but most of them have the same name
        • it works on a test panel, but not in your cab ? You must have missed something
        • the retroarch input cfg is how lakka works, but not recalbox, that feature is disabled by default

        I'm sure there was a much easier solution to your problem ...

        Former dev - Please reply with @substring so that i am notified when you answer me
        Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

        1 Reply Last reply Reply Quote 0
        • Nachete
          Nachete last edited by

          Good afternoon friends .

          I do not know if there is a solution or not but I have the same problem with two delayzero or dragonise ,,,, if I only have one the configuration is not lost in and the retroarch is gardado correctly but with two is already another story and I do not know why are of the same name I do not know how to do that recalbox independently save the configuration in recalbox for each player then allow me to make the configurations in retroarch as I only with a player .. well if it is so and give me a hand I would appreciate it because, yes I have to reprogram some command in the switchboard would be great to know which is thanks.

          Substring 1 Reply Last reply Reply Quote 0
          • Substring
            Substring @Nachete last edited by

            @nachete have you searched the forum at least ?

            Former dev - Please reply with @substring so that i am notified when you answer me
            Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

            1 Reply Last reply Reply Quote 0
            • Dragu
              Dragu Banned last edited by Dragu

              I had no problems with 2 dragonrise, for the configuration I just connect my buttons 1,2,3,4 and so on. Same way for both encoder. It seems that retroarch choose by itself player 1 and 2, so possible inverted USB connections. They should be Number 1 and 2 on the raspberry, they are the 2 middle USB connectors on the board.
              Impossible to map Player 2 buttons as additional buttons to Player 1. In Dosbox it is possible and necessary.
              I also tried to use an additional control (PS3 + Wlan-Stick) together with dragonrise Player 1. Retroarch ignore and continues just without PS3.
              But perhaps newer versions have other behavior.

              1 Reply Last reply Reply Quote 0
              • Dragu
                Dragu Banned last edited by Dragu

                @Substring
                I must come back to this because I have with my 2 Dragonrise now the same issue in Retroarch.
                When I look into Settings - Input - Input User 2Binds - User 2 Device Index he show me same as for User 1 : Dragonrise Generic USB Joystick (#0) and no #1, even as in emulation station and in retroarchcustom.cfg they are both defined.
                Anyway in Dos everything work fine, but just first controller usable in Retroarch.

                joypad_autoconfig_dir = "~/configs/retroarch/inputs/"
                input_joypad_driver = "udev"
                input_player1_analog_dpad_mode = "0"
                input_player2_analog_dpad_mode = "0"
                input_enable_hotkey_btn = "8"
                input_enable_hotkey = "escape"
                menu_swap_ok_cancel_buttons = "true"
                input_player1_left_axis = "-0"
                input_state_slot_increase_axis = "-3"
                input_player1_down_axis = "+3"
                input_rewind_axis = "-0"
                input_player1_r_btn = "5"
                input_state_slot_decrease_axis = "+3"
                input_player1_select_btn = "10"
                input_player1_start_btn = "9"
                input_player1_y_btn = "0"
                input_screenshot_btn = "2"
                input_player1_right_axis = "+0"
                input_player1_a_btn = "4"
                input_player1_l_btn = "2"
                input_player1_x_btn = "1"
                input_load_state_btn = "1"
                input_save_state_btn = "0"
                input_reset_btn = "4"
                input_hold_fast_forward_axis = "+0"
                input_player1_up_axis = "-3"
                input_exit_emulator_btn = "9"
                input_player1_b_btn = "3"
                input_menu_toggle_btn = "3"
                input_player1_joypad_index = "0"
                input_player2_r_btn = "5"
                input_player2_a_btn = "4"
                input_player2_right_axis = "+0"
                input_player2_start_btn = "9"
                input_player2_up_axis = "-3"
                input_player2_y_btn = "0"
                input_player2_select_btn = "10"
                input_player2_l_btn = "2"
                input_player2_b_btn = "3"
                input_player2_left_axis = "-0"
                input_player2_down_axis = "+3"
                input_player2_x_btn = "1"
                input_player2_joypad_index = "1"
                video_scale_integer = "false"
                input_libretro_device_p2 = "1"
                fps_show = "false"
                input_libretro_device_p1 = "1"
                

                In the Libreto Github they write :

                Note that the linux kernel driver for this controller was broken from

                kernel 4.4 until 4.9. With the broken driver the joystick axes

                numbers will be off. This can be fixed by reverting commit

                18339f59c3a6698ee17d32970c9e1e450b16e7c3 and rebuilding hid-dr.ko.

                input_driver = "udev"
                input_vendor_id = 121
                input_product_id = 6
                input_device = "DragonRise Inc. Generic USB Joystick "
                input_device_display_name = "DragonRise generic DualShock gamepad"

                Substring 1 Reply Last reply Reply Quote 0
                • Substring
                  Substring @Dragu last edited by

                  @dragu still have my 4.9 pi3 kernel.image ? 😉

                  Former dev - Please reply with @substring so that i am notified when you answer me
                  Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                  1 Reply Last reply Reply Quote 0
                  • Dragu
                    Dragu Banned last edited by

                    @Substring
                    Cela me semble un problème pur de Retroarch ou de la version. Retroarch semble incapable de mapper des devices physiques à des joueurs distincts. Dans des jeux comme Mario World on peut utiliser le controleur sélectionné, mais pas le choisir, comme Retroarch le regarde comme seul et unique. Résultat : Il faut éventuellement changer les fiches USB, un joueur seul devra toujours jouer la même console, on oublit les tables de salon multiplace, et de même un controlleur supplémentaire sans fil pour le joueur 1. Tout cela un petit peu programmé avec les pieds et la bouche.

                    1 Reply Last reply Reply Quote 0
                    • Dragu
                      Dragu Banned last edited by Dragu

                      @Substring
                      This issue from Retroarch that it is unable to distinct 2 joysticks with the same name, basing just on udev, and that this error is from 2014 on, now 4 years, is somewhere a failure and for me difficult to stand even for a licence free software. As so many people has the problem, in Lakka, in Retropie, in Recalbox and other.
                      Is there still something happening with Retroarch, or they switched off the light ?

                      Substring 1 Reply Last reply Reply Quote 0
                      • Substring
                        Substring @Dragu last edited by

                        @dragu retroarch does constantly move, indeed. They released 1.7.1 a few days ago. I have no idea if your bug has been submitted, but that would mean that people owning 2 ps3 pads would face the same problem ...

                        Have you tried the sdl2 input driver ?

                        Former dev - Please reply with @substring so that i am notified when you answer me
                        Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                        1 Reply Last reply Reply Quote 0
                        • Dragu
                          Dragu Banned last edited by Dragu

                          @Substring
                          I also messed around with sdl2, nothing changed. So this seems always a problem when you have 2 wired clone controllers. In game, the cores use both, but in Retroarch you cannot change the user assignement. As example very strange behavior in the Retroarch Menu interface.
                          Settings --> Input --> User 1 Bind --> User 1 Device Index. In my case you can circle the options between : Dragonrise #0, Port #2, Port #3, Port #4, Disabled.
                          You have seen that Port #1 is missing, so he just on USB ports, ignoring your nice ES, this from Retropie and Lakka.
                          But worse, if you circle second time on Dragonrise #0, he pass the handle to your second controller and you must now continu in the Retroarch Menu with User 2.
                          Nice Bullshit. 😉

                          1 Reply Last reply Reply Quote 0
                          • Dragu
                            Dragu Banned last edited by Dragu

                            @Substring

                            I found something interesting with dmesg :

                            login as: root
                            root@Recalbox's password:
                            #
                            # dmesg | grep DragonRise
                            [    1.923431] usb 1-1.2: Manufacturer: DragonRise Inc.
                            [    2.123462] usb 1-1.3: Manufacturer: DragonRise Inc.
                            [    2.613596] input: DragonRise Inc.   Generic   USB  Joystick   as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:0079:0006.0001/input/input0
                            [    2.613853] dragonrise 0003:0079:0006.0001: input,hidraw0: USB HID v1.10 Joystick [DragonRise Inc.   Generic   USB  Joystick  ] on usb-3f980000.usb-1.2/input0
                            [    2.615054] input: DragonRise Inc.   Generic   USB  Joystick   as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:0079:0006.0002/input/input1
                            [    2.615295] dragonrise 0003:0079:0006.0002: input,hidraw1: USB HID v1.10 Joystick [DragonRise Inc.   Generic   USB  Joystick  ] on usb-3f980000.usb-1.3/input0
                            #
                            
                            

                            Is there an error in the last line and position, should it not be input 1 instead of input 0 ?

                            Substring 1 Reply Last reply Reply Quote 0
                            • Substring
                              Substring @Dragu last edited by Substring

                              @dragu should compare with 2 xinmos. I believe it's normal when a controller handles a single player

                              As long as they are mapped on separate /dev/input/eventX

                              Former dev - Please reply with @substring so that i am notified when you answer me
                              Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                              1 Reply Last reply Reply Quote 0
                              • Dragu
                                Dragu Banned last edited by

                                @Substring
                                I totaly agree with you that 1 controller handles a single player. But here he just forget controller #1. So I think that you should be able to map controller #0 to all possible players, with controller #1 (not existing) should be the same.
                                If I now define in Retroarch Menu, that Player 1 is not existing, after this he map the controller #0 to Player 2, also in game.

                                Substring 1 Reply Last reply Reply Quote 0
                                • Substring
                                  Substring @Dragu last edited by

                                  @dragu do your encoders respond on separate events when you try evtest ?

                                  Former dev - Please reply with @substring so that i am notified when you answer me
                                  Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                  1 Reply Last reply Reply Quote 0
                                  • Dragu
                                    Dragu Banned last edited by

                                    @Substring
                                    Absolutely

                                    # evtest
                                    No device specified, trying to scan all of /dev/input/event*
                                    Available devices:
                                    /dev/input/event0:      DragonRise Inc.   Generic   USB  Joystick
                                    /dev/input/event1:      DragonRise Inc.   Generic   USB  Joystick
                                    /dev/input/event2:      1byone Keyboard
                                    Select the device event number [0-2]:
                                    

                                    and he even dont forget my keyboard 😉

                                    Substring 1 Reply Last reply Reply Quote 0
                                    • Substring
                                      Substring @Dragu last edited by

                                      @dragu so it's a pure ra problem

                                      Former dev - Please reply with @substring so that i am notified when you answer me
                                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                      1 Reply Last reply Reply Quote 0
                                      • Dragu
                                        Dragu Banned last edited by

                                        @Substring
                                        Small chance that they resolve with newer version. 😉

                                        Substring 1 Reply Last reply Reply Quote 0
                                        • Substring
                                          Substring @Dragu last edited by

                                          @dragu have you checked their github to see if an issue points at your problem ?

                                          Former dev - Please reply with @substring so that i am notified when you answer me
                                          Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                          1 Reply Last reply Reply Quote 0
                                          • Dragu
                                            Dragu Banned last edited by

                                            @Substring
                                            Not yet deep inside. Just find traces everywhere. So I will collect. We have 1.6.9 so that's important also.

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

                                            Want to support us ?

                                            79
                                            Online

                                            87.8k
                                            Users

                                            25.8k
                                            Topics

                                            178.7k
                                            Posts

                                            Copyright © 2021 recalbox.com