SplitScreen-Me / splitscreenme-nucleus

Nucleus Co-op is an application that starts multiple instances of a game for split-screen multiplayer gaming!
https://www.splitscreen.me/docs/what-is-splitscreen-me
GNU General Public License v3.0
856 stars 50 forks source link

✨ Steam Link Controller Support #67

Closed stuffi3000 closed 5 months ago

stuffi3000 commented 6 months ago

I have searched through the issues and didn't find my problem.

Problem

The Nucleus Coop App currently does not support Steam Link, in as that it doesn't properly recognise controllers connected to the Steam Link. Any controller not connected to the PC but to the Link is recognised as a "virtual" keyboard and mouse. Worst thing about is that even if you connect more than one controller to the Link, they will all be recognised as the same virtual keyboard/mouse, making streaming Nucleus Coop to Steam Link impossible. The Steam interface, in Big Picture mode, properly recognises each connected controller, meaning that games launched through Steam can make proper use of one or multiple connected controllers.

Possible Solution

Possible but very theoretical solution: In order to make Steam Link support work, the Steam controller API must be implemented into Nucleus Coop (https://partner.steamgames.com/doc/features/steam_controller/getting_started_for_devs). But to implement this, your app must actually have a Steam ID and be as an official "game" in the Steam library. Given that Nucleus makes use of Goldberg, that probably isn't going to happen any time soon. However, you could trick the Steam API into thinking that you are actually running a free program like Source SDK Base 2007. This is actually what FiveM does to connect to the Steam services (notably to verify ownership of GTA V). Something similar could be used for Nucleus to verify ownership of a game on Steam and at the same time allow the usage of the Controller API.

Additional information

No response

Mikou27 commented 5 months ago

Hi, better look at external tools such as https://github.com/Alia5/GlosSI. Nucleus does not aim to provide specific hardware support.