Jump to content

Wii homebrew

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by TheSilenceOfNoOne (talk | contribs) at 03:53, 18 February 2008 (Misc changes.). 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 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. Although it hasn't been utilized much yet, Team Twiizers' exploit does just this.

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. These may use the Wii Remote via WiiToo!.

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.

The first example of homebrew code being run on the Wii (and not the GameCube emulator) was demonstrated in December 2007 at the 24th Annual Chaos Communication Congress (24C3) and showed code running and responding to the Wii Remote.[2][3] As this is in an early stage, there are no public releases yet.

Until February 11th, firmware 3.0 has fixed all but one possible way to run GameCube mode homebrew in Wii with a modchip; booting a sdload autoboot disc or an Action Replay backup to play homebrew through a SD Gekko memory card adapter have been patched, but one method has always been available regardlessly; a Wii modchip which 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]

Recently however, a stack overflow in a Legend of Zelda: Twilight Princess save has opened up non-modchip enabled Wii mode homebrew on the Wii. This hack was created by team Twiizers and is the first release of a non-modchip homebrew enabling exploit on the Wii.

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.

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 was patched in firmware 3.1E.

Linux on the Wii

As with many other platforms, there is an effort to port the Linux kernel and utilities to the Wii.[4] 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. On December 28, 2007, at the 24th Annual Chaos Communication Congress, a Wii running basic homebrew code was demonstrated. The hackers responsible for this announced their intent to create a linux distribution.[5]

It was rumored that the Wii runs a modified version of the Linux Kernel,[6] but this was later revealed to be a hoax by Kiyoshi Saruwatari.[7]

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(except opera widgets, plug-ins and some (X)HTML tags like file fields.[8]

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

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

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

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. It is called WiiWare and will be released late 2008[19]

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 hacks are concerned with 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.

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 controller via BlueTooth hardware.

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.

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 Script[22] provides scripts using GlovePie that allow the Wii Remote and Nunchuk to be used with a vast collection of applications and games on the Microsoft Windows OS.

Wii PC Scripts[23] 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. (The author believes Israel's military actions to be wrong.[24][25] It also cannot be used to make money as part of a baseball simulation only.

  • A petition is being signed against the maker of GlovePIE on grounds of racial/ethnic discrimination.

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[26] and Arstechnica.[27] The author of the rumour later admitted it was a hoax.[28] The web site has not been updated since November 2006.

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

Wiibrew

This aggregation web site was created as a result of downtime on the WiiLi web site during late 2006 and is a frequently 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. However, due to the recent discovery of the Twilight Hack exploit, this may soon change.

WiinRemote

This project is developing a Microsoft Windows driver for the Wii Remote.[30]

WiimoteLib

A Wii Remote library for the Microsoft .NET platform. Source code is available for both the C# and VB.NET languages.[31]

WiiCade

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

See also

References

  1. ^ a b c Jamin Brophy-Warren, Magic Wand: How Hackers Make Use Of Their Wii-motes, Wall Street Journal, April 28, 2007
  2. ^ Clips: Nintendo Wii Hacked, The Video
  3. ^ The Wii, officially “hacked”? | WiiNintendo
  4. ^ WiiLi.org Wii Linux - Wiili:About
  5. ^ Nintendo Wii fully hacked for native homebrew - Engadget
  6. ^ Does the Wii run Linux?
  7. ^ Kiyoshi Saruwatari's Wii Blog: My name is Sebastian
  8. ^ Access denied - Opera Developer Community
  9. ^ http://wii.nintendo.com/wii_faq_internet.jsp
  10. ^ HullBreach - Wii Enabled Javascript Applications, Games, and SDK
  11. ^ Moved
  12. ^ Wiisic
  13. ^ WiiCR
  14. ^ WiiAUDIO - Wii Media Center - MP3s and Video
  15. ^ Moowee: Graze web videos on TV
  16. ^ Revolutionary: Web Wii Wares - Nintendo Wii Fanboy
  17. ^ Status Update: Wii Opera SDK - Wii Opera SDK and HullBreach MMO RPG - by HullBreach MMO RPG and Wii Opera SDK
  18. ^ Wiili Wiki - Wiimote
  19. ^ Jackson, Mike (2007-01-26). "Nintendo to offer original game downloads for Wii". Computer and Video Games Magazine. Future Publishing. Retrieved 2007-02-04.
  20. ^ "DarwinRemote". Retrieved 2007-12-16.
  21. ^ "Carl.Kenner - GlovePIE". Retrieved 2007-01-22.
  22. ^ "Wii Script". Retrieved 29-12-2006. {{cite web}}: Check date values in: |accessdate= (help)
  23. ^ "Wii PC Scripts". Retrieved 2008-01-24.
  24. ^ "GLovePIE unusual licensing restrictions". Retrieved 2007-07-14.
  25. ^ GLovePIE licence agreement (readme companion text).
  26. ^ "Wii Will Have an Updatable Linux OS". Retrieved 2006-10-11.
  27. ^ "Does the Wii run Linux?". Retrieved 2006-10-11.
  28. ^ "Kiyoshi Saruwatari's Wii Blog". Retrieved 2007-01-22.
  29. ^ "WiiAction Input Library". Retrieved 2007-01-27.
  30. ^ "WiinRemote". Retrieved 2007-01-22.
  31. ^ "WiimoteLib".
  32. ^ Revolutionary: Web Wii Wares - Nintendo Wii Fanboy
  33. ^ Status Update: Wii Opera SDK - Wii Opera SDK and HullBreach MMO RPG - by HullBreach MMO RPG and Wii Opera SDK