Unofficial Homebrew Channel For the Wii 150
marcan writes "The Homebrew Channel is a tool that can be installed on any Wii (no hardware mods required) that lets you run unsigned homebrew software from an SD card, or upload executables via WiFi or a USBGecko. We've tried to make it friendly for users with a simple GUI, and powerful for developers with direct upload features and reloading which we hope will make testing less painful. The channel can be installed using a DVD if you have a modchip, or using an exploit in Zelda: Twilight Princess which only requires an SD card (or any future hack or booting method). Once installed, it simply shows up as a Channel on the Wii Menu, just like any official channel. Hopefully, this and other recent developments (such as the upcoming devkitPPC r15 toolchain, much improved and with many bugs fixed) will help make the Wii an appealing platform for DIY software. And yes, it also runs Linux."
Re:Oy vey (Score:5, Informative)
Re:And so it begins. (Score:5, Informative)
Re:And so it begins. (Score:5, Informative)
Very polished (Score:5, Informative)
Re:And so it begins. (Score:5, Informative)
While, of course, this ability implies that you *can* run pirated software, with the right modifications, in practice I have yet to see a plausible black-hat group with the expertise needed to develop such a hack. And we're sure as heck not going to do it ourselves. All that people have been doing is Virtual Console piracy, which is quite easy once a few details got released / leaked, due to nintendo's multiple mistakes on their DRM. But patching commercial games to read their data from SD or USB is not at all trivial.
Re:This combined with 20G memory expansion is grea (Score:5, Informative)
Re:Very polished (Score:5, Informative)
For those that do not know, "semibricked" (no, we did not invent the term) means that you've installed a version of the System Menu from another region (usually by using a game from another region that contains an update, with a modchip). The results are that you cannot access the Settings menu, as the internal inconsistency means that it tries to load the wrong files and ends up at an Opera 404 screen. Surprise! The Wii Settings menus are just HTML files. This can be easily fixed by running a game with an update for the right region that's newer than the installed one. The "fixes" up on our site are just the latest versions packaged as updates inside ISO images.
I'm amazed (Score:5, Informative)
Re:Except Nintendo is well-positioned to avoid thi (Score:5, Informative)
As for us, we'll still be able to run homebrew after they fix the security software. There are plenty of other bugs that we can use (most of which are not public yet, so chances are Nintendo doesn't know about them), and most do not enable VC piracy as directly as the one major bug that they "fixed".
Re:Except Nintendo is well-positioned to avoid thi (Score:1, Informative)
Re:DVD Player? (Score:3, Informative)
You're rewriting history. (Score:5, Informative)
The Dreamcast was already close to death by the time these hacks came out. It was a combination of Sega's insufficient capital to continue advertising the Dreamcast past the 9/9/99 launch, and a steady drumbeat from Sony about how the PS2 would be a generation ahead. Sega was simply outmatched from the start.
The Dreamcast was a great console with perhaps the most interesting lineup of games, but it was always going to be a poor cousin to the PS2.
Besides, if piracy kills consoles, the PS2 would have faded about 18 months after it came out.
Re:And so it begins. (Score:5, Informative)
Re:What can I do with this? (Score:5, Informative)
I'm speaking here as an amateur Nintendo DS developer with some experience with DevkitPro, the "toolchain" made by some guys to run stuff on Gameboy Advance, Nintendo DS, Gamecube and recently Wii, among others. I have no direct experience with Wii developing, but I think I can help you a little...
The "toolchain" is called "DevkitPPC" (a part of DevkitPro, which is available here [devkitpro.org]) consists of GCC and some other utilities (many from GNU) and libraries to generate ELF executables that the Wii can run. So, basically, C and C++ are supported.
I don't know about the last version, but they're working daily on the CVS mainly with Wii updates, so expect the next version (r15) to be very nice. All this is available as a Windows installer, or you can get binaries (or the source) for Linux. I remember seeing something for OSX, but I don't know how it is nowadays.
The libraries for the NDS are very low-level stuff, with very recent additions towards higher-level stuff; so I'd imagine the Wii stuff is still very low-level.
There are some Wii examples to get you started. I don't know if the main packages include them, you can grab them here [sourceforge.net] if not.
Finally, if you start developing for the Wii, expect to visit forums, dig up information on IRC and generally learn *very* low-level stuff to do anything beyond a simple "hello world".
Re:And so it begins. (Score:3, Informative)
Also, I haven't noticed any reduction in commercial properties being produced for the DS, despite the availability of toolage for pirating commercial games; the legitimate userbase is simply too large for the pirates to make the system unprofitable.
Re:Free as in what ? beer ? speech ? (Score:3, Informative)
Re:DVD Player? (Score:5, Informative)
It's not that Nintendo is worried about the platform being secure, it's that every console sold would incur a lisencing fee for DVD's Copy Protection (CSS), therefore increasing the cost of each Wii for Nintendo, and directly then for the consumer. Given this decision was made long before the Wii's success was known.
There are also people who mention the Wii's DVD drive is not meant for continious access, and that DVD playing would cause the drives to wear out faster. Why ruin a $300 system instead of a $30 DVD player?
Re:What can I do with this? (Score:3, Informative)
Re:And so it begins. (Score:3, Informative)
Re:What can I do with this? (Score:5, Informative)
There are no decent UI libraries yet. What you do get is direct access to the GPU with libOGC (the main homebrew library). The API is similar in spirit to OpenGL, though not directly compatible, and there is some setup needed. There's are a few examples on the devkitpro CVS (download the module 'examples'). Most are for GameCube, but don't be fooled - they can be compiled for Wii with no modifications, most of the time, by adding -mrvl to your CFLAGS and LDFLAGS. Graphics support is probably the least user-friendly part of libogc.
Input devices are quite easy to use, both GC pads and the Wiimote, in the latest version of libOGC (which requires the latest CVS devkitPPC). Once r15 is out, you'll get all of this in easy to use precompiled packages. Things like inactivity timeouts and auto-connection work out of the box, and you pretty much just call one function to scan for pads, and one function to read the current state structure.
SD filesystem support is also trivial. One init call, and then it's just stdio, using URL-ish paths: fat:/file, etc. With the Homebrew Channel, you also get your current directory set to the directory of your executable on the SD card (via argv[0]), so you can just open relative paths and they'll go to the right place on the SD card.
Networking is supported (via wlan and USB adapter), through an API that is mostly Berkeley Sockets compatible. A few things are somewhat nonstandard, but we can't do much about them - in this case, the TCP/IP stack is implemented in the IO/Security coprocessor, so we're just wrapping that interface.
Also, getting a USB Gecko [usbgecko.com] is recommended. It's basically an interface that looks like a USB serial port on one end and plugs into your GC memory card slot on the other. While you can have a text console on-screen, the Gecko lets you have easy stdin/out directly from a PC, which is very useful for debugging. You can also call DEBUG_Init() and get a gdb stub listening over gecko when you get an exception, so you can easily get a backtrace and all of those goodies. We'll probably come up with something better in the future (via wifi?), but it's still a very nice, simple low-level peripheral to have.
Admittedly, the documentation now is very lacking, because most developers have been spending their time coding new features. Now that things are getting calmer and I have more time, I hope to start documenting things a lot better.
Re:And so it begins. (Score:3, Informative)