Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenStroid for Nintendo Switch

OpenStroid

OpenStroid is an unofficial, open-source Boosteroid client for Nintendo Switch. It uses the native Android TV streaming route to provide QR login, the user's game library, server preferences, video, audio, and complete controller input directly on the console.

Warning

OpenStroid v0.8.0 is a working beta. It can log in, launch a Boosteroid machine, display and play the stream, and send Switch controller input, but bugs and service-side compatibility changes are still possible.

Important

v0.8.0 is the first public, usable Nintendo Switch release. Earlier Switch builds (v0.2-v0.7) were internal development prototypes with incomplete login, library, streaming, or controller support. They are not published or supported and should not be used.

OpenStroid is an independent community project. It is not affiliated with, endorsed by, or sponsored by Boosteroid or Nintendo. Boosteroid and Nintendo Switch are trademarks of their respective owners. You must use your own Boosteroid account and subscription.

Features in v0.8.0

  • QR device login through the official Boosteroid authorization flow.
  • Locally persisted session, with logout from the application.
  • Boosteroid library with cover artwork and paginated navigation.
  • Virtual-machine request, queue status, and session launch on Switch.
  • Preferred Boosteroid server location for account tiers that support it.
  • Option to allow or block distant regions.
  • Native Android TV gateway negotiation.
  • H.264 video over native UDP, AES-CBC decryption, packet reconstruction, and hardware-backed presentation through deko3d/NVDEC-compatible decoding.
  • Stream audio on Switch.
  • Complete controller support: A/B/X/Y, L/R, ZL/ZR, Plus/Minus, D-pad, diagonals, both analog sticks, stick clicks, and Joy-Con SL/SR shoulders.
  • Two face-button layouts:
    • Nintendo: the printed A/B/X/Y labels are preserved.
    • Xbox: A/B and X/Y are swapped to match the physical Xbox diamond.
  • Detailed local diagnostic logs without writing the signed gateway query.

Requirements

  • A Nintendo Switch capable of running homebrew.
  • Full-memory Homebrew Menu access using title takeover. Applet/Album mode is not supported for streaming.
  • A Boosteroid account with access to the games you want to launch.
  • A stable Wi-Fi or Ethernet connection.

Installation

  1. Download OpenStroid_v0.8.nro from the v0.8.0 release.
  2. Create sdmc:/switch/OpenStroid/ on the SD card.
  3. Copy the downloaded file to sdmc:/switch/OpenStroid/OpenStroid.nro.
  4. Hold R while opening an installed game to enter Homebrew Menu with title takeover, then start OpenStroid.
  5. Scan the QR code, authorize the device on Boosteroid, select a game, and press A.

See switch/INSTALL_SWITCH.md for controls, configuration, and diagnostics.

Controller layout

Open Configuration with Minus, choose A / B / X / Y layout, and select one of these modes:

Switch button Nintendo mode Xbox physical mode
A (right) A B
B (bottom) B A
X (top) X Y
Y (left) Y X

The Nintendo HOME and Capture buttons are reserved by the operating system and are not exposed to ordinary homebrew applications. All game-facing controls made available by libnx are mapped.

Building

The Switch client is in switch/ and uses devkitA64/libnx, SDL2, deko3d, FFmpeg, Opus, mbedTLS, libpeer, usrsctp, and libsrtp.

Build the streaming dependencies with Docker and then compile the NRO inside a devkitPro/devkitA64 environment:

cd switch
bash deps/build-switch.sh
make -j4

The result is switch/OpenStroid_v0.8.nro. The dependency build script fetches and cross-compiles its upstream projects; generated libraries and build outputs are intentionally excluded from Git.

Diagnostics and privacy

OpenStroid writes:

  • sdmc:/switch/OpenStroid/openstroid.log for application and login activity.
  • sdmc:/switch/OpenStroid/stream.log for the latest streaming attempt.
  • sdmc:/switch/OpenStroid/stream-prev.log for the preceding attempt.
  • sdmc:/switch/OpenStroid/settings.json for local preferences.
  • sdmc:/switch/OpenStroid/session.json for account tokens.

Never share session.json. When reporting a streaming problem, attach stream.log only after reviewing it for personal information.

Beta limitations

  • Boosteroid does not provide an official public Nintendo Switch SDK, so a service-side protocol change may require an OpenStroid update.
  • H.264 is the supported video path in this release.
  • Server selection depends on the capabilities of the user's Boosteroid tier.
  • Real-device testing is required; desktop builds do not reproduce Switch networking, controller, decoder, or deko3d behavior.

Contributing

Bug reports and focused pull requests are welcome. Include the OpenStroid version, Switch setup, selected server mode, reproduction steps, and a sanitized stream.log. Do not include account tokens or signed gateway URLs.

License

OpenStroid is licensed under the Apache License 2.0. Third-party components retain their respective licenses; see THIRD_PARTY_NOTICES.md.

About

Unofficial Boosteroid cloud-gaming client for Nintendo Switch

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages