This is an old revision of this page, as edited by BriGuy92 (talk | contribs) at 21:21, 2 June 2010 (→Software). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Revision as of 21:21, 2 June 2010 by BriGuy92 (talk | contribs) (→Software)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)This article may require cleanup to meet Misplaced Pages's quality standards. No cleanup reason has been specified. Please help improve this article if you can. (October 2009) (Learn how and when to remove this message) |
This article's lead section may be too short to adequately summarize the key points. Please consider expanding the lead to provide an accessible overview of all important aspects of the article. (August 2009) |
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", "Bannerbomb", and the "Homebrew Channel", have made native code execution possible.
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 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, and USB ports. One of these homebrew applications is The Homebrew Channel. This application is mostly used for the running of unofficial, non Nintendo-Approved code, such as games, emulators, and media players.
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. 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. However, System Menu 3.3 blocked 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 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. As of System Menu 4.0, it has been officially announced that the Twilight Hack bug has been squashed.
Various other methods of running and installing homebrew have since appeared, all of which work on Wiis with System Menu 4.2. Notably, Bannerbomb enables one to run homebrew due to a vulnerability in the System Menu itself. Indiana Pwns works in a manner similar to the Twilight Hack, but for LEGO Indiana Jones: The Original Adventures. Smash Stack is based on a vulnerability in Super Smash Bros. Brawl reading a file directly off of the SD card, so it is believed Nintendo cannot patch this.
The Wii Optical Drive is very similar to that of the Nintendo GameCube, which has similar flaws and backdoors. 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. However, With the release of the Black Wii, The drive is no longer capable of reading any disc except for original wii discs and Gamecube discs. 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. A fork of the Team Twiizers MPlayer, called MPlayer CE, can play media off of the SD card, an FTP server or a SMB mount point. Both versions of MPlayer can be loaded from the Homebrew Channel.
Team Twiizers is currently working on a project known as BootMii. BootMii has the ability to control the wii seconds after startup. It starts up when the wii is checking for a disc. It can be installed on startup as an IOS. It's goal is to provide a bulletproof sheild over bricks on the wii. It backs up the NAND drive and when there's a brick, BootMii can recover your wii from the brick. But Backing up only works as a boot2. BootMii has been released as a Public Beta Version 4 times meaning they released 4 beta versions so far.
Linux on the Wii
As with many other platforms, there is an effort to port the Linux kernel and utilities to the Wii. 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 were reusable on the Wii, drivers had to be developed for the new features. Drivers for the front SD card slot, USB 1.x and USB 2.0, 802.11b/g Wi-Fi and DVD unit have already been developed. The internal Bluetooth USB dongle is supported natively by the Linux kernel (enabling the Wii Remote to work, which connects to the Wii via Bluetooth).
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.
A basic Debian distribution and Linux kernel have been released for use on an unmodded Wii. Instructions can be found here. A GUI called xwhiight 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 or 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. Several demonstrations have been made available with the Wii Opera SDK. Support for Adobe Flash 7 has also allowed many homebrew websites to arise since the Wii launch. Examples include WiiCade and its API, Wiisic, WiiCR (not a website at all but a server / client media streaming solution that uses XAMPP, Flash and the wii Opera Browser), WiiAUDIO. and Moowee.tv.
The release of the WiiCade API and the Wii Opera SDK 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.
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. 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, and controlling a Bluetooth-enabled computer by simulating keypresses. Some companies are looking into reprogramming Wii Remotes for business applications such as manufacturing operations.
An interactive whiteboard has been created with a projector, the Wii Remote and a $5 infrared pen. The Wii Remote has also been used as a finger-tracking device that simulates the interface seen in the film Minority Report.
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.
Wii Game Studio
This site provides a drag and drop, code-free application for creating Wii Homebrew. It can be downloaded here
Native code execution
These sites focus on efforts to write and run code on the Wii with the same capabilities as official software.
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. The site can be found at WiiBrew.org
Browser-based efforts
These sites document ways to utilize the unique capabilities of the Wii's web browser.
WiiCade and Wii Opera SDK
Main article: WiiCade Main article: Wii Opera SDKThe release of the WiiCade API and the Wii Opera SDK 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.
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.
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.
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 many recent Macintosh models.
GlovePIE
Glove Programmable Input Emulator (GlovePIE) 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 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.
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.
See also
References
- Clips: Nintendo Wii Hacked, The Video
- The Wii, officially “hacked”? | WiiNintendo
- 23C3 Console Hacking talk video
- http://www.wiibrew.org/Team_Twiizers#BootMii
- http://www.bootmii.org/about/
- http://www.bootmii.org/
- GC-Linux.org
- Initial commit for the SDHCI driver
- Initial commit for the OHCI driver
- Initial commit for the EHCI
- Initial commit for the SDIO-based b43 driver
- Initial commit for the DVD driver
- Nintendo Wii fully hacked for native homebrew - Engadget
- Wii-Linux
- http://wii.nintendo.com/wii_faq_internet.jsp
- Wii Opera SDK Official Website
- WiiCade Labs
- Wiisic
- WiiCR
- Wii Audio
- MooWee: Unlimited Solutions For Next Gen Television
- ^ Revolutionary: Web Wii Wares - Nintendo Wii Fanboy
- ^ Status Update: Wii Opera SDK - Wii Opera SDK and HullBreach MMO RPG - by HullBreach MMO RPG and Wii Opera SDK
- WiiBrew - Wiimote
- ^ Jamin Brophy-Warren, Magic Wand: How Hackers Make Use Of Their Wii-motes, Wall Street Journal, April 28, 2007
- TED | Talks | Johnny Lee: Creating tech marvels out of a $40 Wii Remote (video)
- Johnny Chung Lee - Projects - Wii
- S T E I M [products] > junXion v3
- "DarwiinRemote". Retrieved 2007-12-16.
- "Carl.Kenner - GlovePIE". Retrieved 2007-01-22.
- "Wii PC Scripts". Retrieved 2008-01-24.
- "GlovePIE unusual licensing restrictions". Retrieved 2009-04-14.
- GlovePIE license agreement (readme companion text).
- Wiiuse
External links
- wiibrew.org Wiibrew, Wii homebrew wiki
- Wii News DCEmu Wii News Site, Uptodate Wii Homebrew News and Downloads site.
- wiiflash.com WiiFlash, software to communicate between a Wii Remote and a Flash application
- wiioperasdk.com Wii Opera SDK, Internet Channel developer tools
- DarwiinRemote at sourceforge Wii Remote software for Mac OS X
- Johnny Chung Lee's home page VR with Wii Remote and Bluetooth
- WiimoteProject Central discussion for Johnny Chung Lee's Wii Remote hacks and newer hacks.
- Wii remote debugger Homepage of wii remote debugger, used for cheats and debugging applications