Skip to content

Instantly share code, notes, and snippets.

@0xBEEB
Last active February 14, 2023 05:45
Show Gist options
  • Save 0xBEEB/e337f241ea150b10b307b1931c07b105 to your computer and use it in GitHub Desktop.
Save 0xBEEB/e337f241ea150b10b307b1931c07b105 to your computer and use it in GitHub Desktop.
What I wish I knew going into Wii U hacking

What I wish I knew going into Wii U hacking

For the past six months I've been learning about hacking my Wii U. I could have completed this project in a weekend, but sometimes I get an itch to go further.

My goal has been to have the ultimate couch console where friends can play video games in the same place in front of the same screen (plus gamepad screen). After that first weekend I was able to play homebrew, and make game backups to play. It even came with new software to use PS3 controllers on the console as pro controllers. My console had become really cool, but it wasn't perfect. So, I began working on getting it from 75% to perfect to 95% perfect (see unfixed cons below).

The documentation for that first 75% is really good and simple, but it's so simple the learning curve to do more advance things is steep. The research involved included digging through decade old forum posts, out of date wikis, finding files in abandoned MEGA drive downloads, reading source code in a dozens of repos, and lots of trial and error.

These are some notes about what I wish I knew when I started. I hope it will direct you such that the learning curve in this niche space is not so steep.

Why the Wii U?

The Wii Uis a 3-in-1 console. It is able to natively play both Wii U and Wii games on hardware. Stock, the Wii U does not have backwards compatibility for GameCube, but a piece of homebrew called Nintendont will unlock the ability of the virtual Wii (vWii) to run GameCube roms natively on the hardware, and it can even utilize a USB attachment that allows GameCube controllers to be plugged in (memory cards are emulated though).

This is possible because the architecture of the system is an iteration of the previous systems. The Wii U's processor is an IBM PowerPC called "Espresso" with three single thread cores that are clocked at 1243.125 MHz. The GPU is an AMD Radeon clocked at 549.999 MHz codenamed "Latte". Finally the SoC security processor is an iteration of the Wiis "Starlet" called "Starbuck".

So, we have Wii U games, Wii games, and GameCube games. That's a lot of games. But there's more. We also get access to the virtual consoles of both the Wii and the Wii U. This add hundreds of titles for NES, SNES, GBA, N64, Commodore 64, Sega Master System, Sega Genesis, and Nintendo DS. While these are emulated, they are official Nintendo games running on official Nintendo hardware.

But that's still not all. The Wii has many homebrew emulators that allow any rom for many systems, up to and including Playstation 1, to run on the system. There are also advanced methods to inject roms into Wii U virtual console titles to use the official emulator. The Wii U emulator has some neat features like using the gamepad screen as the bottom screen on DS games.

Between official games, virtual console, emulators, and inject hacks the Wii U can play thousands of games. Many of those games are playable on official hardware.

Another thing that the Wii U had going for it is the ability for party games. The gamepad and Wii remotes give a unique experience to have people many party games. The assymetric party games with the gamepad on Wii U are amazing (Nintendoland, Game & Wario, etc). Mario Party games are super fun with Wii remotes as you and your friends are flailing around trying to use the motion controls to get all the stars. Then there are all the classic sports like games. You and your friends can have a bowling match in your living room. Finally, there are light gun games that use the wii remotes.

Accessories for the Wii (such as classic controllers, light gun housings, steering wheels, balance boards, etc) are all super cheap, and I don't know of a less expensive way to setup a home arcade with all those features.

But Unfortunately :(

Unfortunately, it's not all bread and roses. There are some really weird quarks with the Wii U.

The Wii U was not a very popular console, and Nintendo never really utilized all of it's functionality. For example, there is an expansion port on the bottom of the gamepad that was never used.

This neglect and low investment resulted in under utilization of the gamepad. So, it's often clunky and in the way. Often I want to use it as a controller to play a Wii game ... but it doesn't work at all in Wii mode ... unless you want it as a screen to play your game while you use another controller.

Nintendo also put arbitrary limits on things. Such as in the Wii U OS, Cafe OS, you can only have 300 menu items. That includes folders. So, when you install a game that makes you hit 301 it will force you to delete a game.

Or there is the fact that the when the Wii U uses an external harddrive it has to be in a proprietary format that can only only hold Wii U titles. This means Wii and GameCube roms will have to be on the SD card or a separate external harddrive.

Then, there is just weirdness. Like, if you have a Wii U pro controller it won't work as a classic controller in the vWii.

That's not so bad

After considering the pros and cons I decided it would be able to get close enough to what I wanted that the project was worth it. Maybe it is for you as well!

Before we even hack anything

First, you will need some equipment. Wii U's are starting to get more rare and are slowly climbing in price. As of writing, used decent quality ones can be had for $150 without too much haggling. Please note: you MUST have a working Wii U gamepad. Some sellers are selling just the tower without the gamepad, and this alone will not work at all. You can pair a new gamepad fairly easily if you buy them separately.

There is also a project called DRC Sim that allows you to use a computer or phone as a replacement gamepad, but it is very technical and seemed like such a hassle just to boot the system every time I decided against it. In the future though, this project could be really neat with custom gamepads made from 7" tablets or something.

When purchasing a Wii U also ensure that the system is not locked. There are some tricks online to get around some locks, but if the main system user is locked and they use a Nintendo ID then the only way to unlock it is to call Nintendo on the phone and have them erase the locked account over the Internet.

In addition to the Wii U, you will also need at least one Wii remote. Many state you need to have a the original (non-motion plus) wii remote, but every Wii remote I have has worked fine.

You will also need an SD card, an external harddrive, and if the external harddrive is not externally powered you will need a "Y cable" that uses two USB A ports so the drive can draw enough power from the Wii U. Not all SD cards and harddrives work with the Wii U. I have had good luck with Sandisk Ultra SD cards and Western Digital spinning disk external harddrives.

As noted above, Wii and GameCube games can't be on the same external harddrive as the Wii U games. So, if you want both, then you will need a second external harddrive.

For the SD card, I would get at least a 32GB card. For the Wii U games harddrive, 1TB will likely be more than enough due to the 300 menu item cap. For the Wii and GameCube drive, well it depends on how many games you want. I went with a 1TB drive for the second drive as well.

Finally, you will need a computer capable of writing to an SD card and a USB external harddrive. Some of the software is Windows only if you want to do advanced things, but most everything can be done on Linux.

Lets homebew

You are now ready to put custom firmware on your Wii U. The custom firmware relies on an exploit that works on all versions of the Wii U. So, update the firware first to the newest version.

There are currently two different custom interfaces you can load into with the firmware that have two different installs, Tiramisu and Aroma. Tiramisu is very stable and Aroma is in beta. The good news is that you don't have to choose. You can install both. After everything is setup you will be able to hold "X" while booting to get a prompt that allows you to choose to boot into either one or the default regular menu. (https://wiiu.hacks.guide/) (https://aroma.foryour.cafe/)

vWii Modding

The virtual Wii on the Wii U can be modded for Wii homebrew. The instructions for doing so are located here: https://wiiu.hacks.guide/#/vwii-modding . Again this only requires a PC to be able to copy items onto an SD card.

Blocking Updates

Updates should be blocked on the Wii U. Both methods listed at https://wiiu.hacks.guide/#/block-updates can be done with Linux.

Dumping WII U Discs

Wii U games can be dumped and installed to a USB backup harddrive. Instructions for this can be found here: https://wiiu.hacks.guide/#/dump-games

Dumping WII Discs

Wii games can be dumped to a USB or SD card. Instructions for this are located here: https://wiiu.hacks.guide/#/dump-wii-games

Pretendo

Pretendo is a replacement online network for the defunct Wii U Nintendo Network. Pretendo is currently in beta and can be installed just via linux. https://pretendo.network/docs/welcome

That was a fun weekend

So, you spent your weekend hacking your system! You can now dump wii u games, dump wii games, play game backups, play on the Pretendo network, and even mess around with homebrew. But what about all that other stuff.

Buckle in.

File types

A number of terms are used for file formats, and they can be really confusing.

  • WUD: Wii U Disc. This is a direct image of a Wii U Disc
  • WUX: A compressed WUD.
  • WUP, NUS, Loadiine: These are all the same thing. They are the format a title is stored in when installed on a Wii U in encrypted format. These can be directly installed onto a Wii U. This is a folder containing files that end in .h3 and .app.
  • RAW: The decrypted format of a WUP. This is a folder with many sub files.
  • ISO: A disc ISO used for Wii or GameCube (among other systems we aren't concerned with).
  • RVZ: A compressed Wii and GameCube format that the dolphin emulator uses.
  • WBFS: Wii Backup File System file that is used to store Wii games

WUDs can be dumped to the SD card using homebrew. Some software will dump it in WUP format, and others will dump it in RAW format. If you have a WUP on your computer, then you can convert it to a WUP using JWUDTool (https://github.com/Maschell/JWUDTool). If you have a WUP and want a RAW, then you can convert it with cdecrypt (https://github.com/VitaSmith/cdecrypt). If you have a RAW file and want to convert it to a WUP you can use NUSPacker (https://bitbucket.org/timogus/nuspacker/src/master/). There is not an existing tool to convert WUP back into a WUD.

Keys

In order to decrypt and encrypt you may want a number of keys.

First and foremost, the Wii U Common Key.

Each Wii U title also has a Title Key.

There are also keys for Espreso and Starbuck.

Your favorite search engine should help you find these in about 5 seconds.

Downloading games

Lets say you totally own a game, but the disc is unreadable or the file corrupt and you swapped systems. Or you otherwise need to download a Wii U game without having an original disc or dump. Most guides will tell you they can't say where to get them, ... but what if I told you on the Wii U you can download them directly from Nintendo!

You should have located the Wii U Common Key and all of your title keys. Using these you can download WUP/NUS files using:

On your computer: There are a number of applications you can use including JNUSTool or FunKii to download any given title. (https://github.com/Maschell/JNUSTool) (https://github.com/Maschell/JNUSTool). After you have downloaded the WUP/NUS files they an be installed using the instructions for installing backups linked above.

On you Wii U: There is a new homebrew application that will allow you to download any Wii U title/Upgrade/DLC in the eShop and install it. It's called NUSspli (https://github.com/V10lator/NUSspli).

Nintendont

Nintendont is the software for the vWii that unlocks the ability to play GameCube games on the Wii U. (https://github.com/FIX94/Nintendont)

Handling Wii and GameCube backups

The best practice for setting up a harddrive for Wii and GameCube backups is to format the drive to fat32. Create two directories on the root of the harddrive: game and wbfs.

The GameCube games need to be in ISO or GCN format. These games go in the "games" folder. Each game needs to be put in a folder with the format "Game Title [IDHERE]" where the characters within the brackets are replaced with the unique game id found on https://www.gametdb.com/. The rom is then put in this directory renamed to exactly "game.iso". If there is a second disc it is renamed exactly to "disc2.iso". So, for Mario Sunshine it would be in: usb:///game/Mario Sunshine [GMSE01]/game.iso

For Wii games you need them in wbfs format. If they are in rvz format, then you can use the Dolphin emulator to convert the file back to ISO. With an ISO you can use tools like wiimms-iso-tool (https://github.com/Wiimm/wiimms-iso-tools), wiibm (https://wii.guide/wiibackupmanager.html), or Wii Backup Fusion (https://github.com/larsenv/Wii-Backup-Fusion/releases) in order to turn them into wbfs. Note that you will need to configure these tools to properly split the wbfs files into 4GB chunks in order for them to work on the fat32 formatted drive.

These titles should be formatted correctly for the drive and be in the drives /wbfs directory when you transfer them to the drive with the above tools.

USB Loader GX and WiiFlow

USB Loader GX and WiiFlow are two different vWii homebrew applications that let you play Wii and GameCube backups. GameCube backups use Nintendont so that will also need to be installed. I had issues with WiiFlow but USB Loader GX worked perfectly. You may have better luck though. (https://wii.guide/usbloadergx.html) (https://wii.guide/wiiflow.html)

VC Injects

As mentioned before, Virtual Console injects can be done on the Wii U to allow you to replace the rom in a a virtual console title with almost any other rom. This allows you to use the Wii U official emulator and allows for the gamepad to be used. However, these titles you create will count against the Wii U 300 title cap.

There are a bunch of tools that can do this for some systems but not others. However, there is one all-in-one script that does them all, but it only works on Windows and I could not get it to work in wine. If you really want this, I suggest using real a Windows install. I used a Windows VM. The software is UWU VCI AIO (https://github.com/stuff-by-3-random-dudes/UWUVCI-AIO-WPF)

Forwarders and Channels

Another term you will hear a lot is "forwarder". This is a channel (the menu items in the Wii U inerface and the vWii) that forwards you to a homebrew application. These are hand because in order to open homebrew you need to go to the homebrew menu, and then open it. With a forwarder you can launch it directly from the system menu.

There are even methods to have a forwarder on the Wii U menu to a homebrew application that launches the vWii and automatically forwards to a Wii homebrew.

The ultimate couch console?

There is so much more to talk about here, but I could go on forever. I also don't want to pretend to know everything about Wii U hacking and homebrewing. However, from what I found, with these tools you should be able to create the (95%) ultimate couch console. With these tools you should be able to setup all of the games you want and have tons of fun.

Some links to dig deeper

@greyivy
Copy link

greyivy commented Feb 14, 2023

Followed this over the weekend and it was super helpful. Thanks so much for sharing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment