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

    MD/Genesis 6 button controller

    Scheduled Pinned Locked Moved Help and Support
    emulationstaionretroarchcontroller cfg
    9 Posts 3 Posters 733 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.
    • N
      nicshoe18
      last edited by

      Sorry to have to bring this up again, slightly different issue. In 3.x using autoconfig in ES, all buttons on my 6 button controllers would register and map, but could not get them working in either pico or genesis plus gx (I will address the emulator part later). After the upgarde to 4.6, only 3 buttons register in autoconfig in ES and can't map the other 3 or mode buttons. Mapped up a working button combo to be able to pull up the retroarch quick menu via config file. Tried changing the config in retroarch and mapped the top 3 and mode buttons in core remap to see if I could get them to respond. Still nothing. What am I missing? Should I try another input driver? It's currently set to udev. Did the retrousb profile change?

      Pi Model or other hardware: 3 B rev 1.2
      Power Supply used: micro-usb
      RetroPie Version: 4.6
      Built From: Pre made SD Image on RetroPie website
      USB Devices connected: Retrousb genesis retrobox
      Controller used: oem genesis 6 button
      Guide used: retroarch core input remapping wiki
      File: /opt/retropie/configs/all/retroarch-joypads/'RetroUSB.com Genesis RetroBox.cfg'
      /opt/retropie/configs/all/retroarch-core-options.cfg
      Emulator: genesis plus gx

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

        If you test the controller via jstest, does it register the missing buttons ?

        1 Reply Last reply Reply Quote 1
        • N
          nicshoe18
          last edited by nicshoe18

          Didn't know about jstest, thanks! No, they do not show up. Lists the pad as having 4 buttons...

          Driver version is 2.1.0.
          Joystick (RetroUSB.com Genesis RetroBox) has 2 axes (X, Y)
          and 4 buttons (BtnA, BtnB, BtnC, BtnX).
          Testing ... (interrupt to exit)
          Axes:  0:     0  1:     0 Buttons:  0:off  1:off  2:off  3:off
          

          I also went looking for the autoconfig profile to see if I could pick another one or copy the six button inputs, but could not find it

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

            @nicshoe18 said in MD/Genesis 6 button controller:

            Lists the pad as having 4 buttons.

            That's probably why it's not detected correctly. I wonder what happened between the 2 version that makes it incompatible. Can you try the same test with evtest and see if anything comes different ?

            1 Reply Last reply Reply Quote 0
            • N
              nicshoe18
              last edited by nicshoe18

              Same, only 4 buttons registered/respond

              Input driver version is 1.0.1
              Input device ID: bus 0x3 vendor 0xf000 product 0x8 version 0x100
              Input device name: "RetroUSB.com Genesis RetroBox"
              Supported events:
                Event type 0 (EV_SYN)
                Event type 1 (EV_KEY)
                  Event code 304 (BTN_SOUTH)
                  Event code 305 (BTN_EAST)
                  Event code 306 (BTN_C)
                  Event code 307 (BTN_NORTH)
                Event type 3 (EV_ABS)
                  Event code 0 (ABS_X)
                    Value    128
                    Min        0
                    Max      255
                    Flat      15
                  Event code 1 (ABS_Y)
                    Value    128
                    Min        0
                    Max      255
                    Flat      15
                Event type 4 (EV_MSC)
                  Event code 4 (MSC_SCAN)
              

              Can I change the input_device in retroarch config file to something different and see if they pop up? And where I could find list of device names to test with?

              Second thought was to try and find the autoconfig profile and change it there. Ran a grep for the below, but didn't come up with anything. Not sure where I should be looking

              https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/udev/SEGA_Mega_Drive_Mini_6B_Controller.cfg

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

                @nicshoe18 said in MD/Genesis 6 button controller:

                Can I change the input_device in retroarch config file to something different and see if they pop up? And where I could find list of device names to test with?

                I don't think that will work - the only device appearing is the one you've been testing.

                Second thought was to try and find the autoconfig profile and change it there. Ran a grep for the below, but didn't come up with anything. Not sure where I should be looking

                I see only 2 profiles for RetroUSB devices (NES and SNES), but no MD. Even if such profile existed, RetroArch uses the same method to read the device's inputs (evdev/udev), so it won't make much of a difference.

                Try using an older release (4.4 or 4.5) and see if the gamepad gets detected. If you update the installation, then don't update the kernel packages.

                1 Reply Last reply Reply Quote 0
                • N
                  nicshoe18
                  last edited by

                  Ok here's where it gets weird. I found the hid profile, so I tried setting some things in the retroarch autoconfig. Not sure it's holding, but progress. When I run evtest, first run fresh reboot, XYZ and Mode will pop up as a D Pad input once and then nothing. Run evtest again and those buttons do not show up at all. But if I reboot the pi, run evtest again, I can get any one of those buttons to register once again. I have 2 6 button controllers and 2 ports with the same behavior. Think we can rule out hardware issue.

                  https://github.com/libretro/retroarch-joypad-autoconfig/blob/master/hid/RetroUSB_Genesis_Retroport.cfg

                  In /opt/retropie/configs/all/retroarch/autoconfig

                  input_device = "RetroUSB Genesis Retroport"
                  input_vendor_id = "61440"
                  input_product_id = "8"
                  input_driver = "hid"
                  

                  Running evtest:

                  No device specified, trying to scan all of /dev/input/event*
                  Not running as root, no devices may be available.
                  Available devices:
                  /dev/input/event0:	RetroUSB.com SNES RetroPort
                  /dev/input/event1:	RetroUSB.com Genesis RetroBox
                  Select the device event number [0-1]: 1
                  Input driver version is 1.0.1
                  Input device ID: bus 0x3 vendor 0xf000 product 0x8 version 0x100
                  Input device name: "RetroUSB.com Genesis RetroBox"
                  Supported events:
                    Event type 0 (EV_SYN)
                    Event type 1 (EV_KEY)
                      Event code 304 (BTN_SOUTH)
                      Event code 305 (BTN_EAST)
                      Event code 306 (BTN_C)
                      Event code 307 (BTN_NORTH)
                    Event type 3 (EV_ABS)
                      Event code 0 (ABS_X)
                        Value      0
                        Min        0
                        Max      255
                        Flat      15
                      Event code 1 (ABS_Y)
                        Value      0
                        Min        0
                        Max      255
                        Flat      15
                    Event type 4 (EV_MSC)
                      Event code 4 (MSC_SCAN)
                  Properties:
                  Testing ... (interrupt to exit)
                  Event: time 1592085889.214061, type 3 (EV_ABS), code 0 (ABS_X), value 128
                  Event: time 1592085889.214061, type 3 (EV_ABS), code 1 (ABS_Y), value 128
                  Event: time 1592085889.214061, -------------- SYN_REPORT ------------
                  

                  I'm slightly reluctant to rollback to a previous version just yet due to the thousand little minor tweaks I've done on this build. Any other hardcoding options? Considering I came from a pre-Stretch build if I do need to rollback, how far back should I go?

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

                    To me is looks like the gamepad is not correctly detected and configured by the OS - so no amount of configuration will make this work if the kernel doesn't properly detect it. Hence the suggestion to try and see if you have the same issues with an older build.

                    1 Reply Last reply Reply Quote 1
                    • disasterD
                      disaster @nicshoe18
                      last edited by

                      @nicshoe18

                      I had to add usbhid.quirks=0xf000:0x0008:0x100000 to /boot/cmdline.txt and then reboot to get jstest detect the missing buttons.

                      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.