Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux - USB Keyboard or other USB device don't work when paring bluetooth joystick #760

Open
mjnman opened this issue Nov 18, 2024 · 1 comment

Comments

@mjnman
Copy link

mjnman commented Nov 18, 2024

When paring bluetooth 8bitdo N30 the keyboard commands or different USB joystick commands doesn't work in the AttractMode menu. So, if I send a command via bluetooth joystick 8bitdo N30 (command: prev_game, next_game or anything definited) the keyboard commands start to working.
If I start AttractMode binary without bluetooth joystick paring the keyboard commands or USB joystick work correcly.
How I can debug this issue?
I'm using debian bookworm with kernel 6.8.5 on X86 with AttractMode 2.7.0
Below my "attract.cfg"


display mame
        layout               nevato
        romlist              mame
        in_cycle             yes
        in_menu              yes
        filter               All
        filter               Favourites
                rule                 Favourite equals 1
sound
        sound_volume         30
        ambient_volume       30
        movie_volume         30

input_map
        back                 Q
        down                 Down
        down                 Joy0 Down
        down                 Joy1 PovYpos
        down                 Joy2 PovYpos
        exit_to_desktop      Escape
        exit_to_desktop      Backspace
        configure            Backslash
        up                   Up
        up                   Joy0 Up
        up                   Joy1 PovYneg
        up                   Joy2 PovYneg
        up                   Joy7 Up
        select               Return
        select               Joy0 Button0
        select               Joy1 Button0
        select               Joy0 Button1
        select               Joy0 Button2
        select               Joy1 Button1
        select               Joy1 Button3
        select               Joy2 Button1
        select               Joy2 Button4
        select               Joy2 Button0
        select               Joy2 Button3
        select               Joy1 Button9
        select               Joy1 Button7
        select               Joy0 Button7
        select               Joy0 Button3
        select               Joy0 Button5
        prev_game            Joy1 Up
        prev_game            Joy0 PovYneg
        prev_game            Joy2 Up
        next_game            Joy2 Down
        next_game            Joy1 Down
        next_game            Joy0 PovYpos
        left                 Left
        left                 Joy0 Left
        left                 Joy1 PovXneg
        left                 Joy2 PovXneg
        left                 Joy1 Left
        left                 Joy0 PovXneg
        left                 Joy2 Left
        right                Right
        right                Joy0 Right
        right                Joy1 PovXpos
        right                Joy2 PovXpos
        right                Joy1 Right
        right                Joy0 PovXpos
        right                Joy2 Right
        default             back        exit
        default             up  prev_game
        default             down        next_game
        default             left        prev_display
        default             right       next_display

general
        language             en
        exit_command
        exit_message
        default_font         LiberationSans-Regular.ttf
        font_path            /usr/share/fonts/;$HOME/.fonts/
        screen_saver_timeout 0
        displays_menu_exit   yes
        hide_brackets        no
        group_clones         no
        startup_mode         default
        confirm_favourites   no
        confirm_exit         yes
        mouse_threshold      10
        joystick_threshold   75
        window_mode          fullscreen
        filter_wrap_mode     default
        track_usage          yes
        multiple_monitors    no
        smooth_images        yes
        selection_max_step   128
        selection_speed_ms   40
        move_mouse_on_launch yes
        scrape_snaps         yes
        scrape_marquees      yes
        scrape_flyers        yes
        scrape_wheels        yes
        scrape_fanart        no
        scrape_videos        no
        scrape_overview      no
        thegamesdb_key
        power_saving         no
        video_decoder        software
        menu_prompt          Displays Menu
        menu_layout
        image_cache_mbytes   100

saver_config
        param                basic_movie Yes
        param                image_collage Yes
        param                movie_collage Yes
        param                overlay_art wheel
        param                preserve_ar No
        param                sound Yes

layout_config   nevato
        param                cabScreenType video
        param                divider1
        param                divider2
        param                divider3
        param                divider4
        param                divider5
        param                divider6
        param                divider7
        param                enable_bg_art flyer
        param                enable_mask medium
        param                enable_scanlines light
        param                enable_static_bkg black
        param                lcdRight filter
        param                marquee_type marquee
        param                mute_videoSnaps no
        param                spinwheelArt wheel
        param                transition_ms 80

layout_config   scummvm
        param                enable_bloom No
        param                enable_crt No
        param                enable_frame frame
        param                enable_image bg1
        param                enable_mask masking
        param                enable_overlay No
        param                enable_scanlines No
        param                orbit_art wheel
        param                transition_ms 25

layout_config   dosbox
        param                enable_bloom No
        param                enable_crt No
        param                enable_frame frame
        param                enable_image bg1
        param                enable_mask masking
        param                enable_overlay No
        param                enable_scanlines No
        param                orbit_art wheel
        param                transition_ms 25

layout_config   amiga
        param                enable_bloom No
        param                enable_crt No
        param                enable_frame frame
        param                enable_image bg1
        param                enable_mask masking
        param                enable_overlay No
        param                enable_scanlines No
        param                orbit_art wheel
        param                transition_ms 25

layout_config   snes
        param                enable_bloom No
        param                enable_crt No
        param                enable_frame frame
        param                enable_image bg1
        param                enable_mask masking
        param                enable_overlay No
        param                enable_scanlines No
        param                orbit_art wheel
        param                transition_ms 25

intro_config
        param                detect_aspect Yes
        param                layout_rotation none
        param                play_intro No
        param                video_16x9 intro.mp4
        param                video_3x4 intro_3x4.mp4
        param                video_4x3 intro_4x3.mp4
        param                video_9x16 intro_9x16.mp4
        param                video_default intro.mp4
@mjnman
Copy link
Author

mjnman commented Nov 20, 2024

AttractMode with debug log when work (Only USB Qanba Arcade Joystick Q1):

...
Joysticks after mapping:
ID: 0 => Joy0(Qanba Arcade Joystick Q1)
ID: 1 => Joy7(No Joystick)
ID: 2 => Joy7(No Joystick)
ID: 3 => Joy7(No Joystick)
ID: 4 => Joy7(No Joystick)
...

AttractMode with debug log when don't work (bluetooth and USB joy), after pairing bluetooth joystick:

...
Failed to get vendor ID of joystick /dev/input/js1
Failed to get product ID of joystick /dev/input/js1
Joysticks after mapping:
ID: 0 => Joy0(Qanba Arcade Joystick Q1)
ID: 1 => Joy1(8Bitdo NES30 Arcade)
ID: 2 => Joy7(No Joystick)
ID: 3 => Joy7(No Joystick)
ID: 4 => Joy7(No Joystick)
...

When pairing bluetooth joystick missed the "vendor ID" and "product ID"

# udevadm info --query=all --name=/dev/input/js1
P: /devices/pci0000:00/0000:00:1e.0/dw-apb-uart.0/dw-apb-uart.0:0/dw-apb-uart.0:0.0/serial0/serial0-0/bluetooth/hci0/hci0:11/0005:2DC8:1081.000A/input/input24/js1
M: js1
R: 1
U: input
D: c 13:1
N: input/js1
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:1e.0/dw-apb-uart.0/dw-apb-uart.0:0/dw-apb-uart.0:0.0/serial0/serial0-0/bluetooth/hci0/hci0:11/0005:2DC8:1081.000A/input/input24/js1
E: DEVNAME=/dev/input/js1
E: MAJOR=13
E: MINOR=1
E: SUBSYSTEM=input
E: USEC_INITIALIZED=139116391
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_BUS=bluetooth
E: ID_PATH=pci-0000:00:1e.0-platform-dw-apb-uart.0
E: ID_PATH_TAG=pci-0000_00_1e_0-platform-dw-apb-uart_0
E: ID_FOR_SEAT=input-pci-0000_00_1e_0-platform-dw-apb-uart_0
E: TAGS=:seat:uaccess:
E: CURRENT_TAGS=:seat:uaccess:

but with command "udevadm info -a --name=/dev/input/js1" I can saw at parent device the infos.

  looking at parent device '/devices/pci0000:00/0000:00:1e.0/dw-apb-uart.0/dw-apb-uart.0:0/dw-apb-uart.0:0.0/serial0/serial0-0/bluetooth/hci0/hci0:11/0005:2DC8:1081.000A/input/input24':
    KERNELS=="input24"
    SUBSYSTEMS=="input"
    DRIVERS==""
    ATTRS{capabilities/abs}=="30627"
    ATTRS{capabilities/ev}=="1b"
    ATTRS{capabilities/ff}=="0"
    ATTRS{capabilities/key}=="ffff000000000000 0 0 0 0"
    ATTRS{capabilities/led}=="0"
    ATTRS{capabilities/msc}=="10"
    ATTRS{capabilities/rel}=="0"
    ATTRS{capabilities/snd}=="0"
    ATTRS{capabilities/sw}=="0"
    ATTRS{id/bustype}=="0005"
    ATTRS{id/product}=="1081"
    ATTRS{id/vendor}=="2dc8"
    ATTRS{id/version}=="0100"
    ATTRS{inhibited}=="0"
    ATTRS{name}=="8Bitdo NES30 Arcade"
    ATTRS{phys}=="a4:83:e7:11:06:2b"
    ATTRS{power/async}=="disabled"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_kids}=="0"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_enabled}=="disabled"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/runtime_usage}=="0"
    ATTRS{properties}=="0"
    ATTRS{uniq}=="e4:17:d8:eb:08:79"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant