Steam Link

Steam Link

EasySMX X20 identified as Nintendo Controller in Steam Link
Hello,

I have a EasySMX X20 that is connected through wireless usb dongle to an nvidia shield tv, steam link app detects it as nintendo controller, Moonlight detects it correctly. Any settings that i can manipulate to identify it correctly in steam link ?
< >
Showing 1-2 of 2 comments
So, I got ahold of an X20, and this is doing something I hate. The short and deeply unfortunate form is that this IS being identified correctly, because it is pretending VERY HARD to be a Switch Pro controller. And the reason it works in Moonlight is that if you connect a REAL Switch Pro controller, Moonlight will still blithely assume an Xbox layout and be using the A/B buttons backwards by default unless you configure it otherwise.

Now for the long form...

When connecting to a PC (or the OG Steam Link) with a connected controller, it reports itself as 0x045e/0x028e (original Xbox 360 wired controller), with "Microsoft Corp." as the manufacturer and "Xbox360 Controller" as the model, just like the real original Xbox 360 wired controller did. It will thus be detected by things (like Steam) as an Xbox 360 wired controller.

When connecting to a Nintendo Switch dock with a connected controller, the dongle will instead report itself as 0x057e/0x2009, which is a Switch Pro Controller. It will, in fact, even change the manufacturer it returns to "Nintendo Co, Ltd." and the model to "Pro Controller" like a real Switch Pro controller has.

So it's trying to be 'clever' about things.

The problem is that the dongle seemingly also detects *Android* as a Nintendo Switch dock, and reports itself as a Switch Pro controller. This is where that becomes a problem.

Android does not actually know about Nintendo button layouts; it just sees the 'south diamond' button as enter/activate and the 'east diamond' button as cancel. If you plug a real Nintendo Switch Pro controller into a Shield TV via USB, you will have to use B (the 'south' button) to confirm/activate and A (the 'east' button) to cancel.

For Android, in this case, the fact that the buttons are still LABELED like an Xbox 360 controller means that everything still works the way you'd think. And Moonlight just takes the Android events directly unless you toggle the 'flip face buttons' option on.

However, Steam Link actually detects the controller so it can do a lot of controller-specific things (like get at extra buttons/switches, etc.). But since the X20 is doing its absolute best to be like "no really I am a Switch Pro controller, honest and for true!" Steam Link expects the 'A' button to be east and the 'B' button to be south. And due to that masquerade as a Switch Pro controller, if I flip those buttons for this VID/PID it will break everyone using an *actual* Switch Pro controller.

(Which is, obviously, not ideal.)

For the HOST side, you can go into Steam's settings while connected, go to Controller, find the supposed Switch Pro Controller (connected via streaming) go into Details, and untoggle the "Use Nintendo Button Layout" option. (This WILL, as a side effect, mean the button labels will NOT match any actual Switch Pro controller you use, because the settings apply per VID/PID, but I assume you're not mix-and-matching real Switch Pro controllers and an X20 in here.)

That won't help for the Android side, though, where the Steam Link app will ('correctly', at least based on what the controller is reporting) still see it as a Switch Pro controller.

Now, for the OG Steam Link box, when you disable the reverse diamond layout, we send a little flag down and the Link's shell remembers that setting for that VID/PID. Probably what needs to happen is to implement that same sort of functionality in the Android/iOS versions of Steam Link, such that once you flip the face buttons on the Steam side it remembers it on the Steam Link side. So I'll add that to the TODO list, at least.

In the meantime, I hope the advice helps for once you're connected (and otherwise, I hope it at least provides some context to why it acts this way).
thnx!!!, will try it out
< >
Showing 1-2 of 2 comments
Per page: 1530 50