Raspberry Pi 4

For information, Recalbox IS NOT compatible with Raspberry Pi 4 yet.
Pour information, Recalbox N'EST PAS encore compatible avec le Raspberry Pi 4.

The Recalbox Team.

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

  • Banned

    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.

  • Banned

    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"

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

  • Banned

    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.

  • Banned

    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 ?

  • @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 ?

  • Banned

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

  • Banned


    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 ?

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

  • Banned

    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.

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

  • Banned


    # 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 😉

  • @dragu so it's a pure ra problem

  • Banned

    Small chance that they resolve with newer version. 😉

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

  • Banned

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

  • @dragu they won't bother with a not up to date RA ...

  • Banned

    Perhaps, but the time that this story is trailing over the versions...
    Discussion in Retropie : https://github.com/RetroPie/RetroPie-Setup/issues/1798
    (The USB Socket toggeling remember Bells phone time with a lot of young ladies and electric plugs 😄 )
    and in the Retroarch Github I found the following about controllers :

    What I cannot find in our version is the definition : input_device_display_name,
    this is perhaps a possibility to distinct the twins ?

  • Banned

    May be one solution, if not resolved in new version to add usb port number in udev rules ? Like this you would have different device names.

  • @dragu what a pain

Want to support us ?