Skip to content

idkuaskedme/switch-remoteplay

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NOT OFFICIALLY SUPPORTED OR INVOLVED WITH NINTENDO IN ANY WAY

This is an independent project.

Switch Remote Play

The goal of this project is to support easily playing your Nintendo Switch remotely or locally via another device with a keyboard/mouse/controller/touchscreen. No hacking of your Switch is required.

Setup:

You <===> Website <=====> Server <--Bluetooth--> Switch
            ^                                      |
            |                            video capture via HDMI
            |                                      |
            |                                      v
            '------------------------------ Streaming Server

Example video of someone playing my Switch from another city.

Example video of me using an Xbox controller (that does not have Bluetooth) to play my Switch.

Example video of recording and running a macro.

For more videos, check out this playlist.

Status

One keyboard layout or gaming controller layout is supported to map input to the control sticks and the buttons on a Nintendo Switch controller. I've mainly tested this with Animal Crossing and Mixer - FTL low latency streaming. This is very much a work in progress right now but you can indeed play your Switch remotely using a keyboard/controller.

Macros

You can record and run macros! You do not need your Switch's video going through your PC to record and run macros. Just setting up the server (Linux device with Bluetooth) to send commands via Bluetooth to your nearby Switch is enough. Then you can record, modify, manage, and play your macros from a PC or even your phone.

See the supported commands here.

Requirements

The host (person setting this up) needs:

  • A Nintendo Switch
  • A Linux machine to host the service and connect via Bluetooth to the Switch (tested with a Raspberry Pi 4B) (a Linux machine is required by the code that actually connects to the Switch via Bluetooth: joycontrol)
  • (optional) A video capture card to see the video (or just have bad quality and lag by pointing your camera at your Switch and use a video chat app)

The client (your friend) needs:

  • A web browser to open the client and send commands
    • You can use the already hosted client but you may have to enable mixed content for that site in your browser's settings if the server your friend is hosting does not have SSL (a link that starts with https).
  • A keyboard or gaming controller

Plans

  • Make controller buttons clickable/tappable.
  • Support custom key bindings.
  • Improve macro support: exporting/importing.
  • Default layout options for common controllers.
  • Default key binding options for keyboard/mouse for certain games.
  • Loadable and exportable key binding configurations.
  • Support different streaming services (Mixer - FTL with low latency is supported).
  • See enhancements and help wanted

Looking for Help

I'm looking for help with implementing the above plans. Some more specific things:

  • Add security options to the service: auth, allowed origins, disabling buttons like Home and screen capture, limiting the number of clients connected.
  • Getting the service to run on Windows (hard since the libraries I'm relying on require Linux)
  • Improve macro support: a nicer editor
  • Improving the client UX
  • Mapping controller, keyboards, and mice for game specific controls (once custom bindings are supported)
  • Phone apps to talk to the Switch and host the service instead of the a Linux machine.

Setup

See:

  • server: a service to run on a device near your Switch (full API docs are there)
  • client: a website for your friends to "connect" to your Switch

Acknowledgements

A very special thank you to joycontrol for the very conveninent and full API and the acknowledgements there as well for so much of the great research into how to communicate with the Switch.

About

NOT AN OFFICIAL NINTENDO PRODUCT - Control your Switch remotely

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 68.7%
  • HTML 14.5%
  • Python 13.4%
  • CSS 2.5%
  • Other 0.9%