How to Hack and Take Full Advantage of Your Wii

Introduction

I picked up a Wii earlier this year and decided to hack it to see what benefits that would provide.  The results were, to be honest, quite spectacular.  After spending quite some time digging through various HOWTOs scattered across the internet with often conflicting or out of date information, testing different configurations and applications, and running through quite a bit of trial-and-error, I finally have a solid and extremely functional Wii that lets me do pretty much anything I want with it.  Some of the highlights include:

  • Boot directly to WiiFlow (a slick homebrew launcher application), bypassing the health and safety screen and main Wii menu
  • Rip any Wii or GameCube game to an attached 500 GB USB drive
  • Browse, select, and launch any previously ripped Wii game from the USB drive
  • Browse, select, and launch any previously ripped GameCube game from the USB drive (note: this requires a GameCube-compatible Wii)
  • Play older games via emulators (though, honestly, PC emulators provide a better experience)
  • Run various and miscellaneous utilities such Wii and GameCube memory card management utilities, allowing me to copy/backup saved games from the Wii or GameCube memory card to my computer

The end result is that I have every one of my 27 Wii games and and 25 GameCube games ripped and stored on the USB drive, and I can play any one of them now by simply powering on the Wii, browsing to the desired game in WiiFlow, and pressing A on the controller.  No more disc swapping, and no more worrying about where to even store all of the games so they're accessible (they're now all boxed up in a closet, along with my GameCube).  It's a wonderful thing.  :-)

Of course, none of this would be possible without all of the hard work by the various hackers, modders, developers, and other enthusiasts that have worked on this over the years, so I fully acknowledge all of their efforts.  However, because all of this developed over time, as I mentioned above most of the information out there related to Wii hacking is either dated, incomplete, or conflicting with each other.  As my small way of giving back and giving thanks, I put together my own HOWTO covering the most important details regarding exploiting the Wii, setting up your hardware, then installing and configuring WiiFlow for maximal enjoyment.

Please note:  I would consider the Homebrew Setup page on the WiiBrew wiki to be the most authoritative source of information about Wii hacking.  This guide supplements the existing documentation to include additional details that I consider important, and focuses on the Smash Stack method since that works all versions of Wii as well as all versions the virtual Wii included on Wii U (as of 4.0.3).

It is important to note, however, that other exploits are available.  If you do not have (or have access to) a copy of Super Smash Bros. Brawl, please review the Homebrew Setup page for alternative options.  In particular, I've also successfully hacked a Wii using the LetterBomb exploit, which can be done on any (real) Wii running System Menu 4.3.

I'd like to make one thing clear right up front: this tutorial is intended to allow you to (much) more easily and conveniently enjoy playing your own games.  It is not meant to encourage piracy of any sort.  Please do not use this as an excuse to simply download and play Wii games without paying for them; it is ethically, morally, and legally wrong to do so.  Please rip and play only your own legally obtained games, and if you decide to later give away or sell one of the games that you ripped, you must delete your ripped copy as well.

Return to top

Part I - Exploit

Before custom/homebrew software can be run on the Wii, it must first be hacked.  This is accomplished by exploiting some weakness in either a game or in the Wii System Menu.  The exploit is essentially used as a way to break out of the Wii's normally protected environment and install the Homebrew Channel which, once installed, can itself be used to run additional homebrew applications without the need for further exploits.

Prerequisites

The following components are necessary to exploit the Wii.  The versions in parentheses were the latest version available at the time of this writing; any newer version should also generally work.

  • Super Smash Bros. Brawl - this exploit requires SSBB; as noted above, if you do not have SSBB, please see the Homebrew Setup page for alternative exploit options and directions
  • Smash Stack - exploits SSBB and allows the HackMii Installer to be launched; please also read the information on the linked page so you understand how it's supposed to work
  • HackMii Installer (1.2) - installs Homebrew Channel (used to launch other, additional homebrew applications) and BootMii

Return to top

SD Card Preparation

  1. Find a compatible SD card.  This is the trickiest part of the process, as only certain SD cards will work.  For Smash Stack, it must be SD (not SDHC, not microSD, etc.), and must be 2 GB or less.  Even then, compatibility is not guaranteed.  See the linked compatibility list for more information.
  2. Format the SD card with a FAT32 filesystem.  It's possible to do this directly from Linux with mkfs.vfat, but for maximum compatibility (and to remove as many variables as possible) SD Formatter 4.0 is recommended if you have access to a Windows box.
  3. Copy the private/ directory from Smash Stack to the root of your SD card.  If a private/ directory already exists (ie., you re-used an SD card without formatting it), rename the existing directory.
  4. Copy boot.elf from HackMii Installer to the root of your SD card.  Nothing else is required from HackMii Installer.

Return to top

Wii Preparation

Note:  Do not insert the SD card at this time.

  1. Launch SSBB
  2. Create a new save file, if prompted
  3. Open Vault, then Stage Builder
  4. Delete all three of the pre-created sample stages (plus any other stages you may have previously created)
  5. Exit back to the Smash Brothers, then exit the game

Return to top

Homebrew Channel Installation

  1. Insert the prepared SD card
  2. Launch SSBB
  3. Open Vault, then Stage Builder
  4. The exploit should launch immediately, displaying a black screen with white text followed by a prompt about HackMii.  If instead
    1. the stage builder opens, you didn't setup the SD card properly.  Review the SD Card Preparation instructions and try again.
    2. the game freezes, your SD card may not be compatible.  Try repeating the SD Card Preparation steps, including performing a FULL (overwrite) format of your SD card using SD Formatter, and try again.  If it still fails, you'll probably need another SD card.
  5. Press 1 to continue, then A to continue again
  6. Select Install The Homebrew Channel, and choose to continue
  7. If you have the option (it's not supported on all Wii models), I also recommend installing BootMii.  This can be used to backup and (potentially) restore your NAND memory in case of a failure.
  8. When finished, select Exit
  9. You should be taken to the Homebrew Channel, which will be empty by default.  Continuing to the WiiFlow section for detailed information regarding setting up WiiFlow to launch Wii and GameCube games from USB media.

Return to top

Part II - WiiFlow

Once the Homebrew Channel is installed, you can easily run other homebrew software on your Wii.  There are many types of homebrew applications available (the list of homebrew applications on the WiiBrew site is a great place to get started), but the one most relevant for our purposes is WiiFlow.

Similar to the Homebrew Channel, WiiFlow is used to launch other applications, but unlike Homebrew Channel it provides a fancy and easy to navigate UI that can directly launch both Wii and GameCube games (legally) saved on a local USB hard drive.  This is the end-goal of this tutorial: to be able to easily browse and launch any Wii or GameCiube game you own at a moments notice, without requiring the inconvenience (or, in case children are present, dangers) of disc swapping.

Prerequisites

The following components are necessary to setup WiiFlow for launching Wii and GameCube games from USB media.  The versions in parentheses were the latest version available at the time of this writing; any newer version should also generally work.

  • d2x cIOS (beta53-alt) - Required to play Wii ISOs/WBFS; multiple versions of d2x are available, so please see How to choose the d2x distribution fitting your needs for details on choosing the correct one.  Unless NAND emulation is required (you probably don't need it, but do a little research on the topic before continuing), I recommend d2x-v10-final-alt for the most flexibility.
  • d2x cIOS Installer (3.1) - Required to install d2x cIOS
  • DIOS MIOS (2.10) - Required to play GameCube ISOs; grab the file labeled "DIOS MIOS 2.10 real NAND"
  • Multi-Mod Manager (13.4) - Required to install WAD files; other WAD installers are available, but this is the one that was recommended in the original tutorial I followed and seems to work fine
  • WiiFlow (4.2.1) - GUI loader for launching games and other applications

The following additional components are optional, but can enhance the experience.  Take a look at the descriptions and, if it sounds useful, download them as well.

  • WiiFlow Channel Forwarder - Required to launch WiiFlow directly from Wii system menu; an official installer is available from the WiiFlow site, and additional, alternative forwarders are available from the WiiFlow wiki site.  I'm personally not a fan of the official forwarder (it's too busy), and so far find Carbonik to be the best of the alternatives, but grab whatever you like.
  • WiiFlow Themes - This certainly isn't necessary, but you may want to browse around to see what's available.
  • CleanRip (2.0.0) - A Wii homebrew application that lets you rip Wii and GameCube games to ISO directly on your Wii.  If you plan on playing GameCube games, this is necessary; if only want to play your Wii games, this may not be needed - see USB Drive Preparation section for more details on this.

Return to top

SD Card Preparation

  1. If you already formatted your SD card during Part I of this tutorial, you can simply reuse that card.  If not, you'll need to format the SD card with a FAT32 filesystem.  Please see above noted regarding SD Formatter 4.0 if you have any questions/issues with this.
  2. Create the following subdirectories on the root of your SD card:
    • apps
    • wad
  3. Extract all of the downloaded archives
  4. Copy all files and directories extracted from the d2x cIOS package into the d2x-cios-installer directory.  This should place ciosmaps.xml in the same directory as boot.dol, and d2x-v10-beta53-alt (containing several .app files) should be a subdirectory.
  5. Copy d2x-cios-installer to sd:/apps/, where sd/: is the root of your SD card
  6. Copy MMM from Multi-Mod Manager to sd:/apps/
  7. Copy wiiflow to sd:/apps/
  8. If you downloaded the WiiFlow Channel Installer, copy wiiflow_channel_installer to sd:/apps/.  If you instead downloaded a custom forwarder, copy that WAD file (eg., Carbonik-FIX94v14b-forwarder-DWFA.wad) to sd:/wad/
  9. Copy DIOSMIOS_2.10.wad to sd:/wad/
  10. If you downloaded any WiiFlow themes, hold off on copying them for now.  After running WiiFlow for the first time, a new directory named sd:/wiiflow/ will be created.  Theme files can be added to this directory after initial setup on the Wii.

Return to top

USB Drive Preparation

WiiFlow (as well as the other software involved) is very particular about hard drive support, particularly in regards to filesystem types and specifications.  Please review and keep in mind the following guidelines when planning on your hard drive partitioning scheme.

  1. GameCube games must be launched from a FAT32 partition.  The FAT32 partition must be the first partition on the USB drive, and must be formatted with a maximum cluster size of 32 KB.
  2. Formatting the FAT32 partition properly can be tricky because of the cluster size requirements.  Most guides recommend EaseUS Partition Master Free, which works, but it's scammy and tries to install lots of crapware.  Fortunately, the same results can be received by partitioning the drive using Linux utilities; after finishing this section, jump to USB Drive Partitioning under Linux for the details.
  3. Wii games can launched from either an NTFS or FAT32 partition.  NTFS is required to support single files larger than 4 GB, such as Wii ISOs.  However, must utilities/launchers can support split files, and Wii games "installed" through WiiFlow are converted to WBFS, which generally uses much less space than a full ISO.  So, depending on your needs I would recommend:
    • if only want to rip games directly to the USB drive attached to your Wii and don't care about any other copies (the simplest option), just use a single large FAT32 partition and install the games through WiiFlow
    • if you want to be able to backup your games to another drive and/or play them for some other purpose (hacking, extracting assets, playing with an emulator such as Dolphin, etc.), then you'll be better off ripping to ISO using CleanRip and storing on (and playing from) an NTFS partition
  4. GameCube games must be stored with a very specific naming convention.  All games must be:
    1. stored as ISO images
    2. named (literally) game.iso; the second disc of multi-disc games must be named gam1.iso (with no 'e')
    3. stored inside a directory named after its unique Game ID.  This can be looked up on a site like gametdb.com, or pulled from from the game's ISO using a program such as Wimms ISO Tool (wit list game.iso)
    4. stored under a parent directory named games (lowercase, case-sensitive)
    • For example, ISOs for Baten Kaitos would be saved as:
      • USB1:/games/GKBEAF/game.iso
      • USB1:/games/GKBEAF/gam1.iso
  5. Wii game naming is much more flexible, and has just two main rules.  All games must be:
    1. stored as ISO images (rip via CleanRIP) or WBFS (install via WiiFlow) files
    2. stored under a parent directory named 'wbfs' (even if using ISOs)
    • For example, the ISO for The Last Story could be saved as any of:
      • USB2:/wbfs/The Last Story [SLSEXJ]/The Last Story.iso
      • USB2:/wbfs/The Last Story/The Last Story.iso
      • USB2:/wbfs/The Last Story.iso
      • USB2:/wbfs/SLSEXJ.iso
    • If using WBFS for Wii games instead, just install the game via WiiFlow and it'll automatically save and name it in an appropriate format.
  6. When connecting the USB drive to the Wii, use port 0 (the bottom port).  All utilities supporting USB drives will support this port.  Only some, recent utilities support drives plugged into port 1.
  7. Finally, though perhaps most importantly, please note that not all USB drives are compatible with the Wii.  GBAtemp.net provides a very handy USB Devices Compatibility List, which I highly suggest you review if you plan on purchasing a new drive for this.  I use a WD My Passport 500 GB drive with my Wii (specifically, this one) and it works flawlessly for me.  If you're unable to launch games even after double- and triple-checking that you followed all of the steps and advice in this guide, you may want to try using a different drive.

Return to top

USB Drive Partitioning under Linux

If running Windows you can use EaseUS Partition Master Free to accomplish this, but as noted above this tries to install several pieces of crapware on your system.  If you have access to a Linux system, I highly recommend this method instead.

Note:  All of the following commands must be run as root.

  1. Ensure that mkfs.vfat (dosfstools) and mkfs.ntfs (ntfs3g) are installed
  2. Identify your disk's native sector size; the physical size should be something like 512 or 4096:
    • fdisk -l /dev/sdb| grep 'Sector size'
  3. Calculate how many sectors per cluster are needed for a 32 KB cluster size (you need to do a bit of basic math for this, but you can easily plug it into a calculator).  This will equal: 32 / (sector size / 1024).  Eg., my sector size is 512, so the sectors per cluster I need = 32/(512/1024) = 32/.5 = 64.
  4. If you need to repartition your drive, do so as follows:
    1. Launch fdisk in DOS compatibility mode:
      • fdisk -c=dos /dev/sdb
    2. Delete all existing partitions
    3. Use n to create a new primary partition 1 of appropriate size for your GameCube games
    4. Use t to change the partition type to b (W95 FAT32)
    5. Use a to set the partition as active
    6. Use t to create a new primary partition 2 of appropriate size (or just use the rest of the available disk) for your Wii games
    7. Use t to change the partition type to 7 (HPFS/NTFS/exFAT)
    8. Use w to save your changes
  5. Format the first partition with mkfs.vfat, where -n = volume label, -F = FAT size (always 32), -S = sector size (from step 2), and -s = sectors per cluster (from step 3):
    • mkfs.vfat -n GCGAMES -F 32 -S 512 -s 64 /dev/sdb1
  6. Format the second partition with mkfs.ntfs, where -L = volume label, -f performs a fast initialization, and -I disables indexing (not used by Wii):
    • mkfs.ntfs -L WIIGAMES -f -I /dev/sdb2
  7. As a final precaution, run sync before removing the USB disk to ensure all write operations have completed

Return to top

Wii Configuration

Note: The Wii must be connected to the internet for part of this process.  Please configure an internet connection through the System Settings before beginning this process.

Note: Most (old) guides suggest installing d2x into slots 249 and 250, which is used by default by launchers such as Wiiflow, but this is problematic as new Wii games will repeatedly prompt you to update and overwrite slots 249 and 250 with stub (non-functional) IOSes (this 'feature' was added by Nintendo specifically to break hacked Wiis).  By installing d2x into alternate slots and instructing Wiiflow to look for it in this alternate location, we can avoid that problem.

  1. Insert the SD card, launch the Homebrew Channel, and, if necessary, set it to read apps from the SD card (press 1 to bring up the menu for this)
  2. Launch Multi-Mod Manager
  3. Select WAD Manager and press A
  4. Press 1 to batch install all WAD files in sd:/wad/, which should include DIOS MIOS and, optionally, a WiiFlow channel forwarder.  Press A to proceed with installation.
  5. Confirm installation, then press Home to exit back to Homebrew Channel
  6. Launch d2x cIOS installer
  7. Press A to continue to the CIOS SETTINGS page
  8. For Select cIOS, press Right to select d2x-v10-beta53-alt (if this version cannot be selected, you did not properly copy the files to the SD card; stop, review the SD Card Preparation details, and try again)
  9. A cIOS will be installed into several bases/slots during this step.  Set the base and slot to the first of the following pairs, press Home to add the cIOS to the batch installation script, then repeat for the next.
    1. base 56, slot 248
    2. base 57, slot 247
  10. Press A to continue, then again to confirm.  Part of the installation process will require downloading several files from the internet; this will take a while.
  11. After installation, press B to exit back to Homebrew Channel
  12. If using the WiiFlow channel forwarder, launch WiiFlow Channel Installer, then select Install Channels.  Exit back to Homebrew Channel when complete.

Return to top

WiiFlow Configuration

  1. Launch WiiFlow
  2. Click (with A) the Settings icon (the two gears) on the left of the page
  3. Set the Game Partition (for Wii games) to USB2; everything else can be left alone for now, so click Back (or press B)
  4. Click on the GameCube icon on the right side of the page
  5. Click the Settings icon
  6. Set the Game Partition to USB1; it should default to this, so you may not have to change anything
  7. Press B on the NAND icon (it looks like the Wii system menu, and is in the same location previously occupied by the GameCube icon) to open the Select Source menu.  This menu can be used to switch back and forth between the different sources:
    1. Wii Games (USB icon)
    2. GameCube Games
    3. Plugins/Emulators
    4. Wii Channels/NAND
    5. Homebrew
  8. Press Home to access the home menu and click Settings
  9. Switch to page 2 and launch Startup Settings
  10. Set the following (be certain you've already installed d2x into slot 248 before continuing):
    1. Force Load cIOS: On
    2. Force cIOS Revision: 248
  11. Click Back and switch to Wii Games.  If you had previously copied games to the USB drive, they should now show up.  If/when you add new games in the future, press Home, then Reload Cache to force it to see the new games.  This is also needed when adding GameCube games.
  12. Click Settings, then Download, Missing to automatically download and prepare covers for the detected games.  Like Reload Cache, this should be run any time new games are added.
  13. To rip and install games directly from the Wii, press Home, then Install Game.  Set the appropriate destination and click Go.
  14. Feel free to tweak other settings as desired.  The WiiFlow Wiki has many good tips and suggestions.

Return to top