Skip to content

[Issue]: Two 8BitDo controllers (Client) detected as single controller (Host) #562

@Pandapancace

Description

@Pandapancace

Describe the bug

Bug Description

When connecting both an 8BitDo Ultimate C Bluetooth and an 8BitDo Ultimate 2C Bluetooth simultaneously via Bluetooth, Artemis only recognizes them as a single controller instead of two separate devices. Both controllers appear as a (Switch) Pro Controller

Expected Behavior

Both controllers should be detected and registered as two independent gamepads, allowing two-player input.

Actual Behavior

Only one controller is recognized regardless of which physical device is used. Input from both controllers appears to be merged or one controller is silently ignored.

Root Cause (suspected)

The two controllers likely report identical USB/Bluetooth vendor ID, product ID, or device descriptor strings, causing Android's input system (or Artemis's controller mapping layer) to treat them as the same device. This is a known issue class with 8BitDo controllers sharing hardware identifiers across product lines.

A potential fix could involve differentiating controllers by their Bluetooth MAC address in addition to their descriptor, similar to the approach used for distinguishing identical HID devices.

Environment

  • App: Artemis (moonlight-android fork)
  • Host: Apollo
  • Device: Android tv (beamer)
  • Controller 1: 8BitDo Ultimate C Bluetooth (Displayed as a Switch Pro Controller)
  • Controller 2: 8BitDo Ultimate 2C Bluetooth (Displayed as a Switch Pro Controller)
  • Connection: Bluetooth

Additional Context

This issue is not present when using two controllers of different brands or types (like one Xbox and one sswitch type controller on the client) , confirming the problem is descriptor-collision specific.

Steps to reproduce

  1. Pair the 8BitDo Ultimate C Bluetooth (Switch Pro Controller) with the Android device
  2. Pair the 8BitDo Ultimate 2C Bluetooth (Switch Pro Controller) with the same Android device
  3. Launch Artemis and start a streaming session
  4. Observe that only one controller is visible to the host

Affected games

All (Steam Input API, Lego Star wars: The skywalker Saga (Epic games) etc.)

Other Moonlight clients

None

Moonlight adjusted settings

None

Moonlight adjusted settings (please complete the following information)

No response

Moonlight default settings

Yes

Gamepad-related connection issue

No

Gamepad-related input issue

Yes

Gamepad-related streaming issue

Yes

Android version

Android TV 14

Device model

wanbo x5 pro projector

Server PC OS version

Windows 11 Pro

Server PC GeForce Experience version

Apollo 0.4.6

Server PC Nvidia GPU driver version

32.0.15.9649

Server PC antivirus and firewall software

Windows Defender and Firewall

Screenshots

No response

Relevant log output

Additional context

The two controllers are registered as Nintendo Switch controllers; both have a different Bluetotth adrees

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions