Wii homebrew

From Wikipedia, the free encyclopedia

Jump to: navigation, search

Wii homebrew refers to the reuse of Nintendo's Wii game console 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, or running web-based games in the built-in web browser. Subsequent developments, such as the "Twilight hack", and the "Homebrew Channel," have made native code execution possible.


[edit] Software

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. 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 Wii Remote.[1][2] 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 rumours, 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 have 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.

The Wii Optical Drive is very similar to that of the Nintendo GameCube, which has similar flaws and backdoors.[citation needed] 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. It can be loaded only from the Homebrew Channel.[unconfirmed]

[edit] Linux on the Wii

As with many other platforms, there is an effort to port the Linux kernel and utilities to the Wii.[3] 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, and due to these features as well as the improved clockspeed, it has the potential to be a more useful platform for Linux than the older GameCube hardware.

Although parts of Nintendo GameCube Linux are reusable on the Wii, drivers need to be developed for the new features. Drivers for the front SD card slot and for the Bluetooth interface have been developed (enabling the Wii Remote to work, which connects to the Wii via Bluetooth), but the wireless 802.11b/g network still doesn't have suitable drivers.

To run Linux, the capability to run native executable code is required. On December 28, 2007, at the 24th Annual Chaos Communication Congress, a Wii running basic homebrew code was demonstrated. The engineers responsible for this announced their intent to create a Linux distribution.[4]

A Debian kernel has been released for use on an unmodded Wii.[5]

[edit] 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.

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.[6] Several demonstrations have been made available with the Wii Opera SDK.[7] Support for Adobe Flash 7 has also allowed many homebrew websites to arise since the Wii launch. Examples include WiiCade and its API,[8] Wiisic,[9] WiiCR (not a website at all but a server / client media streaming solution that uses XAMPP, Flash and the wii Opera Browser),[10] WiiAUDIO.[11] and Moowee.tv.[12]

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

[edit] Wii Remote

A number of features of the Wii Remote 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.[15] Technical information for these reports can be found at the WiiBrew.org Wii Remote article.

The Wii Remote 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[16], and controlling a Bluetooth-enabled computer by simulating keypresses. Some companies are looking into reprogramming Wii Remotes for business applications such as manufacturing operations.[16]

An interactive whiteboard has been created with a projector, the Wii Remote and a $5 infrared pen.[17] The Wii Remote has also been used as a finger-tracking device that simulates the interface seen in the film Minority Report.[18]

[edit] Sites and projects

Information on Wii internals was until recently (see above) largely incomplete, particularly with reference to the method the Wii uses to validate and execute code. As a result many older hacks are concerned with the reuse of the Wii Remote with other operating systems rather than modifications to the console itself.

[edit] Native code execution

These sites focus on efforts to write and run code on the Wii with the same capabilities as official software.

[edit] Wiibrew

This site is an actively-updated technical reference for Wii internals, and it tracks Wii homebrew releases. It is also a permanent presence for the #wiidev IRC channel on EFNET.

[edit] Browser-based efforts

These sites document ways to utilize the unique capabilities of the Wii's web browser.

[edit] WiiFlash

WiiFlash.org is a project dedicated to the Wii Remote and Flash applications. The WiiFlash project is divided into two parts: WiiFlash Server (C++ or .NET server that handles Wii Remote communication) and the WiiFlash ActionScript 3.0 API (SWC component). WiiFlash allows Flash applications to communicate with all inputs of the Wii Remote via BlueTooth hardware.

[edit] WiiCade and Wii Opera SDK

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

[edit] WiiID

The WiiID web service enables developers for the Wii's web browser to uniquely identify the Wii running their application with a Javascript or Flash variable. This facilitates saving game progress and user preferences that can be loaded upon the next visit.

[edit] Reuse of the Wii Remote on other platforms

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

[edit] 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.[19]

[edit] DarwiinRemote

DarwiinRemote[20] 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 all recent Macintosh models.

[edit] GlovePIE

Glove Programmable Input Emulator (GlovePIE[21]) 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[22] 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 threatens prosecution of anyone who uses GlovePIE for any direct or indirect military purposes (such as for a soldier's entertainment or on a military base), any user considered to be a religious missionary, or anyone who uses the software in the country of Israel.[23][24]

[edit] 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, and the Nunchuk and Guitar Hero 3 controllers. [25]

[edit] See also

[edit] References

[edit] External links

Personal tools