Mental Health, Project, Research

Hacking my Nintendo Switch to Play Gamecube/Wii Emulators

First I want to preface this post with a disclaimer: any game I play on Gamecube or Wii is a game I ALREADY OWN. I also own BOTH SYSTEMS, so I am not breaking any laws or playing pirated games. With that said, here’s how I hacked my Nintendo Switch to play some older games.

Before I get into the specifics, I’d like to be honest about my motivation for taking on this project. I’m doing this to play the specific game Tales of Symphonia to honor a friend who passed a few years ago as it was his favorite game. In fact, he even has a playlist on YouTube of him playing the game. To finally listen to his series, I need to first beat the game myself (as he urges in the first video).

Alright, so on to the actual information on how to do this. My starting point originated from a post where a guy who loosely explained how he used the Dolphin emulator to play GameCube and Wii games on his Switch. While it was a helpful proof of concept post, it didn’t go into legible detail on how to actually do this.

Before I hastily rushed to hack my Switch, there was A TON of research I needed to do. Below is a summary of what I learned that I think others should be aware of before rushing into this project and wasting their time.

  1. Checked Nintendo Switch is hackable:
    • Looked at back of the device and confirmed it said “HAC-001”
    • Checked serial number was hackable on this website (on bottom of device)
    • Checked firmware version of system in System section of System Settings and googled whether it was hackable or had recent solutions (Mine was 9.2.0 so I needed to use fusee-gelee exploit although it is probably not entirely stable)
  2. Researched the Pros/Cons of hacking and what it entails
    • Key point in this reddit post was to prevent getting “super banned” from Nintendo anytime homebrew is launched or installed keep off the internet by being in “Flight Mode” or prevent connecting to Nintendo servers by not playing online games or downloading updates
    • If I AM super banned, it will prevent the console from downloading firmware updates, game updates, reinstalling purchased games, and using the e-shop in general (all new games would need to be pirated, although paying for them in the eshop online could provide proof of purchase legally)
    • This ban will supposedly ONLY affect the console (so playing on my account with a legitimate console would still work fine), but this article as of February 2020 claims the ban IS at the account level meaning I would need to start a NEW Nintendo account and repurchase all my games
    • Lastly, even a banned console can be used for a variety of purposes (I just can’t play online or access downloadable content which isn’t a problem for me as I enjoy playing solo)
  3. Created a strategy based on research and this reddit post:
    • NEVER play online or update software while using custom firmware to prevent getting account banned
    • To play online, purchase games, or update games I’d boot into the stock firmware
  4. Prepared system for rooting and backup image in case of ban
    • Increased Micro SD storage & migrated internal stored content to it (link to recommended SD card)
    • Downloaded all purchase games to new SD card and applied any updates available
    • Inserted all physical games and downloaded any updates

Now that I have researched for several hours and determined it is worth the risk and made the appropriate preparations, I followed HomeBrew instructions on hacking Nintendo Switch:

  1. Ensured my Switch was capable of being hacked by booting into recovery mode and sending a test payload
    • Downloaded TegraRcm GUI and the test payload fusee-test
    • Opened TegraRcm and clicked install driver from Settings tab
    • Booted the Switch into recovery mode (grounding pin 10 with the 3D printed jig while holding volume up and power for 3 seconds)
      • I tried 3D printing my own, but I failed miserably so I bought this one from Amazon for $7
      • After getting the one from Amazon it booted into recovery mode ON THE FIRST TRY!
      • Note: recovery mode should NOT look like the Switch turns on — if successful screen should be black
    • Connected the switch to my PC and sent the payload from TegraRcm to the switch to determine if an exploit exists
      • SUCCESS!!!! It worked!!!
  2. Prepared my SD card for the fusee-gulee exploit
    • Downloaded the software, extracted the contents, and copy/pasted the contents from the “sd” folder to my micro SD card (note: do NOT delete the “Nintendo” folder)
  3. Followed the instructions from this YouTube video to finish the installation process since the Homebrew guide glossed over any of this content
    • Booted into recovery mode and connected Switch to PC
    • Opened TegraRCM and selected the “hekate_ctcaer_5.1.2.bin” from the downloaded payload folder
    • Injected payload and disconnected Switch from PC
  4. Took safety precautions for fusee-gulee exploit
  5. Launched Atmosphere Custom Firmware (CFM) via Recovery Mode (RCM)
    • Clicked “Launch” on the menu
    • Selected CFW “SYSNAND” (far left) option Officially checked if my Switch was capable of being hacked by booting into recovery mode

So after FINALLY getting into the custom firmware I discovered THERE WASN’T A GAMECUBE EMULATOR!!! 0_o

So back to the drawing board… I had a few options supposedly available to run Dolphin in RetroArch (GameCube emulator): Lakka, Ubuntu, and Android. I decided to start with Lakka and see how it went because I found some pretty good instructions. Honestly, I’m not surprised my first attempt failed because anything I do technology related always ends up like this.

To install Lakka:

  1. Downloaded Lakka for Switch
  2. Extracted the content of the directory by selecting the “open archive” using 7-zip
  3. Copied the lakka and bootloader folders to the root of my SD card
  4. Booted Switch into recovery mode and launched Lakka under
    “More Configs”
  5. Unfortunately, I could not get Lakka to load, so I went BACK to my original hack and tried to download and tried to fix it so I could download cores to Retroarch

Aaaaaaaaaaaaand I still failed. There is a chance I need to downgrade my Switch firmware, or that a complete reinstall would fix my problems, but honestly, at this point, I’d rather just go with the Android option. It’ll required a completely separate SD card, but I really don’t mind at this point.

To install Android:

  1. Downloaded balenaEtcher
  2. Downloaded GApps (Google Apps) ARM64, 8.1, Stock
  3. Downloaded The ROM for the size of my SD card
  4. Noted that Hekate may not work above version 5.0.1
    • I’m currently using 5.1.2 which is possibly why Lakka didn’t launch successfully
    • The catch is that I’m on Switch firmware 9.2.0 but only the latest version of Hekate that I’m using supports it so I may need to downgrade my firmware version manually after all
  5. Used balenaEtcher to flash The ROM image to my SD card (note: I’m using a different SD card than the one that contains my other hack and downloaded Nintendo games)
  6. Copy and pasted the GApps zip file into the SD card root
  7. Booted into Recovery Mode but had to use Hekate 5.0.1
  8. Went to “More Configs”, held Volume + button and tapped Switchroot Android without letting go of the Volume button
  9. Continued holding the Volume + button until TWRP mode appeared (had to hold it down for QUITE a while)
  10. Swiped to allow modifications
  11. Clicked Mount and Selected System
  12. Clicked Install and tapped Select Storage and set as Micro SD
  13. Reboot into Recovery Mode and select the Switchroot option without pushing any buttons

And it seems to be working!!!!

Since Homebrew didn’t work out and I was using a SwitchDroid after all, I returned to the original instructions that started this entire thing:

  1. Installed Version 5.0-11770 of Dolphin (GameCube/Wii) Emulator through APK
  2. Configured Dolphin as follows:
    • CPU Core- JIT ARM64 Recompiler
    • Dual Core- Checked
    • Override Emulated CPU Clock Speed- Checked
    • Video Backend- Vulcan
    • Aspect Ratio- Force 16/9
  3. Downloaded and install Tales of Symphonia and tested–AND IT WORKED!!!!!!!

…..and it was a short lived victory. The gd controls don’t work. -_-

FML

So to *supposedly* fix the joycon controller, I need download the patch, save it to the root of my SD card, and then install it using TWRP… 0_0 FINE. At least I know how to do all that.

After doing the fix, I still couldn’t get the joycon controllers working. So I decided to try pairing a PS4 controller to my SwitchDroid with no success. After that, I paired a travel keyboard to it, and manually mapped controls to the GameCube controller in Dolphin. And it STILL didn’t work.

Then I realized I was a complete idiot, because I forgot to pair my joycon controllers via bluetooth in the Android settings itself. 🤦 After that, I manually mapped the buttons in Dolphin to my joycons and everything worked perfectly!

There WERE some audio glitches, but they aren’t bad enough to prevent from enjoying the game. I tweaked the settings a bit to reduce them as much as I could by checking the “Audio Stretching” box and changing the “Emulated CPU Clock Setting” to 115% under “General” settings. With those settings changed the audio glitches are easy to ignore.

I learned a LOT this project, and now I have a dedicated SD for Dolphin and a separate SD that can use the Hekate exploit to run Atmosphere (or maybe I can use Lakka if I use the Hekate boot launcher 5.0.1 that I’m using for Android). Plus I can STILL use my Switch as a normal console!

The last thing I want to get is an auto-injector dongle + jig combo called DragonInjector that inserts into your game card slot for easy storage. Unfortunately at the time of writing it was sold out, so I bought the one called RCM Loader. This makes it so I won’t have to connect the Switch to my PC each time to inject the Hekate payload.

And with that, it’s time to game and hang out with my cats! 😀

Leave a Reply