Wii homebrew

Various exploits have made running homebrew games and emulators easy on the Wii.

Wii homebrew refers to the use of Nintendo's Wii game console to run homebrew software that has not been authorized by Nintendo. It achieves this by defeating the Wii's copy protection and code signing measures. In more general terms, Wii Homebrew refers to the use of the Wii's hardware, accessories and software for purposes outside those intended by the manufacturer.

Original efforts focused on using the Wii Remote as a pointing device on other operating systems, and running web-based games in the built-in web browser. Subsequent development in game exploits, such as the "Twilight hack", "Smash Stack",[1] "Indiana Pwns",[2] "Yu-Gi-OWNED", "bathaxx", and "Return of the Jodi", made installing the "Homebrew Channel" possible. There were also some exploits that did not require a game, namely "Bannerbomb" and its later incarnation "LetterBomb".[3]

Software

The architecture of the Wii is based on the Nintendo GameCube hardware.[4] Because of this, most of the homebrew development tools used for the Nintendo GameCube can be used for Wii development. The Wii contains a GameCube compatibility mode, so most GameCube homebrew will run unmodified, albeit at a slower clock rate than Wii applications. In addition, code running in GameCube mode cannot access hardware unique to the Wii, such as the Wii Remote and the Wii's USB ports. A homebrew application, the Homebrew Channel, is used to execute unofficial code that has not been approved by Nintendo, such as applications, games, emulators, media players, etc.[5]

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 Wii Remote.[6][7] Later, the release of the Twilight Hack exploit made it possible to run unsigned code without any hardware modifications. This hack was created by Team Twiizers and is the first release of a Wii exploit enabling homebrew software without using a modchip. It required the video game The Legend of Zelda: Twilight Princess. However, System Menu 3.3 blocked the alpha version of the hack. Team Twiizers released a beta version which contained a workaround. This led Nintendo to implement another block in System Menu 3.4. Team Twiizers yet again released another beta version of the Twilight Hack. It has been officially announced that the Twilight Hack is unusable on System Menu 4.0 and above.

The SD card slot on the Wii can be used to exploit the system for soft-modding.

Various other methods of running and installing homebrew software on the Wii have since appeared, all of which work with System Menu versions 4.2–4.3. Notably, the Bannerbomb method depends on a vulnerability in the System Menu itself. The first version of it was in the Channels section in the SD card management screen, where it takes the form of a channel. When the menu is accessed, the image ("banner") on the file corrupts and crashes the Wii, letting the boot.dol/elf literally "take over the Wii."[8] The vulnerability was patched in System Menu 4.2, but HackMii has since released another version exploiting a vulnerability in the SD card menu.[8] Finally, with the patch introduced in the 4.3 update, Bannerbomb was declared unusable. Instead, Team Twiizers released another exploit, LetterBomb, which works similar to BannerBomb, but uses an exploit in the Wii Message Board to crash the Wii.[9] Indiana Pwns works in a manner similar to the Twilight Hack, but only for Lego Indiana Jones: The Original Adventures. Smash Stack is based on a vulnerability in Super Smash Bros. Brawl by executing a custom stage file consisting of the installer directly off the SD card. This vulnerability is considerably more difficult for Nintendo to patch, as it exists in the game itself and not in the system. However, one must delete all custom stages one has on the Wii's save data or the SD card. It was released by comex for NTSC-U and ported to NTSC-J, PAL and KOR by others.[10] Another exploit, Return of the Jodi, works on LEGO Star Wars: The Complete Saga.[11]

The Wii Optical Drive is very similar to that of the Nintendo GameCube, which has similar flaws and backdoors.[12] On the GameCube, this was a popular method for running homebrew software. Efforts have generally been successful in using the optical drive on most Wii systems to read standard DVDs. However, the optical drive included with black Wiis and newer white Wiis is the D3-2 optical drive, which is only capable of reading original Wii and GameCube discs.[13] This can be fixed by swapping drives with an older Wii.

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 onto a SD card as an application and executed through methods such as LoadMii, Priiloader, Twilight Hack and the Homebrew Channel. It installs a small, invisible channel on the Wii that allows DVD playback. It has currently been patched.

Several media players also exist for the Wii, including WiiMC (uses the open source media player MPlayer), which is capable of playing DVDs and media files located on SD cards, FTP servers, SMB mounts, and attached USB storage devices.[14]

Team Twiizers also released BootMii[15] which provides low-level control of the Wii during its boot process. It can either be installed as an IOS, or as a replacement for the boot2 boot loader, which is the third and final process of boot to load the System Menu;[16] this only works on certain older Wii systems, as Nintendo fixed the hole in their newer Wiis. BootMii can create and restore backups of the Wii's NAND flash memory from a Secure Digital Card. If it is installed as a replacement boot loader, it is capable of restoring a backup before the Wii System Menu loads; this is especially useful in the case of a brick condition, in which the operating system cannot load due to errors or system file corruption. The Homebrew Channel, which was also developed by Team Twiizers, can also be loaded to the Wii through an SD card or USB stick. Once the Homebrew channel is loaded, the homebrew channel can be used to boot homebrew content that has been downloaded to an SD card or USB stick.

Linux on the Wii

As with many other platforms, there is an effort to port the Linux kernel and utilities to the Wii.[17] The Wii includes 802.11b/g hardware, a pointing device (the Wii Remote), USB ports (and therefore USB keyboard support), Bluetooth, an SD card slot, and internal Flash memory; due to these features as well as the improved clock speed, it has the potential to be a more useful platform for Linux than the older GameCube hardware.

Although parts of Nintendo GameCube Linux were reusable on the Wii, drivers had to be developed for the new features. Drivers for the front SD card slot,[18] USB 1.x[19] and USB 2.0,[20] 802.11b/g Wi-Fi[21] and DVD unit[22] have already been developed. The internal Bluetooth USB device is supported natively by the Linux kernel (enabling the Wii Remote to work, which connects to the Wii via Bluetooth).

A basic Debian distribution and Linux kernel have been released for use on an unmodded Wii.[23] A GUI called xwhiite linux has been made for Wii-Linux.

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 Player 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 fully support Flash 9–10, or Microsoft Silverlight. An update in September 2009 updated Flash to Adobe Flash Lite 3.1, which supports Flash 8 and parts of Flash 9.

Each button on the Wii Remote, except Power and Home (and 1 on the primary Wii Remote), 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.[24] Several demonstrations have been made available with the Wii Opera SDK.[25] Support for Adobe Flash 7 has also allowed many homebrew websites to arise since the Wii launch. Examples include WiiCade and its API,[26] Wiisic,[27] WiiCR (not a website at all but a server / client media streaming solution that uses XAMPP, Flash and the Wii Opera Browser),[28] WiiAUDIO.[29] and Moowee.tv.[30]

The release of the WiiCade API and the Wii Opera SDK[31] 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.[32]

Wii Remote

A number of features of the Wii Remote have been reverse-engineered, allowing 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.[33]

The Wii Remote has been hacked to do a variety of actions not involving the console, like 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,[34] and control a Bluetooth-enabled computer by simulating keypresses. Some companies are looking into reprogramming Wii Remotes for business applications such as manufacturing.[34] The Wii Remote can also be used to control emulators.

An interactive whiteboard has been created with a projector, the Wii Remote and a £2.50 infrared pen.[35] The Wii Remote has also been used as a finger tracking device that simulates the interface seen in the film Minority Report.[36]

Hardware

USB Gecko

Main article: USB Gecko

A device called the USB Gecko has been developed to connect the Wii (or its predecessor, the GameCube) to one's computer. One benefit of doing so is improved debugging capabilities when programming.

Sites and projects

Originally, most Wii Homebrew projects were focused on using the Wii Remote with other platforms. Software projects were limited to those that could execute within the Opera Web Browser included in the Internet Channel. The exploits leading to native code executions have enabled much more diverse uses of the Wii.

WiiCade and Wii Opera SDK

Main article: WiiCade
Main article: Wii Opera SDK

The release of the WiiCade API and the Wii Opera SDK[31] 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.[32]

wii-js

wii-js JavaScript Library

A JavaScript library originally built for teaching children how to program on the Wii, but quite suitable for other ventures (such as game development). Capable of handling all four remotes at once with a very simple event-based API. Patches certain incomplete features of the Opera build used on the Wii surrounding error handling, which allows for more in-depth debugging on the system itself. Sample application included along with extensive documentation.

Reuse of the Wii Remote on other platforms

These projects allow the Wii Remote to be used on other platforms (generally, personal computers).

junXion

STEIM in Amsterdam released a recent version of its junXion software for the Mac platform that supports up to four Wii Remotes and the Nunchuk as well as the Sensor Bar. junXion allows the data to be treated conditionally and routed to any piece of MIDI receptive software.[37]

DarwiinRemote

DarwiinRemote[38] is an open source program and framework for Mac OS X. It has support for motion detection and, in concert with the Sensor Bar or similar apparatus, absolute cursor position detection enabling the Wii Remote to be used as a pointing device. DarwiinRemote also works with the Nunchuk and Classic Controller attachments to allow the user to customize the buttons for each device as needed. These customizations can be saved as presets on a per-function basis. The default setup uses the Wii Remote in a manner similar to the Apple Remote that ships with many recent Macintosh models.

GlovePIE

Glove Programmable Input Emulator (GlovePIE[39]) created by Carl Kenner provides support for novel input devices in Microsoft Windows and has been extended to support the Wii Remote.

Wii PC Scripts[40] provides scripts using GlovePIE that allow the Wii Remote to be used with a range of Microsoft Windows games and applications.

GlovePIE is notable for having a license that includes several restrictions for ideological reasons. The author disallows use for any direct or indirect military purposes (such as for a soldier's entertainment or on a military base), or use of the software in the country of Israel.[41]

Cwiid and DarwiinRemote are equivalents to GlovePIE for Linux and Mac OS X.

Wiiuse

An easy-to-use, cross-platform (Linux & Windows) library, written in the C programming language, for communicating with the Wii Remote via Bluetooth. Also supports multiple simultaneous Wii Remote connections, the Nunchuk, and Guitar Hero III controllers.[42]

See also

References

  1. "Smash Stack". WiiBrew. Retrieved 2011-02-11.
  2. "Indiana Pwns". WiiBrew. 2010-09-25. Retrieved 2011-02-11.
  3. "LetterBomb". WiiBrew. 2011-08-09. Retrieved 2011-08-14.
  4. Wii
  5. "Homebrew Channel". HackMii.
  6. "Nintendo Wii Hacked, The Video". Gizmodo.
  7. "The Wii, officially "hacked"?". WiiNintendo. 2007-12-28. Retrieved 2011-02-11.
  8. 8.0 8.1 "Bannerbomb". WiiBrew. 2011-02-03. Retrieved 2011-02-11.
  9. http://hackmii.com/2011/08/letterbomb/
  10. "Smash Stack". WiiBrew.
  11. "Return of the Jodi". WiiBrew.
  12. "console hacking 2006". Video.google.com. 2006. Retrieved 2011-02-11.
  13. http://www.matthewmcdonald.com/12/hacking-the-nintendo-wii-with-the-d3-2-drive
  14. "WiiMC". WiiMC. 2012-02-07. Retrieved 2012-02-07.
  15. "Team Twiizers". WiiBrew. 2010-11-25. Retrieved 2011-02-11.
  16. "Glossary". WiiBrew. 2010-07-24. Retrieved 2011-02-11.
  17. "GC-Linux.org". Retrieved 2011-02-11.
  18. "Initial commit for the SDHCI driver". Git.infradead.org. Retrieved 2011-02-11.
  19. "Initial commit for the OHCI driver". Git.infradead.org. Retrieved 2011-02-11.
  20. "Initial commit for the EHCI". Git.infradead.org. Retrieved 2011-02-11.
  21. "Initial commit for the SDIO-based b43 driver". Git.infradead.org. 2009-08-21. Retrieved 2011-02-11.
  22. "Initial commit for the DVD driver". Git.infradead.org. 2009-12-06. Retrieved 2011-02-11.
  23. "Wii-Linux". Wiibrew.org. Retrieved 2011-02-11.
  24. "+writeTitle()+". 2008-03-04. Archived from the original on 2008-03-04. Retrieved 2011-02-11.
  25. "Wii Opera SDK Official Website". Wiioperasdk.com. Retrieved 2011-02-11.
  26. "WiiCade Labs". Labs.wiicade.com. Retrieved 2011-02-11.
  27. "Wiisic". Wiisic.max-maurer.de. Retrieved 2011-02-11.
  28. "WiiCR".
  29. "Wii Audio". Wii Audio. Retrieved 2011-02-11.
  30. "MooWee: Unlimited Solutions For Next Gen Television". Moowee.tv. Retrieved 2011-02-11.
  31. 31.0 31.1 Sylvester, Mike (2007-07-17). "Revolutionary: Web Wii Wares – Nintendo Wii Fanboy". Joystiq.com. Retrieved 2011-02-11.
  32. 32.0 32.1 "Status Update: Wii Opera SDK – Wii Opera SDK and HullBreach MMO RPG – by HullBreach MMO RPG and Wii Opera SDK". My.opera.com. 2007-08-21. Retrieved 2011-02-11.
  33. "Wiimote". WiiBrew. 2010-11-24. Retrieved 2011-02-11.
  34. 34.0 34.1 Brophy-Warren, Jamin (2007-04-28). "Magic Wand: How Hackers Make Use Of Their Wii-motes". Wall Street Journal.
  35. Lee, Johnny. "Creating tech marvels out of a $40 Wii Remote (video)". TED. Retrieved 2011-02-11.
  36. Johnny Chung Lee. "Projects – Wii". Retrieved 2011-02-11.
  37. "S T E I M [products] > junXion v3". Steim.org. Retrieved 2011-02-11.
  38. "DarwiinRemote". Retrieved 2007-12-16.
  39. "Carl.Kenner – GlovePIE". Retrieved 2007-01-22.
  40. "Wii PC Scripts". Archived from the original on 2008-06-12. Retrieved 2008-01-24.
  41. "GlovePIE unusual licensing restrictions in documentation.rtf within a zip archive for the software.". Retrieved 2009-04-14.
  42. "Wiiuse".

External links