Moehammered / switch-remote-play

Let the switch remotely play PC games (similar to steam link or remote play)
GNU General Public License v3.0
301 stars 14 forks source link

switch-remote-play

icon

Let the switch remotely play PC games (similar to steam link or remote play)

This project is inspired by the github project In-Home-Switching and SkyNX. The goal is to make a convenient streamer/client application to be used to remote play PC games on the switch.

In-Home-Switching and SkyNX already offer the ability to do so, however there were some convenience features missing that I wanted to add. I also recently was studying multi-threading and when I saw the code, I thought 'this is the perfect chance to try writing it in C++'.

Getting Started

For instructions and help, please see the wiki.

You can also visit the gbatemp release thread to share and interact with other users, or get help with any issues you might have.

Features

Switch-Project

This project consists of an application written for the switch that will decode stream data received from FFMPEG and send its input to an application to emulate a controller. The rendering is done with SDL2 and the project is written in C++.

Compatibility

Windows-Project

This project consists of an application written for Windows that will launch an FFMPEG stream to encode and send data. The application, after launching the FFMPEG stream, will then listen to receive input data and emulate a controller via the ViGEm Client SDK. The ViGEm Client SDK expects the ViGEm Bus Kernel Driver to be installed on the machine in order to work. For more info on the kernel driver code see the ViGEmBus github page. For the driver installation, see the ViGEmBus Releases page.

The Windows project is also written in C++ and uses Winsock to do socket communication with the switch application.

Mac-Project

See the 'mac-readme' file located in the repo's instructions/mac folder.

Thanks

Licence

GPLv3, so please follow the open source licence and be a nice bloke. If you use parts of this project or expand on this project, make it open source. Cheers mate. (You can read more about the GPLv3 licence HERE and HERE)

The ViGEm Client SDK uses an MIT licence and it has been included with the Windows project. (The Windows project itself is still licensed under GPLv3)