-
Notifications
You must be signed in to change notification settings - Fork 74
Nintendo Switch
The Nintendo Switch is both the successor and spiritual evolution of the Wii U gamepad. Its form factor, controller layout, and overall design philosophy are all very similar, making it a natural fit for a Wii U gamepad replacement. As such, it is an officially supported target for Vanilla.
Since, like most game consoles, the Switch only officially allows software authorized by Nintendo, your Switch must be modded to allow unsigned code for Vanilla to operate. Modding a Nintendo Switch is out of scope for this article and the rest of it will assume your Switch is already modded and you are already familiar with using it.
Warning
Modding a game console carries inherent risks that could permanently damage your console. Do at your own risk.
The easiest way to run Vanilla on the Nintendo Switch is to download the official premade homebrew app for the Hekate bootloader.
- Go to the Releases section.
- Download
vanilla-nintendoswitch-image.zip. - Extract the contents of the zip to the root of your SD card.
- In Hekate, open "More Configs".
- A new option for "Vanilla" should be available. Tap it to launch.
Vanilla should load and from then onwards you should be able to use it as normal.
Note
The Vanilla app for Hekate requires no installation or partitioning, just click it in the "More Configs" menu and it will run. Any permanent data (e.g. configuration files, screenshots, video recordings) will be stored on your SD card at /switchroot/vanilla/data.
Vanilla's "homebrew app" for the Nintendo Switch is technically not an "app" per se, it's a self-contained extremely lightweight live Linux distribution with all necessary drivers/patches/etc. pre-installed to allow Vanilla to connect to the Wii U as a gamepad. If, for whatever reason, you would prefer not to use it, it is possible to set up most standard Linux distributions to run Vanilla too, however the process is complicated and not recommended for beginners.
Since the Nintendo Switch uses a Broadcom FullMAC wireless chipset (BCM4356), Vanilla is blocked from connecting to the Wii U under normal circumstances. To circumvent this, we must patch the Broadcom firmware, and install a modified driver that allows modified firmwares to load. A guide for doing this can be found here, but be warned it is fairly involved.
Alternatively, a compatible USB Wi-Fi adapter can be connected to the Switch's USB-C port with an adapter (provided a driver is available for the Linux kernel 4.9, the last version to support the Switch's hardware). While this is awkward, it does skip the need to modify the system's Broadcom firmware/driver.
Once you have either patched the firmware or connected a compatible secondary Wi-Fi adapter, Vanilla should be able to connect to the Wii U.
If you use the pre-built Vanilla binary from the Releases section (vanilla-linux-aarch64.tar.gz), everything should be functional after getting Wi-Fi working. However, if you have compiled Vanilla from scratch, you may encounter another issue: Vanilla is not currently compatible with the Nintendo Switch's hardware decoder (h264_nvv4l2). Vanilla's prebuilt image includes its own version of FFmpeg that already excludes this decoder, however it's very common for the FFmpeg version available on L4T distros to default to this decoder. If it is selected, Vanilla will not be able to display video.
This issue may be resolved in a future version of Vanilla, however for now, you may have to compile a new version of FFmpeg without h264_nvv4l2 too, and link Vanilla with that build instead to achieve video output.