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

    Easyget Zero Delay Encoder won't work on Pi 4

    Scheduled Pinned Locked Moved Help and Support
    pi 4 8gbzero delay usb
    9 Posts 4 Posters 2.0k 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.
    • J
      jpb
      last edited by

      Pi Model or other hardware: Raspberry Pi 4 8GB Model B with 1.5GHz 64-bit quad-core CPU
      Power Supply used: CanaKit USB-C PiSwitch
      RetroPie Version Used: 4.7.15
      Built From: Raspberry Pi Imager v1.6.1
      USB Devices connected: Easyget LED Arcade DIY Parts 2x Zero Delay USB Encoder + 2x 8 Way Joystick + 20x LED Illuminated Push Buttons
      Controller used: PS4 Controller
      Error messages received: N/A
      Verbose log (if relevant): N/A
      Guide used: N/A

      I'm having issues getting an Easyget Zero Delay USB encoder to work on a Raspberry Pi 4 running Retropie v4.7.15.

      Once mapped in Emulation Station, the joystick and buttons work fine to navigate the Retropie menus but don't function in games; it's as if they've all been disabled.

      What's strange is that I can take the controller, plug it into a Pi 3 B+ (also running Retropie 4.7.15), run that same rom as above, and it works fine.

      Any help would be greatly appreciated.

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

        @jpb said in Easyget Zero Delay Encoder won't work on Pi 4:

        Once mapped in Emulation Station, the joystick and buttons work fine to navigate the Retropie menus but don't function in games; it's as if they've all been disabled.

        Which games/emulator are you testing ? Are you sure the encoder's inputs aren't detected as P2/P3 - the PS4 controller being P1 - and they're not active ?

        J 1 Reply Last reply Reply Quote 0
        • J
          jpb @mitu
          last edited by

          @mitu Thanks for the reply. I'm using Galaga under NES to test. By P2/P3 are you referring to the USB ports? if so, the encoder is plugged into port 0, the PS4 is in port 2 and a keyboard is in port 3. I will eventually plug the 2nd encoder into port 1, but thought it best not to complicate things until I get one player working. I am new to this so I may have missed something simple.

          Thanks again for helping.

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

            I'm using Galaga under NES to test. By P2/P3 are you referring to the USB ports?

            No, I was referring to P(layer)2/P(layer)3 in-game. One gamepad is mapped to one player so the 1st gamepad becomes P1, 2nd one P2, etc. If the PS4 controller is the 1st detected controller, it will be mapped as P1, so the encoder might be P2 etc.

            if so, the encoder is plugged into port 0, the PS4 is in port 2 and a keyboard is in port 3.

            The USB port order does not guarantee the same order for gamepad detection in the emulator, so it might be that the encoder can be P2.
            When you start a game, the emulator (RetroArch) will show the detected and configured controllers - it should show the PS4 controller and the encoder also - do you get the detection message on game start ?

            J 1 Reply Last reply Reply Quote 0
            • J
              jpb @mitu
              last edited by

              @mitu Thanks for the explanation on how USB port order works. Yes, RetroArch does see both controllers. I went into the configuration editor and set the encoder to port 0. Still, I can launch a game by hitting the "A" button on the encoder, but once the game loads not of the buttons or joystick work.

              IMG_1214.jpg IMG_1213.jpg

              H ClydeC 2 Replies Last reply Reply Quote 0
              • H
                helloThere @jpb
                last edited by helloThere

                @jpb If the joysticks are detected and work in emulationstation, then it might just be a matter of remapping the controls on your arcade controls to work with your game/emulator.

                You can use the retroarch menu to remap your controls, if you are using a liberto emulator (emulators that start with lr-). Use the Hotkey + X buttons to access the retroarch menu. Here's the doc's page on controls remapping: https://retropie.org.uk/docs/RetroArch-Configuration/#core-input-remapping

                It might just be Galaga/NES that don't work with how the controls are configured. I'd reccomend using a few different games from different systems to test your controls (NES, Atari, SNES, etc).

                J 1 Reply Last reply Reply Quote 0
                • ClydeC
                  Clyde @jpb
                  last edited by Clyde

                  @jpb You could try @meleu's joystick selection script. It lets you assign controllers to players. Maybe they are not assigned correctly.

                  J 1 Reply Last reply Reply Quote 0
                  • J
                    jpb @helloThere
                    last edited by

                    @hellothere THANK YOU for all your help!!

                    I was able to get this to work by manually modifying the /opt/retropie/configs/all/retroarch.cfg file.

                    This is how the zero delay encoder was mapped for Player 1 by emulationstation:

                    #input_player1_b_btn = 3
                    #input_player1_y_btn = 0
                    #input_player1_select_btn = 7
                    #input_player1_start_btn = 6
                    #input_player1_up_axis = -1
                    #input_player1_down_axis = +1
                    #input_player1_left_axis = -0
                    #input_player1_right_axis = +0
                    #input_player1_a_btn = 4
                    #input_player1_x_btn = 1
                    #input_player1_l_btn = 2
                    #input_player1_r_btn = 5

                    I remapped it as follows and it started working.

                    input_player1_b = "z"
                    input_player1_y = "a"
                    input_player1_x = "s"
                    input_player1_start = "enter"
                    input_player1_select = "rshift"
                    input_player1_l = "q"
                    input_player1_r = "w"
                    input_player1_left = "left"
                    input_player1_right = "right"
                    input_player1_up = "up"
                    input_player1_down = "down"

                    I did check retroarch.cfg override files in the /configs/SYSTEMNAME and /roms/SYSTEMNAME directories and they were untouched from the defaults.

                    Mind you, I've not tested this in anything but nes/galaga. I will post in this thread if I find anything that may be beneficial for others

                    thank you again!

                    1 Reply Last reply Reply Quote 2
                    • J
                      jpb @Clyde
                      last edited by

                      @clyde

                      Thanks, yea I did try that as well as "joystick order" in the Configuration Editor. I believe both of these set:

                      6a766ae2-7b8d-4ccc-9ea0-57399168c6c3-image.png input_player1_joypad_index = "0"
                      input_player2_joypad_index = "1"In the retroarch.cfg file.

                      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.