In a nutshell, the term Wii homebrew refers to the reuse of Nintendo’s Wii game console hardware, accessories, and software for purposes other than those intended by Nintendo.
Original attempts to create Wii homebrew focused on using the Wii Remote as a pointing device on other operating systems or running web-based games using the built-in web browser. Subsequent developments, such as the Twilight Princess hack, Bannerbomb, and the Homebrew Channel, have made native code execution possible. The newest hacks as of January 2010 are the Lego Indiana Jones hack and the Super Smash Brother Brawl hack. So, for example, the Lego Indiana Jones hack is a save-game hack for “Lego Indiana Jones: The Original Adventures” that functions almost exactly like the Twilight Princess hack by way of a buffer overflow. This hack will work on System menu 4.2 and below.
Wii Architecture
The architecture of the Wii is based on the Nintendo GameCube hardware, therefore most of the homebrew development tools used for the Nintendo GameCube are usable for Wii development. The Wii contains a GameCube compatibility mode, so most of the GameCube homebrew runs unmodified, albeit at a slower clock than native Wii applications. One of these homebrew applications is The Homebrew Channel. This application, when installed, can be found in the Wii Menu of the device. It shows a wave when clicked on, and has had several updates over the past years. You can load this channel through a disc, and/or with an SD card. This channel is mostly used for the hacking of Nintendo Wii games, such as Mario Kart Wii, The Conduit, Call Of Duty, and so on. Code running in GameCube mode also cannot access hardware that is unique to the Wii, such as the Wii Remote.
The first example of homebrew code being run in native Wii mode was demonstrated in December 2007 at the 24th Annual Chaos Communication Congress (24C3). It showed code running and responding to the Wiimote. They were able to find encryption and decryption keys by doing full memory dumps at runtime over a custom serial interface. Using these keys, they were able to create a Wii ‘game’ that ran their own code (their demo happened to show live sensor/Wiimote information, amongst a few other things).
Later, the release of the Twilight Hack software made it possible to run native Wii homebrew code without any hardware modifications. This hack was created by Team Twiizers and is the first release of a non-modchip homebrew-enabling exploit on the Wii. Despite rumors, Firmware 3.4 for the Wii does not block this exploit. However, firmware version 3.3 does disable the ‘alpha’ version of the hack. According to Nintendo, “Because unauthorized modifications to save files may impair game play or the Wii console, updating to Wii Menu version 3.3 will also check for and automatically remove such save files.” Team Twiizers released an updated ‘beta’ version that is compatible with 3.3 and 3.4 updates. But with the new 4.0 update for the Wii, it has been officially announced that the Twilight Hack Bug has been squashed. Another option is BannerBomb+BootMii.
The Wii Optical Drive is very similar to that of the Nintendo GameCube, which has similar flaws and backdoors. The intention of Nintendo to add support for standard DVDs indicates it should be possible to get the Wii to read standard DVDs to load programs and data. On the GameCube, this was a popular method for running homebrew software.
Team Twiizers has released a library (DVDX) that allows other software to be able to play or read DVDs on the Wii. The hack comes in the form of a DOL file that can be loaded using the Twilight Hack or the Homebrew channel. It installs a small, invisible channel to the Wii, that allows DVD playback.
Team Twiizers has also released a fully working version of MPlayer for the Wii. It can play DVDs on an unmodded console if you have DVDX installed, and can also play media off of the SD card. A fork of the Team Twiizers MPlayer, called MPlayer CE, can play media off of the SD card, an FTP server or a SMB mount point. Both versions of MPlayer can be loaded from the Homebrew Channel.
Homebrew for Internet Channel
The Opera-powered Internet Channel for the Wii supports many of the technologies that general browsers also support. These include standards compliance for (X)HTML (including canvas), XML, Javascript (including XMLHttpRequest, but not designMode, contentEditable or Audio), WML, RSS and Atom, CSS, XSLT, SVG and the Adobe Flash 7 plug-in. It does not support FTP, NNTP, IRC, XHTML+Voice, widgets (except Opera widgets, plug-ins and some (X)HTML tags like file fields). Further, it does not support Flash 8 or 9 or 10, or Microsoft Silverlight. (It has been updated to Flash Player Lite which has support for Flash Player 9.)
Each button on the Wiimote, except Power and Home (and 1 on the primary Wiimote), can be detected in Javascript. The roll vector, distance from the Sensor Bar in meters, and cursor coordinates in pixels, can all be detected using the window.opera.wiiremote object. Several demonstrations have been made available with the Wii Opera SDK. Support for Adobe Flash 7 has also allowed many homebrew websites to arise since the Wii launch. Examples include WiiCade and its API, Wiisic, WiiCR (not a website at all but a server / client media streaming solution that uses XAMPP, Flash and the wii Opera Browser), WiiAUDIO and Moowee.tv.
The release of the WiiCade API and the Wii Opera SDK have augmented existing features of the Internet Channel by adding native support for the Wii Remote and more. This allowed more complex software development such as multiplayer online gaming and three-dimensional environments with full texture-mapping.
Wiimote Hacks
A number of features of the Wiimote have been reverse engineered to allow the development of drivers for Microsoft Windows, Linux and Mac OS X. The Bluetooth HID driver is used to interface with the computer using a custom report format.
The Wiimote has been hacked to do a variety of actions not involving the console, including control a Roomba robot vacuum cleaner, mix and splice tracks in a deejay act, control an industrial robot playing tennis, control a drum kit, play laser tag, and controlling a Bluetooth-enabled computer by simulating key presses. Some companies are looking into reprogramming Wiimotes for business applications such as manufacturing operations.
An interactive whiteboard has been created with a projector, the Wiimote and a $5 infrared pen. The Wiimote has also been used as a finger-tracking device that simulates the interface seen in the film Minority Report.