Wii homebrew

This is an old revision of this page, as edited by 59.167.61.87 (talk) at 06:46, 7 March 2007 (WiiMux). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Wii homebrew refers to the reuse of Nintendo's Wii game console hardware, accessories and software for purposes outside of those intended by the manufacturer. Key objectives are to provide open source tools to expand or alter the capabilities provided "out of the box".

At present good progress has been made on using the Wii Remote as a pointing device on other operating systems. A long term goal is to run unsigned software on the console to allow homebrew games and applications to be used.

The support for Adobe Flash Player in the supplied Opera browser is being used to allow the development of games and applications which can be hosted within the browser environment. This kind of software is very limited in its ability to interact directly with the Wii hardware. Currently, in order to use the Wiimote as a controller instead of a mouse, the solution is to use Javascript or even AJAX.

Homebrew software

One of the most important goals being worked on is the ability to run homebrew games and applications that are not licensed by Nintendo. Due to the similarity between the Wii and the Nintendo GameCube hardware, it is hoped that the bulk of the homebrew development tools used for the GameCube will be usable in the Wii with little modification. However, the Wii includes improved protection against the execution of unauthorised executable code, and at present there is no identified method to bypass this protection.

It is currently possible to run GameCube homebrew on the Wii by using an Action Replay disc and an SD memory card adaptor, but the Wii limits most of its hardware to the capabilities of the GameCube in this mode, making it impossible to use the Wii's advanced features. One of the methods for running true Wii homebrew would involve finding a way to deactivate these limitations, bringing the Wii out of GameCube mode.
There is an SD Media Launcher by CodeJunkies (the same who make Action Replay) which includes everything to run homebrew on Wii/Gamecube. Another (riskier) solution is to add a modchip, but this operation needs to open and modify the Wii (and lose the warranty).


The Wii optical drive is very similar to that of the GameCube, and is believed it may have similar flaws and backdoors. The intention of Nintendo to add support for standard DVDs indicates it should be possible to persuade the Wii software to read standard DVDs to load programs and data. On the GameCube, this was a popular method for running homebrew software.

A published exploit in the current trial Opera browser for the Wii causes the system to crash. By crafting a carefully formatted page to take advantage of the exploit it might be possible to run executable code on the Wii. However, as the trial version of Opera will be updated in the next couple of months it is expected this exploit will be corrected by the vendor.

Linux on the Wii

As with many other platforms, there is an effort to port the Linux kernel and utilities to the Wii. As the Wii includes 802.11b/g hardware, a pointing device (the Wii Remote), USB ports, Bluetooth, an SD card slot, and internal Flash memory, it is more amenable to the porting of Linux than the older GameCube. It is thus expected that Linux on the Wii will be more popular and find many more uses than GameCube Linux. As the Wii is relatively cheap, it could provide a very good platform for small servers, media centers, and for general integration of traditionally desktop-computer based applications into a living room environment.

It is hoped that parts of GameCube Linux will be directly reusable on the Wii. Drivers will need to be developed for the extra features of the Wii, including the SD card slot and the wireless 802.11b/g and Bluetooth hardware. A driver for the Wii Remote is also required, and is already being developed for desktop Linux.

To run Linux, the capability to run native executable code is required. Thus, that issue must be addressed before development can proceed.

Using the Wii Remote with Flash

Another way of running homebrew software is to get Flash to recognize the inputs of the Wii Remote. The most popular solution is to use JavaScript or AJAX, but latency issues may be encountered. Examples include Adam Robertson experiment, Mario Klingemann's effort, and the Wiicade API[1]. (The latter of which extended Klingemann's research.)

Adam Robertson's experiment provided the most complete control over the Wii Remote, but it required that the controller be used with a bluetooth-enabled desktop computer. As a result, Mario Klingemann's effort was the first one to provide Wii Remote functionality on the Nintendo Wii itself. His efforts, however, were hampered by the default actions that the Opera Web Browser maps to the Wii Remote buttons. The WiiCade API fixed many of the known issues with Klingemann's work, but the details of its implementation are currently not available to the public.

Other Streaming Media on Wii

The Adobe Flash support in the Opera browser has been used to enable the Wii to stream arbitrary content such as media files. An example is a java daemon called Wiisic[2] which makes MP3 files on your PC available on your Wii via a local url. A more extensive solution has been developed called WiiCR[3]. It acts as a streaming media server and is capable of transcoding nearly any video file for use with a flash player embedded in a local web page. It allows browsing of the remote filesystem to view video, images, text files, and play MP3s.

Another streaming media software which does flash video conversion using ffMPEG and streaming audio from your PC (and soon MacOS X and Linux) is called WiiAUDIO[1].

PC Software titled ORB from www.orb.com when installed on a capable PC can be used with the Opera browser to stream many types of media as well as recorded tv from a PC to the Wii. This even works over an internet connection.

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 OSX. The Bluetooth HID driver is used to interface with the computer using a custom report format.[4]

Official Avenues

On 26th January 2007, Nintendo told 'Computer and Video Games' magazine that they had 'developed a programming system that will allow small independent developers to make games for Wii download service.' They declined to state the details of how this service would function. [5]

Sites and projects

Information on Wii internals is still largely incomplete, particularly the method the Wii uses to validate and execute code. As a result most of the effort to date has been the reuse of the Wii remote with other operating systems rather than modifications to the console itself.

To date, most of the various web sites serve to accumulate known information and link to third party accomplishments.

GlovePIE

Glove Programmable Input Emulator (GlovePIE[6]) 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[7] provides scripts using GlovePIE that allow the Wii remote to be used with a range of Microsoft Windows games and applications.

Wii Linux Project

This project had some initial publicity when it posted a rumour pondering whether the Wii used a modified Linux kernel was reposted on Slashdot[8] and Arstechnica[9]. The author of the rumour later admitted it was a hoax[10]. The web site has not been updated since November 2006 and is currently considered defunct.

WiiAction Input Library

The WiiAction input library is a C++ library for getting Nintendo Wii control support in PC applications. Although a demonstration video is available, no source or binaries have been made available due to legal concerns of the author.[11]

Wiibrew

This aggregation web site was created as a result of downtime on the WiiLi web site during late 2006 and is presently an infrequently updated aggregation web site. It is also a permanent presence for the #wiidev IRC channel on EFNET.

WiiLi

Despite its claimed intention to port Linux to the Wii and some initial fund raising to support development effort, at present WiiLi only provides up to date aggregation of efforts by individual developers to reuse the Wii remote.

WiiMux

WiiMux is a distribution of driver,libraries, and applications to implement interoperability between a linux PC and the Wii Remote. WiiMux is producing an actual Ubuntu-based distribution known as Wiibuntu.

WiinRemote

This project is developing a Microsoft Windows driver for the Wii remote.[12]

Wiire

Provides detailed hardware information including images of Wii hardware internals.

See also

References

  1. ^ http://www.wiicade.com/api.aspx
  2. ^ Wiisic
  3. ^ WiiCR
  4. ^ Wiili Wiki - Wiimote
  5. ^ Jackson, Mike (2007-01-26). "Nintendo to offer original game downloads for Wii". Computer and Video Games Magazine. Future Publishing. Retrieved 2007-02-04.
  6. ^ "Carl.Kenner - GlovePIE". Retrieved 2007-01-22.
  7. ^ "Wii PC Scripts". Retrieved 2007-01-22.
  8. ^ "Wii Will Have an Updatable Linux OS". Retrieved 2006-10-11.
  9. ^ "Does the Wii run Linux?". Retrieved 2006-10-11.
  10. ^ "Kiyoshi Saruwatari's Wii Blog". Retrieved 2007-01-22.
  11. ^ "WiiAction Input Library". Retrieved 2007-01-27.
  12. ^ "WiinRemote". Retrieved 2007-01-22.