Tale of the Nintendo Switch hacking scene

Preamble

First and foremost I’d like to mention that this article isn’t aimed at the technically inclined but rather for all the curious out there.

Throughout the 4 years of being part of the Switchroot development crew I’ve been faced, IRL and online, with a lot of lack of understanding towards my and also all the work that has been done on the device and what it means (for me) as a whole for the console hacking scene.

So today I would like to share my vision regarding the meaning and importance of the Nintendo Switch hacking scene, principally surrounding the subject of running other OS (operating system).

Context and history

Running Linux or other OSes is not something new in the console and more generally device hacking scenes.

A very great example of that, and notable one is the original Xbox (2001) and XBMC1

XBMC, now called Kodi, is surely a reference in home media center today and it originated as a Xbox project.

More recently on handheld gaming consoles we can look at Linux ports on the PSVita or 3DS.

As you can see, while the work being done is colossal (Hardware reverse engineering, device tree creation, driver creation, vulnerability exploitation and so on..) the usability of those Linux ports as a daily driver is not possible on those devices for many reasons that I’ll leave to the readers to figure out and research.

So, how is the switch any different compared to those other devices ?

We should take a look at the base for now, namely, the switch hardware, indeed it embeds a Tegra X1 SoC2 made by Nvidia.

Enough of technicalities for now.

What really matters in our case, for the switch, is that unlike all those other devices Nvidia provides Linux kernel sources for this SoC2 which makes a world of difference compared to previous devices where (in the case of Linux or other OS) the work had to be done completely from scratch.

That means we already have a base to start with that is known working and has the hardest part figured out for us (GPU drivers *cough* *cough*)

Why is that important ?

The Nintendo Switch is to me a meaningful representative of modern day SoC and their capabilities.

It’s potential has no equal thanks to it’s versatility and the bonding of multiple communities willing for the device to progress.

Between the ability to use it as a media center, NAS (since it has 3 main storage system, SD, eMMC and USB), AI (thanks to CUDA), pentesting device and very notably emulation capabilities, such that it is able through complex means to emulate some PC games at playable framerates thanks to x86_64 emulators in combination with wine and dxvk and as impressively can emulate the Nintendo Game library inside Linux using Yuzu with various result.

To my knowledge it’s the first device capable of emulating it’s own game library inside an alternative OS at “playable” framerates.

So what’s next ?

The switch still has a long road ahead and lots of room for improvement.

Those who I communicate my work with are already aware of some of the ideas I have to push it beyond anything that’s been currently done while trying to keep devs and advanced user attracted to the platform.

In a nutshell, my current goals are to finish and upstream the mainline work that I resumed 2 years ago, make the L4T OS more static as it’s and will remain our main product.

For the rest I’ll keep some mystery floating since we all love good surprises.

If you’re interested to learn more about the platform and the work done by our community, you can freely join our discord server Linux 4 Switch.

References

Kodi (XBMC) Wikipedia page

SoC – System on a chip