I recently got a controller from 8BitDo that has an extra pair of triggers and two extra face buttons for screenshots or whatever you want really. Issue is, not only do do my emulators not recognize these buttons, but is seems Linux Mint doesn’t know they exist at all. Even bringing up a program to map buttons to keys doesn’t show any input when those buttons are pressed. Does anyone know how to make these buttons recognizable? They’d be really helpful for toggling fast forward on games with long loading screens for instance or just resetting the system on a whim.

  • RamRabbit@lemmy.world
    link
    fedilink
    English
    arrow-up
    17
    ·
    edit-2
    24 hours ago

    Install and run jstest-gtk (It’s in the software manager). In the GUI, select your gamepad and you will see a list of buttons/axies that light up when they are used. If it is showing up in there, it means the OS sees it and debugging should be focused on the specific program that you are trying to map keys with. In that situation, you can use something like AntiMicroX to rebind the keys to something your program does recognize.

    If the button is not showing up in the jstest-gtk GUI, then the OS isn’t seeing the keys and you may need a driver for that gamepad. (If that is the case, one thing to try is to update Mint’s Kernel to 6.14, which can be done in Update Manager > View > Linux Kernels)

    • cloudskater@pawb.socialOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      4 hours ago

      Yeah, I downloaded that tool and it’s really useful but the buttons don’t show up at all. The kernel is up to date but I think what other people are saying may be true, they might not be mappable to begin with. That doesn’t explain the two face buttons not working, though.

  • missingno@fedia.io
    link
    fedilink
    arrow-up
    5
    ·
    19 hours ago

    8BitDo controllers have a few different controller API modes, but they’re limited by those APIs. By default they recommend using XInput with PC, but XInput is based on 360 and limited to the set of buttons a first-party 360 controller normally has. This means that the Star/Share button doesn’t exist, nor do the additional rear buttons. Instead, they can be mapped to certain functions within the controller firmware. Unfortunately you have to use the 8BitDo Ultimate Software to configure them, and that isn’t supported on Linux (doesn’t work in Wine either, I tried). There’s also an Android version of the Ultimate Software you can try, but I think it only supports some older 8BitDos. There may be some default Star+button combos already, I forget what they do.

    If you set it to Switch mode, that enables the Share button to work the way it does on a Switch controller, but software might not recognize it. And the rear buttons still don’t exist as distinct buttons since Switch controllers don’t have those, they are only ever for macro remapping within the firmware. I don’t think there’s any way to make them distinct.

  • seathru@quokk.au
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    21 hours ago

    I’ve got the Pro 2 Wired and those extra triggers aren’t extra buttons. You can remap any of the other controller buttons to these extra triggers. But then you lose functionality on whatever button you remapped to that trigger. So you don’t actually gain 2 extra buttons. You can just move where they are at. I was disappointed with this; and hoping a future firmware update fixes it. And I think the 2 small extra face buttons are just for profile switching and programming. Not sure if you can remap those to do something else.

  • plm00@lemmy.ml
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 day ago

    This may not apply, but there is a recent firmware update you can apply that grants Steam Input support, including those extra buttons. If you’re not up to date, it’s worth a shot (even if you’re not using Steam).

  • mrmaplebar@fedia.io
    link
    fedilink
    arrow-up
    2
    ·
    19 hours ago

    From what I’ve heard some of those 8bitdo controller buttons are just remapper on the firmware level and aren’t necessarily accessible on the OS level to be arbitrarily mapped.

  • tal@lemmy.today
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    24 hours ago

    Issue is, not only do do my emulators not recognize these buttons, but is seems Linux Mint doesn’t know they exist at all. Even bringing up a program to map buttons to keys doesn’t show any input when those buttons are pressed.

    Generally, USB HID permits lots of buttons to be reported. While I can’t say that it’s absolutely certain that 8bitdo requires some sort of proprietary protocol to expose the button events for some of those buttons, my bet is that they’re reporting them.

    I don’t know what program you’re using, but there are at least three APIs that I can think of that they might be using.

    • (Old) Linux joystick API. $ jstest /dev/input/js0 to see what’s going on there (assuming a single game controller on the system). In the joystick package on Debian. I have seen systems before that have this disabled to try to deal with programs that double-report button events for joysticks visible both under the joystick API and the libevent one.

    • (New) event API. $ evtest. All of your other stuff, like mice and keyboards, will also be visible here, and you’ll have to tell evtest which device you want to see events from. In the evtest package on Debian.

    • Steam has its own input API, Steam Input. Steam Input will internally be using one of the above, but it could be fiddling with things, like, not sending button events or something, and a lot of games on Linux under Steam will be using Steam Input.

    There are also other (thinner) libraries that will map one of the two kernel APIs to their own API, like SDL. Couldn’t advise what your emulator might be using without knowing what emulator you’re trying to use.

    I also have an old Logitech F710 around here somewhere that has a switch on it to cause the controller to report (on Windows) via (old Windows) DirectX or (old Windows) XInput. In the DirectX mode, it doesn’t report as much information. Probably not what you’re seeing, but thought I’d mention it as a possibility.

  • RmDebArc_5@feddit.org
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    24 hours ago

    Is it a 8bitdo pro series or ultimate series? For pro series you have to set the slider on the back to D. For the ultimate series they can’t properly be utilized.

    Edit: I was wrong, one ultimate series model supports them, the ultimate 2 without switch support. 8bitdo website

      • RmDebArc_5@feddit.org
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        3 hours ago

        The problem is Xinput vs Direct input (D mode). Direct input allows low level access to the various buttons of a controller, it is mainly used by Sony. Xinput input is simplified, however it doesn’t allow the same low level access for configurable button. Xinput was developed by Microsoft and is the defacto standard, that’s why a lot of controllers only support it, the 8bitdo pro series is a rare exception.

        TLDR its Microsoft’s fault