A rather lengthy introduction to Wii homebrew!
To some, the word homebrew itself is enough to scare them away, to others its a great opportunity to make the most out of their gaming console. Although it does hold some risks and may in some cases be able to void warranty or cause a so called “brick”, if you know what you’re doing it can really spice things up. Many people think and argue that piracy and homebrew go hand in hand, but although homebrew in some cases might lead to piracy, this certainly isn’t the primary goal. I’ll start out by a simple and basic explanation of what homebrew actually is.
Homebrew is the term used for software that is “brewn at home”, or in other words, not designed by some fancy game designer but a do-it-yourself piece of code that was written by a hobbyist. For example, Nintendo does not want you to be able to play movie dvd’s on your Wii, this is probably due to licensing costs. The Wii is incapable of reading dvd’s because the software simply doesn’t know what to do with them. But hey…. what if some homebrew hobbyist decides to write his own software that IS capable of doing this.
This of course sounds awesome, but Nintendo just like any other company will try to prevent this. They try to prevent this by only allowing code to be run when that code holds the correct signature. This is a very complex process, but you can see it like this: Nintendo has a secret key, which they use to encrypt all of the games, channels and everything else that is ran on your system. This key is referred to as the “Private Key”. In order for these games and channels to be able to execute on your Wii, they need to be decrypted. This is done by the “Public Key”, this is a key thats known by every Wii. The public key can only be used to decrypt, not encrypt. The problem is that nobody (but Nintendo) knows the private key, so in theory you would not be able to run your own software because when the Wii checks for the right signature, and it isn’t there. Well, an arguably wise man once said “every security system can be compromised”. This has also happened with the Wii’s security system. Some pretty nifty hobbyist programmers found a bug in the check that the Wii does for the right signature to fool it into thinking there actualy is a correct signature ( while, of course, there really isn’t ). This allows for home brewn code to be run on your Nintendo Wii entertainment system.
After some months of development they came up with a user friendly form of this hack, known to the world as “The Twilight Hack”. This basically is a corrupted save game for Zelda Twilight Princess. The way this works is as that they copied a Zelda savegame to their computer, and they edited the horses name (which is stored in a string in the savegame) to be VERY long, then they fake encrypted it with their knowledge of the security bug, and placed it back on their Wii. Now, when the Wii loads the savegame and tries to load the horses name this causes a so called “stack overflow” meaning it doesn’t expect it to be that long, and crashes because of it. Well, everything that makes a console crash is a possible security flaw, and so was this one. By injecting code at that moment they were able to run code without the Wii checking its integrity. After weeks of development the hack was clean enough to be distributed into the world, so that people could run their own code. This was done by having people copy that savegame to their Wii, and then running Zelda while having an sd card inserted on which a file called boot.elf was placed. This file is the homebrew that will actually be executed. All Wii homebrew comes in .elf format, this is just the executable format that the Wii uses. Back in the gamecube days .dol files were used, and the Wii is still backwards compatible with .dol files.
Because they realized it is a bit annoying if you have to run the Twilight Hack every time you want to run a piece of homebrew, they decided to make a so called Ã¢â‚¬Å“Homebrew ChannelÃ¢â‚¬Â. After some months of development this channel was ready, now people had to load a .elf file through Zelda that installs the channel. This means people only needs Zelda once to install the channel. The homebrew channel allows you to run homebrew applications (using a pretty graphical user interface) from your sd card. The homebrew channel is also able to load .elf files that are sent to the Wii via your local network.
Right, that was your history lesson for today! IÃ¢â‚¬â„¢ll continue by making a list of the most important things that are already possible, and whats still in the pipeline.
What can already be done using Wii Homebrew:
- Gecko Region Free (Region free gaming!)
- Basically every known emulator has already been ported to the Wii.
- There is an FTP server for the Wii.
- There is a web server for the Wii.
- There is Linux for the Wii.
- There are some very basic media players for the Wii.
- There is Quake for the Wii (this has awesome controls!)
- There are tons of simple homebrew games for the Wii.
This is only a very short and incomplete list of the most exciting applications thus far.
These are the most exciting things that are currently announced and in development:
- Homebrew Channel Beta 9
- WiiMiidia (XBMC port for the Wii, stream movies/audio over lan!)
- GeexBox Final (Another Wii media center, based off MFE)
- Dosbox Wii (Play your old school dos games on your wii)
- WiiChat (Chat with people from around the globe)
Alright! You now know close to everything you need to know about Wii homebrew! I hope you enjoyed the read, because there are more to follow haha. If youÃ¢â‚¬â„¢re wondering who I am, I am WiiNintendoÃ¢â‚¬â„¢s newest blogger and will be focusing on reporting progress in the homebrew scene, IÃ¢â‚¬â„¢ll try to do at least 1 post per week.
My next post, probably tomorrow, will be about the risks and what Nintendo is doing to try to stop this madness. After that IÃ¢â‚¬â„¢ll do a step by step instruction manual on how to kick things off.
Please excuse me if there are some spelling or grammar mistakes in this post, but English isn’t my native language. Also, if you have any suggestions for future posts please let me know in the comments!