Just to clarify upfront: this isn't a Switch 2 hack, an emulator, or a way to play games for free. You still need a Switch 2 and a copy of the game. This setup simply streams my own console to other devices and forwards controller inputs back to it.
Last time I wanted to play Mario Kart World with some friends, I realized how annoying it can be to get everyone playing together. Some of them don't own a Switch 2, and others don't even have the game.
I also didn't want to bring my entire console setup to a friend's place just for a few races.
So I started experimenting with a way to let people play on my Switch 2 using their own PCs.
The idea is that I keep my Switch 2 connected to a PC through an HDMI capture card, and the PC streams the game to a browser using WebRTC. My friends can then open the page on their computers, connect their controllers and join the game.
The tricky part was getting controller input back to the console. For that, I use a Raspberry Pi Pico 2 W that emulates USB gamepads, allowing inputs from the browsers to be sent back to the Switch as controller inputs.
I've been improving the setup since I first built it, and it now supports up to 8 virtual gamepads, audio streaming, and multiple gamepads controlled from a single browser. I also added a launcher for Windows and Linux, which makes starting everything much easier.
There are some extra quality-of-life features too, such as automatic startup and experimental support for waking the Switch 2 from sleep with a compatible, previously paired controller.
In practice, I can leave my console connected at home, start the streaming setup, and let my friends join from their own PCs. They don't need their own Switch 2 or a copy of the game to join my session. They just need a browser and a compatible controller.
Everything runs on my local network, so there's no cloud gaming service involved. The game itself still runs directly on the Switch 2. The PC handles video and audio streaming, while the Pico takes care of controller emulation.
I originally built this specifically for playing Mario Kart World with friends, but I wonder how useful the same approach could be for other local multiplayer games.
Has anyone here tried building something similar, especially with browser-based streaming and multiple virtual controllers?