moonlight-stream / moonlight-qt

GameStream client for PCs (Windows, Mac, Linux, and Steam Link)
GNU General Public License v3.0
10.84k stars 632 forks source link

Issue with Xbox One S controller mapping to client #1051

Open brspencer90 opened 1 year ago

brspencer90 commented 1 year ago

Describe the bug When connecting to host computer remotely (through Steam Big Picture and Desktop -> Steam -> Application) the controller mapping was not correct. Some buttons were missing all together (Guide, Start, Right Joystick Press, Left Joystick Press), others were incorrectly mapped (RT was an axis on right joystick, LT was RT).

Client side : Tried installing appropriate drivers using xpadneo for BT connected Xbox One controllers with no success, looked at 4/5 issue reports on git. Confirmed controllers are outputting appropriate signal on client side using jstest-gtk.

Host side : Tried remapping controller using xpadder or reWASD but confirmed that outside of any application on host, the missing buttons were not being recognized as inputs from the client side controller (would not recognize that a button has been pressed)

Connecting the controller directly to USB worked perfectly with proper mapping and missing buttons.

Steps to reproduce The Xbox One S controller connected successfully to a 3rd party dongle (recognized as Xbox Wireless Controller) and all inputs were checked using jstest-gtk, input diagrams, and screen captures of the button mapping and function will be attached.

BT Connectivity (Wireless Xbox Controller): 15 buttons 8 axes

USB Connection (Xbox One S Gamepad) : 8 axes 11 buttons

Open Moonlight, connect to Sunshine host, open web browser, go to www.hardwaretester.com/gamepad. Test outputs for controller (also attached hostmapping)

Order of all button presses (a, b, x, y, rb, rt, lb, lt, left joystick x-axis (ljx), ljy, ljb, rjx, rjy, rjb, dpad up (dpu), dpd, dpl, dpr, share, guide, start). Any missed inputs or flags are annotated.

Screenshots As explained, will upload videos.

Affected games OS input affected, not limited to type of game.

Other Moonlight clients Raspberry Pi 4 - 8GB - Raspberry Pi Debian Bullseye OS Sunshine Host (Windows 10)

Moonlight settings (please complete the following information) N/A similar issues. Did try to change sunshine controller type to ps4 but did not result in any button logs.

Gamepad-related issues (please complete if problem is gamepad-related)

Have followed up on discord to troubleshoot- no solutions there

Client PC details (please complete the following information)

Server PC details (please complete the following information)

Moonlight Logs (please attach)

Unable to get either method to work. flatpak error : error: app/com.moonlight_stream.Moonlight/arm/master not installed

Additional context

https://github.com/moonlight-stream/moonlight-qt/assets/65568856/c4710c20-c106-4b61-8412-679fcc021636 (client-bt) https://github.com/moonlight-stream/moonlight-qt/assets/65568856/2d812002-dfce-4273-898d-2ec99f03e89c (client-usb)

https://github.com/moonlight-stream/moonlight-qt/assets/65568856/9bebcda3-3e7f-49a3-9cbd-0d2014ad997c (host-bt) https://github.com/moonlight-stream/moonlight-qt/assets/65568856/4df0137f-aa2c-49ec-9e83-2e4ca3acc935 (host-usb)

cgutman commented 1 year ago

I pushed updated mapping files to moonlight-stream.org, so they should get picked up the next time you start moonlight-qt. I'm not sure if one of the updates will address your issue, but it's worth a shot.

Can you collect logs from moonlight? You will get log output by running moonlight-qt from the terminal. You can write the log output to a file with moonlight-qt | tee moonlight.log

Lucode710 commented 1 year ago

I'm encountering the same problem, some buttons are not working on my xbox one controller. I managed to get the right mapping for my controller, and tried to swap it in gamecontrollerdb.txt. The problems seems to be that moonlight-qt overwrites this file on startup, erasing my mapping and putting it the non-working one.

In the Moonlight Embedded version, there is the option to put in a custom mapping, but on moonlight-qt this option doesn't seem available.

I've thought of 2 solutions: 1) I'll paste here the correct mapping for my controller, can you add it to the list of mappings? 050000005e040000130b000017050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,

2) Can you add the option to edit mapping like in moonlight embedded?