Wii homebrew
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 as well as control other machines.[1] A long term goal is to run unsigned software on the console to allow homebrew games and applications to be used.
Support for Adobe Flash Player and Javascript technologies like AJAX in the optional Opera Web browser allow the development of games and applications which can be hosted within the browser environment. However, this kind of software is very limited in its ability to interact directly with the Wii hardware.
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 Nintendo 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.[citation needed]
It is currently possible to run GameCube homebrew on the Wii by three methods: Bootable GCN discs, including the Action Replay and SD Media Launcher with an SD memory card adapter can be utilized, or Max Drive Pro which includes a Memory Card, which has a USB slot; A Wii modchip requires disassembly of the system and soldering, which voids the warranty. Either of these methods restricts the Wii to Nintendo GameCube functionality for running homebrew code. This severely limits most hardware capabilities of the system. In this mode the Wii Remote, network connection, SD card slot, USB ports and enhanced CPU and GPU speeds are unavailable.[citation needed]
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 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 trial Opera browser for the Wii caused the system to crash. By crafting a carefully formatted page to take advantage of the exploit it might have been possible to run executable code on the Wii. However, the shipping version of Opera has been updated and this vulnerability has been corrected by the vendor.
Another published exploit in the Opera browser causes the system to crash. This vulnerability is in the Flash plugin and is not patched.
Linux on the Wii
As with many other platforms, there is an effort to port the Linux kernel and utilities to the Wii.[2] 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 has the potential to be a more useful platform for Linux than the older GameCube hardware.
Although parts of Nintendo GameCube Linux may be reusable on the Wii, drivers will need to be developed for the new 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.
It was rumored that the Wii runs a modified version of the Linux Kernel,[3] but this was later revealed to be a hoax by Kiyoshi Saruwatari.[4]
Homebrew for Internet Channel
The Opera-powered Internet Channel for the Wii supports many of the technologies that its non-Wii brethren 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, plug-ins and some (X)HTML tags like file fields.[5]
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 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[10] and WiiAUDIO.[11]
The release of the WiiCade API and the Wii Opera SDK[12] 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.[13]
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 OSX. The Bluetooth HID driver is used to interface with the computer using a custom report format.[14]
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, and play laser tag.[1] Some companies are looking into reprogramming Wii Remotes for business applications such as manufacturing operations.[1]
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.[15]
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.
DarWiinRemote
DarWiinRemote 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.
GlovePIE
Glove Programmable Input Emulator (GlovePIE[16]) 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[17] 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 forbids the use of the software on military bases, for military purposes and in the country of Israel which the author believes to be the same as military use.[18] In addition to military restrictions, it also may not be used by missionaries.
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[19] and Arstechnica[20]. The author of the rumour later admitted it was a hoax[21]. The web site has not been updated since November 2006 and is likely defunct.
WiiAction Input Library
The WiiAction input library is a C++ library for getting 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.[22]
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, although recent inactivity on its primary communications channel has led to many of the volunteers believing the project has died.
WiinRemote
This project is developing a Microsoft Windows driver for the Wii Remote.[23]
WiimoteLib
A Wii Remote library for the Microsoft .NET platform. Source code is available for both the C# and VB.NET languages.[24]
See also
References
- ^ a b c Jamin Brophy-Warren, Magic Wand: How Hackers Make Use Of Their Wii-motes, Wall Street Journal, April 28, 2007
- ^ http://www.wiili.org/index.php/Wiili:About
- ^ http://arstechnica.com/news.ars/post/20061009-7939.html
- ^ http://saruwatari-wii.blogspot.com/2006/10/my-name-is-sebastian.html
- ^ http://dev.opera.com/articles/view/making-wii-friendly-pages
- ^ http://wii.nintendo.com/wii_faq_internet.jsp
- ^ http://hullbreachonline.com/wii/sdk.html
- ^ http://www.wiicade.com/api.aspx
- ^ Wiisic
- ^ WiiCR
- ^ [1]
- ^ http://www.nintendowiifanboy.com/2007/07/17/revolutionary-web-wii-wares/
- ^ http://my.opera.com/wiioperasdk/blog/2007/08/21/status-update-wii-opera-sdk
- ^ Wiili Wiki - Wiimote
- ^ Jackson, Mike (2007-01-26). "Nintendo to offer original game downloads for Wii". Computer and Video Games Magazine. Future Publishing. Retrieved 2007-02-04.
- ^ "Carl.Kenner - GlovePIE". Retrieved 2007-01-22.
- ^ "Wii PC Scripts". Retrieved 2007-01-22.
- ^ "GLovePIE unusual licensing restrictions". Retrieved 2007-07-14.
- ^ "Wii Will Have an Updatable Linux OS". Retrieved 2006-10-11.
- ^ "Does the Wii run Linux?". Retrieved 2006-10-11.
- ^ "Kiyoshi Saruwatari's Wii Blog". Retrieved 2007-01-22.
- ^ "WiiAction Input Library". Retrieved 2007-01-27.
- ^ "WiinRemote". Retrieved 2007-01-22.
- ^ "WiimoteLib".
External links
- wii-homebrew.com Wii-Homebrew, Emerging Wii Homebrew Discussion Site
- wiiaudio.com WiiAUDIO, Streaming Audio and Video player
- wiibrew.org Wiibrew, Wii Homebrew Wiki
- wiili.org WiiLi, Linux for the Wii
- wiimux.org WiiMux, Wii Software for Linux
- www.wiire.org Wiire, Wii Reverse Engineering