Skip to content
Fimochi edited this page May 1, 2026 · 7 revisions

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.

Set up

Set up Vanilla for Nintendo Switch (Easy)

The easiest way to run Vanilla on the Nintendo Switch is to download the official premade homebrew app for the Hekate bootloader.

  1. Go to the Releases section.
  2. Download vanilla-nintendoswitch-image.zip.
  3. Extract the contents of the zip to the root of your SD card.
  4. In Hekate, open "More Configs".
  5. 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.

Note

If booting fails with Failed to launch Kernel!, the method you used to copy the files resulted in incorrect file permissions/attributes (e.g. using ftpd + FileZilla). To make this less likely to occur, copy the archive using any method and extract it on the device instead (e.g. using Sphaira FileBrowser).

Manually set up a Linux distribution for the Nintendo Switch (Advanced)

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.

Broadcom Patches

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.

Video Decoding (if compiling from scratch)

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.

Usage

For the most part, Vanilla will run as normal on the Switch, however there are a few quirks to be aware of:

  • The Switch lacks a built-in webcam or microphone, so these gamepad features will not work.
  • Detached joycons and HDMI output is not implemented, not because it isn't possible, but because they would take considerable effort to get working reliably and there isn't really a good reason to use the Switch as a Wii U gamepad in either of these hardware configurations.
  • Volume buttons are functional, however there is (currently) no on-screen display for them.
  • The Power button can be pressed to close Vanilla and return to Hekate. It may take a few seconds to respond. If nothing has happened after 10 seconds, Vanilla may have frozen and you may have to hard power off by holding the Power button for 10 seconds.
  • The gyroscope functionality works on the Nintendo Switch release build (not on the manual linux distro set up). However, it is very jittery.

Clone this wiki locally