Nintendo: A Brief History
In the 1980s, Home Video Game consoles were dead. Sales had dropped, companies had gone out of business and consumer electronics magazines had declared that the silly fad of arcade games you can plug into your TV at home was over.
Enter Nintendo. A century-old Japanese company that got started making playing cards; they built an inexpensive, simple to use game console—and sold it in the toy aisle, not in specialty electronics stores. The Nintendo Entertainment System was a rousing success, and the video game industry was reborn.
Fast forward to today and Nintendo continues to try to find new ways to package videogames. From the Wii (a tremendous success) to the Wii U (a dismal failure). And in March of 2017, the Nintendo Switch.
The Switch is equipped with a 6.1-inch 720p LCD screen, and an innovative custom System-on-a-Chip from nVidia. The chip underclocks itself to save battery when games are played handheld at 720p, and then boosts itself when the Switch is in its dock, plugged into power and outputting to a TV at 1080p.
The portability and power of the Switch makes it an attractive console for developers. And for many of us Zwifters who own them, it’s natural to wonder what a Zwift experience might be on the portable handheld.
A Hack is Born
When the Nintendo Switch was launched back in 2017, hackers quickly discovered an internal recovery mode (abbreviated RCM). This was intended to be a way for technicians at Nintendo to repair the Switch by getting root access to its onboard memory. However, if an end-user is able to put the switch into RCM mode, then they can run unofficial, unsigned code. Things like home-brew emulators and even booting an entirely different operating system.
And that’s exactly what we’re doing here. By booting LineageOS, a special variant of Android 8.1, we suddenly have a powerful Android tablet with built-in game controllers!
For most Switch owners, this means having the best of both worlds. They can leave Horizon OS (the switch’s native operating system) unchanged, allowing them to play online through Nintendo’s servers without risking a ban, and allowing them to keep their system up-to-date. But, whenever they want, they can boot into Android and play games on Emulators, play Android games, or even access online video streaming services that don’t have native Switch support.
For us, this means we can Zwift!
Will this work with my Switch?
Possibly. Nintendo patched the exploit in July of 2018. If you have a first-generation switch, it’ll work. This is a permanent exploit, if you have an early edition of the Switch, it will always be hackable. If you’re not sure, check this forum post and compare the list to the serial number of your Switch. If you’re shopping, some people have reported luck finding hackable models still on store shelves; but it’s been over a year now that the exploit has been patched, so you’d have to be pretty lucky. If you’re determined, you can find hackable Switch models on eBay, but expect to pay a premium.
How do I connect my trainer/sensors?
The experience is identical to an Android phone or tablet. You’ll connect them via Bluetooth. Zwift does not support ANT+ under Android.
Will it work in docked mode?
Yep! Though don’t expect great graphics. Zwift and this particular Android implementation are not well optimized for the Switch. This means that Zwift will look worse than your favorite Switch games, all while consuming more battery and running hotter. The Switch display does not turn off when docked when running Android, but that doesn’t seem to affect the experience.
Will I get disconnects or experience crashes?
I haven’t. If you’re not getting sensor disconnects now, there’s no reason to think you suddenly would with the switch. It’s designed to work with Bluetooth controllers in docked mode, and it’s pretty reliable.
Will this void my warranty?
Potentially. Though if you have a Switch that’s still under warranty, it’s not likely exploitable.
Will I get banned from Nintendo Online?
No. Not if you’re only running Android. If you install Custom Firmware (CFW) or install homebrew apps on Horizon, then there is a risk. But the beauty if this Android implementation is that it runs entirely off of the microSD card, and doesn’t modify the Switch in any way.
Can I damage my console?
Yes. But the risk is extremely low. Follow the instructions and you shouldn’t have any issues. However, any sort of unauthorized modification of a device carries some risk.
Why would I want to do this?
To be honest, if you have almost any other way to Zwift; such as a PC, Mac, Android device or iOS device; that’s probably a better experience. But for people like me who eventually take everything I own apart to see how it works, it’s fun!
What’s the Zwift experience like?
Framerates are smooth, but graphical fidelity is low and battery life is hilariously abysmal. It may be that despite the Switch’s decent hardware, it’s so unoptimized in Android that it can’t keep up. Or, it’s possible that Zwift simply doesn’t recognize the Switch and thus doesn’t apply its own graphical tweaks and settings.
Otherwise, it’s “just Zwift”. It works the same as any other Zwift experience.
How It’s Done
You will need:
- A Nintendo Switch with an unpatched RCM exploit. (Pre July 2018)
- An RCM Jig (get it on Amazon)
- A USB-C cable and a PC, OR a Payload injector such as SX-OS.
- While it’s a little more expensive than other methods, my preferred method is SX-OS. It’s a kit that comes with an RCM Jig, a USB-C dongle and the software necessary to perform these modifications. It’s very easy to use, and for that, worth the extra $20 over other solutions.
- Then, you can follow this excellent guide for installing Lineage OS on the Switch. Complete with all the links you need to download. (https://gbatemp.net/threads/how-to-install-android-8-1-lineageos-to-your-nintendo-switch.544568/)
- Use a free tool called BalenaEtcher to flash the image containing Android to an empty MicroSD Card. (Note: The faster the SD card, the faster this process goes.)
- Put the switch into RCM Mode. Follow the instructions for whatever method you chose. (Note: If using the SX-OS dongle, you’ll need to add the SX-OS boot.bin to the root of your microSD card).
- Launch the Hekate payload, then select ‘switchroot’.
- Hold ‘volume up’ to boot into TWRP. Then install all of your optional packages, including Open GApps. This MUST be done BEFORE booting into Android. I also recommend installing Magisk (which gives you root privileges) and the JoyCon fix (which helps the Joycons work for Android games and emulators)
- Restart, put the switch back into RCM mode, and launch ‘switchroot’ again, this time without holding ‘VolumeUp’.
- Wait 10 minutes for the first boot (it takes a while! Don’t be afraid of the blank screen.)
- Follow the on-screen instructions.
- Go to the Google Play Store, and Download Zwift.
And… that’s it! It’s a simple process. To get back to playing MarioKart, just reboot. And anytime you want to boot Android, just put it back into RCM mode and boot using the same method above.
I found that the easiest way to keep everything working was to have two separate microSD cards. One for my Switch and all of my Switch games, and the other for Android.