Wii U Haxchi and CBHC: There is a safer and leaner option

Yes, I still have a Nintendo Wii U and I think it is one of the best consoles ever. Why? Because it can play all Wii U and Wii games, and once hacked it gives one the access to Homebrew and emulations spanning every generation that came before it!

Preamble

So I was using a cheap SD card with my Wii U to keep all of my homebrew apps for both the Wii U and the virtual Wii (vWii), and the card didn’t last long. It became permanently read-only in less than an year. I replaced it with a card from a more serious brand, and I took the opportunity to update some of the homebrew apps. Well I made a few boo-boos in the process, and I learned a lot about Haxchi from it. So this post is my way of share what I have learned.

I will not dwell too much on the mistakes I made, except when relevant to the ultimate purpose of this post, which is to detail what I think is the best way of launching and configuring Haxchi on the console.

Background

I take that readers of this post have some degree of awareness about Haxchi. But for the sake of completeness, I’ll give a very short overview. In order to execute homebrew software in the Wii U, one must bypass the Wii U protections built by Nintendo. This is often done by exploiting bugs in software, such as specific copies of games and flaws in the Wii U system software.

If you install a homebrew software on your Wii U and you try to load it directly, the system will return an error (normally a 199-9999 error) and will halt and will only recover with a cold reboot (turn off then back on). This is expected because of Wii U’s protection that disallows unauthorised software. An exploit will allow for such code to be executed.

While there are many exploits available for the Wii U, they often involve taking a series of steps such as opening an URL via the web browser. Haxchi is an exploit that allows users to launch homebrew directly from the Wii U system menu by clicking on an icon. By default, when you Execute Haxchi its seems like it just re-loads the system menu. But in fact it applied the exploit that allow the execution of homebrew. So no more 199-999 errors.

Haxchi works by modifying a game downloaded from the Wii U shop. When a game is downloaded it is “digitally signed” to work with your Wii U console. Now think of the game as an egg. The signature is built within the egg’s shell. Haxchi can hack certain games by emptying the egg of its contents, and injecting its own code inside, while leaving the egg shell intact. So your Wii U still thinks that this egg is legitimate.

The main point of Haxchi is the convenience of having an icon at the system menu. While way more convenient than having to launch an URL on the Wii U Browser to activate the exploit, it is still annoying having to run Haxchi, wait to be sent back to the system menu, and then run the homebrew application. Plus there is plenty of room for human error. Remember that if one accidentally run a homebrew application before Haxchi, the system will freeze on a 199-9999 error.

A proposed solution is to install an additional patch known as CBHC (Cold Boot HaxChi), which will ensure that HaxChi is executed as soon as the Wii U is booted. However this is an extremely dangerous patch. If the Haxchi install is moved, deleted or reinstalled, or if the user account that acquired the software that was exploited by Haxchi is removed, the console will BRICK (see here). There must be a better option, right? In fact I believe there is.

Forget about Cold Boot Haxchi and customise Haxchi instead

My Wii U is configured as follows. Haxchi is not configured to be executed during boot (CBHC is not installed). I have a Haxchi icon on my system menu that, once loaded, will automatically launch the homebrew launcher application which lists all homebrew applications that are installed on my Wii U.

There are no icons for homebrew applications on my system menu. There is a customised icon for Haxchi, but remember that Haxchi isn’t a homebrew application, but an exploit. Yes, there is a Haxchi homebrew application, but that is only used to install Haxchi. Once Haxchi is installed, you can get rid of it (and in fact you should!)

I used Jack Sorrel’s modified Hachi files for this, which can be found here. If you look inside the zip file, you will find two directories: wiiu and haxchi. The wiiu directory contains the Haxchi installer (which is a homebrew app) while the haxchi directory contains the Haxchi configuration files which are used when Haxchi is installed.

All that Jack did was to modify the branding and configuration files for Haxchi found under the haxchi directory, so the Haxchi install binaries remained untouched. You can actually look at what he did and customise it further if you wish so. This configuration includes:

  • bootDrcTex.tga and bootTvTex.tga – Splash images displayed when Haxchi is being loaded.
  • iconText.tga – The icon for Haxchi shown in the system menu, data management, etc.
  • config.txt – Configures the launching options for Haxchi.
  • title.txt – An alternate title for Haxchi (it is called Homebrew Launcher instead).

Anyone can modify these files before installing Haxchi in order to customise the deployment, just bear in mind to follow these instructions for modifying the image (TGA) files. These files are only used when Haxchi is installed. They are basically injected inside the DS game that will be exploited. Once Haxchi is installed, these files are no longer needed. The same goes for The Haxchi installer. So you can safely delete both the /haxchi and the wiiu/apps/haxchi directories of your SD card.

Besides branding Haxchi as “Homebrew Launcher”, Jack configured it so the default action is to load the homebrew launcher application. I feel this is the safest and most convenient way to enable the launching of homebrew applications from the Wii U system menu. All homebrew applications would be found under the “h” icon for the “Homebrew Launcher” (Haxchi). I don’t bother installing “channel” applications that would be listed outside the homebrew launcher. I honestly don’t see the point as I find more conveniente to have them all under the “h” icon, where there is no risk of 199-9999 errors.

So to install Haxchi, just follow Jack’s video entitled “Homebrew on Home Menu” found on his Wii U page (scroll down to the middle of the page). A few pointers:

  • Never EVER uninstall Haxchi from the Wii U system memory, even if you plan to reinstall it. Following the egg analogy above, if you delete Haxchi you would be throwing away the egg shell. This means you will have to download the game to be exploited again from the Wii U shop (and who knows for how long will the Wii U shop e available?!) Keep in mind that Haxchi can be branded as something else (e.g “Homebrew Launcher”) so don’t get confused and delete it by accident.
  • If you want to re-brand Haxchi or change its configuration (e.g. what button does what when launching Haxchi) you will have to re-install it. This will require the Haxchi installed under /wii/apps/haxchi and the deployment branding/config files under /haxchi at the root of your SD card.
  • Backup Haxchi! As I said, we don’t know for how long will the Wii U shop be available. Imagine if you uninstall Haxchi by accident and you can no longer download a game that could be exploited by Haxchi? Backups will do the trick. I basically copied Haxchi to my USB drive used by Wii U (when finding two copies of Haxchi, one in the SD and another in the internal memory, Wii U will prioritise the one in the system memory). Plus I made TWO additional copies to small USB drives which would be lying around useless if not used for this purpose. One of the copies is bubble-wrapped and placed inside the neatly stored Wii U box at my attic.

I spent 16 hours fixing a mess I did with my Haxchi install, and I learned a lot in the process. I hope this post can help others in a similar position. Have fun!


Leave a comment