moonlight-android icon indicating copy to clipboard operation
moonlight-android copied to clipboard

[Issue]: Xinput doesn't work with 8BitDo USB Wireless Adapter 2

Open ricardonevesmusic opened this issue 1 year ago • 16 comments

Describe the bug

Hey there 👋

I recently bought a 8BitDo USB Wireless Adapter 2 in order to be able to use my original PS3 controllers with it.

It works perfectly on Windows 10 and 11 (even with Moonlight PC client).

But the Xinput doesn't work, no matter what I do, on the Moonlight Android client.

Strangely enough the Xinput works with Steam Link on Android, so they might be doing something right.

I'd need the Xinput to work, so I could play games with vibration/rumble support on the Android client (as the vibration feature is only supported on the Xinput mode).

That's it.

Hope you can take a look into it and hopefully implement it one day.

Steps to reproduce

I don't know, try all the settings and nothing could get Xinput to work on the Android client.

Affected games

All games.

Other Moonlight clients

PC

Moonlight adjusted settings

No

Moonlight adjusted settings (please complete the following information)

Nothing's been changed.

Moonlight default settings

Yes

Gamepad-related connection issue

No

Gamepad-related input issue

Yes

Gamepad-related streaming issue

No

Android version

Android 12

Device model

MEO TV Box 4K (DIW377)

Server PC OS version

Windows 11 Home (fully updated)

Server PC GeForce Experience version

N/A (GeForce Experience is not installed: I'm using Sunshine)

Server PC Nvidia GPU driver version

560.94

Server PC antivirus and firewall software

Windows Defender and Windows Firewall

Screenshots

No response

Relevant log output

No response

Additional context

Steam Link works with Xinput mode and supports vibration/rumble on the 8BitDo Receiver, because it has a "nearby device" permission authorization.

I believe that if Moonlight on Android supported such a thing, the Xinput and vibration/rumble could work on it.

On Steam Link I receive a pop-up "window" or on-screen notification, prompting me to accept/authorize the Steam Link app to get connected to the 8BitDo Receiver.

So yes, we could receive a prompt like that in Moonlight and allow the app to connect to the nearby Bluetooth device, the same way the Steam Link does now.

That's it.

Please take all of this into consideration, no matter how long it takes.

(I posted this as a bug, because I didn't know if this was supposed to be considered a bug or a feature request)

ricardonevesmusic avatar Nov 18 '24 16:11 ricardonevesmusic

Adding a "Nearby Device" permission authorization prompt to access nearby Bluetooth devices, would be nice.

I guess that's the secret to it.

But it would have to be properly implemented, so that a lot of devices and Bluetooth dongles could get supported.

I guess that's pretty much it.

ricardonevesmusic avatar Nov 29 '24 23:11 ricardonevesmusic

I have this same issue but works with Steam Link app. Xinput mode is required to get rumble working with a DS4 on Android TV.

KnightRdr23 avatar Jan 30 '25 03:01 KnightRdr23

I have this same issue but works with Steam Link app. Xinput mode is required to get rumble working with a DS4 on Android TV.

True.

I thought it was my problem, because I was using a pre-release version of Sunshine.

But yeah, I had to buy a 5 meter cable for my DS3/PS3 controller.

It works flawlessly on the PC Moonlight client, but not on the Android one.

Hope they fix it or add support for it, soon (or whenever they can and if they can).

ricardonevesmusic avatar Jan 30 '25 16:01 ricardonevesmusic

Same issue on android TV box from homatics. Steam works but moonlight does not

andrea-nisti avatar Feb 18 '25 18:02 andrea-nisti

@andrea-nisti @nickp85 @ricardonevesmusic are you able to test the following debug file?

I have added PS3, PS4, and PS5 controllers to the Xbox One driver which might fix the issue: moonlight-android.zip

You can install the debug build next to the stable.

bladeoner avatar Feb 19 '25 18:02 bladeoner

And below you can find a second test file where I have added the 8bitdo as a vendor like #1461 : moonlight-android_2nd_test.zip

bladeoner avatar Feb 19 '25 19:02 bladeoner

Oh, I'm extremely sorry for not having replied sooner.

I wasn't unable to reach out for the computer.

I'll try to test on the Android when I and report back when I do.

ricardonevesmusic avatar Feb 19 '25 19:02 ricardonevesmusic

Neither seem to work with the default settings.

I have to do further testings later.

Only D-input seems to work.

When I change to X-input mode, a pop-up appears on the screen and I allow it (press OK) and the controller although still connected to the 8BitDo adapter, fails to respond to the controller moves (the input doesn't seem to work anymore, until I change back to D-input mode again).

Also, changing to the X-input mode within the Moonlight app menu registers the same behavior as it does in games (I'm only able to move through the list of apps in the D-input mode, when I select the X-input mode, I can't move through the apps or control the Moonlight app; only when I switch back to D-input, that's when everything goes back to normal).

I'll try to update this further, later.

ricardonevesmusic avatar Feb 19 '25 19:02 ricardonevesmusic

don't mean to be a dummy but how would I install this on an Nvidia Shield Android TV device?

KnightRdr23 avatar Feb 20 '25 01:02 KnightRdr23

Neither seem to work with the default settings.

I have to do further testings later.

Only D-input seems to work.

When I change to X-input mode, a pop-up appears on the screen and I allow it (press OK) and the controller although still connected to the 8BitDo adapter, fails to respond to the controller moves (the input doesn't seem to work anymore, until I change back to D-input mode again).

Also, changing to the X-input mode within the Moonlight app menu registers the same behavior as it does in games (I'm only able to move through the list of apps in the D-input mode, when I select the X-input mode, I can't move through the apps or control the Moonlight app; only when I switch back to D-input, that's when everything goes back to normal).

I'll try to update this further, later.

Thank you for testing, I think it won't work because the 8bitdo adapter is forcing you to use d-input. This is not a Moonlight issue. This is an Android compatibility issue with the adapter.

bladeoner avatar Feb 20 '25 06:02 bladeoner

don't mean to be a dummy but how would I install this on an Nvidia Shield Android TV device?

To test it you need to install a file manager application like Total Commander or X-plore which depends on your device and can be found in the Playstore.

bladeoner avatar Feb 20 '25 06:02 bladeoner

don't mean to be a dummy but how would I install this on an Nvidia Shield Android TV device?

To test it you need to install a file manager application like Total Commander or X-plore which depends on your device and can be found in the Playstore.

If you want, I can give it another shot.

I was a bit too lazy in my first testing.

I might be able to try different settings to see if something works any different.

ricardonevesmusic avatar Mar 02 '25 09:03 ricardonevesmusic

And below you can find a second test file where I have added the 8bitdo as a vendor like #1461 : moonlight-android_2nd_test.zip

Hello,

I tested this build and it works with 8BitDo Ultimate 2C Wireless Pad with Dongle. In this build after I enabled "Override native Xbox gamepad support" in Moonlight settings, I will get the popup to allow my gamepad usage. Only thing is that in the background Moonlight initializes input devices before I have time to click "Ok". This means that the gamepad does not work before I reinitialize the input. This is done by returning from the app (desktop/steam) and then pressing resume in Moonlight. Then everything seems to be working.

Mustakyy avatar Jul 19 '25 19:07 Mustakyy

And below you can find a second test file where I have added the 8bitdo as a vendor like #1461 : moonlight-android_2nd_test.zip

I tried this 2nd test debugging app again.

I tried all the different gamepad options again: enabled it one by one and in different combinations, to see if anything would work differently. But it didn't.

I think this a 8BitDo + PS3/DS3 controller input mode issue on Moonlight Android (the controller only seems to work with Moonlight and the game on D-input mode).

As soon as I enable X-input I get a pop-up prompting to connect the controller (or most likely adapter) to Moonlight or the game, but it doesn't work either in-game or in the Moonlight Android menu/UI.

I'll try to test the 1st test version later, but I guess the output or result will just be the same.

ricardonevesmusic avatar Jul 19 '25 22:07 ricardonevesmusic

Hey there 👋

I'm trying to provide data, so that people can work on fixing "8BitDo Adapter 2 - Xinput mode" not working with Moonlight Android.

Device: POCO X5 Pro 5G Model: 22101320G Android version: 13 TKQ1.221114.001 MIUI version (for POCO): MIUI Global 14.0.5 14.0.5.0(TMSEUXM)

App name: Game Controller Tester App version: 2.10 APK name: uk.co.powgames.gamecondiag Installation source: Google Play

Inside the "Game Controller Tester" app, the 8BitDo USB/Bluetooth Wireless Adapter 2 (and DS3/PS3 controller) only seems to work (and is detected) on "Xinput mode": otherwise, it's not detected.

Image

8BitDo Receiver Format: xboxone (the DS3/PS3 controller is detected as if it was a Xbox One controller) Mapping: 030066f0c82d00000631000000006800,*,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,misc1:b11,crc:f066,platform:Android, Connection: wired Type: gamepad Resources: player_led rumble Buttons: 11 (Hats: 1, Axis: 6) Player #: 0 Product Version: 0x0000 (0) Firmware: 0x0000 (0) PID: 0x3106 VID: 0x2DC8 GUID: 030066f0c82d00000631000000006800

Expert Mode: Enabled

Side note: Steam Link seems to work on "Xinput mode" (a "Nearby Device" prompt to accept the device/receiver, is shown on the screen), but I had to stop using Steam Link due to insane lag I just couldn't fix in any way: even wired.

ricardonevesmusic avatar Oct 15 '25 13:10 ricardonevesmusic

And below you can find a second test file where I have added the 8bitdo as a vendor like #1461 : moonlight-android_2nd_test.zip

Hello,

I tested this build and it works with 8BitDo Ultimate 2C Wireless Pad with Dongle. In this build after I enabled "Override native Xbox gamepad support" in Moonlight settings, I will get the popup to allow my gamepad usage. Only thing is that in the background Moonlight initializes input devices before I have time to click "Ok". This means that the gamepad does not work before I reinitialize the input. This is done by returning from the app (desktop/steam) and then pressing resume in Moonlight. Then everything seems to be working.

Thanks man, it finally worked.

I've updated the 8BitDo USB Adapter 2 firmware from v1.06 to v1.10, and now it works! Rumble on Android with the DS3/PS3 controller finally functions properly with the X-input mode enabled.

The only downside, is mouse emulation doesn't work on X-input mode and I have switch to D-input mode to be able to use the mouse again with the controller.

Other than that, everything is working amazingly and as expected, which is great.

Hope these changes make it to a new release version in the future.

If not, I can always keep using the debug versions for the rumble.

That's it.

ricardonevesmusic avatar Nov 02 '25 21:11 ricardonevesmusic