Archive for the ‘IOS’ Category
What’s next
So, Nintendo’s actively attacking some things. Of course, most of them can be worked around, but there’s only so much “working around” you can do until you get tired and start questioning your methodology.
First of all, let’s count up what we’ve “lost.” (In terms of fully updated Wiis).
- Twilight Hack is gone. (as of 3.4’s release)
- Signing bug is gone.
- FS commands are gone (or protected?)
- ES_Identify is gone/fixed.
The Twilight Hack can easily be replaced by other savegame exploits, of course, so that’s still on the table to some extent.
But without fakesigning, ES_Identify, and Filesystem commands, all code that deals with installing or modifying content (System Menu hacks, patched/custom IOS) is pretty much dead. This really feels like a lot of negative work. Patchmii is nearly useless. Everything I’ve written is pretty damn useless, too.
Pirates, however, don’t seem to have a problem with searching for workaround after workaround to get their things working. They’ve still managed to bypass most of the issues here (besides needing twilight hack) to get their warezloader and pirated VC/Wiiware to work.
The only issue that we care about is homebrew. It’s being killed by the updates, and we don’t really feel it should. So far, however, all homebrew relies on Nintendo’s code in the form of “IOS,” which handles loads of hardware interactions–Wifi, Bluetooth, Disc drive, SD, USB–everything unique to the Wii. If we want to use these, we pretty much have to hook into Nintendo’s code somehow. We’ve been loading code using IOS through channels and savegame hacks, but all of these require Nintendo to allow us to use their code, and can be cut off at both the System Menu and IOS.
So, what do we really want to do? Rely on as little of Nintendo’s code as possible. This is what BootMii is all about. We want to hook into the Wii processes as early as possible, so we don’t have to touch any code we don’t have to. BootMii is going to sit just before boot2, so it will be the first piece of boot code that we can actually modify. If we hook in before boot2, we’d either have to write our own code to interact with the Wii hardware, or pull some random IOS to use. Obviously, the former is the better solution. And what’s the best free way to deal with lots of hardware? Why, Linux of course!
So, the next step in Wii homebrew is going to be a low-level, all-inclusive linux system. This is going to require quite a bit of work, but, fortunately, it will probably end up less hacky and more stable in the long run than anything else. It may result in a bit of overhead for applications, but application efficiency will probably be more of a finishing detail.
Let’s talk about some of the reprecussions of this.
Wii piracy practically *requires* running Nintendo’s code (for compatibility), so our BootMii/linux efforts would practically nip this issue at the bud.
Homebrew, on the other hand, is mostly contingent on libogc and IOS code at this point. Fortunately, most legitimate homebrew (i.e. non-pirate, non-”utilitiy” apps) only really uses a few of the many IOS functions: SD reads, Wifi, and Bluetooth (Wiimote). All other things (Graphics, sound, etc) go through PPC, which are already supported by gc-linux (to some extent). What’s more, we hold the source code for libogc, so developing a libogc “wrapper” for the wii-linux functions would be fairly trivial, and would give some level of compatibility with existing homebrew applications.
With this system, Wii homebrew would be “stable,” in terms that it would all run off of a single library (or set of libraries) controlled by homebrews. IOS (in)compatibilities would cease to be an issue. What’s more, as long as Wii Linux would run, we could ensure that homebrew would run. There would only be the single task of getting Wii Linux installed/running–which is much much easier for maintenance.
So, this is the *general* direction Wii homebrew is heading in. Consider this your warning. Things are going to change–for better or for worse. For most of the hacker-developers, this should seem like a much better solution. For Homebrewers, prehaps slightly inconveniencing, but better in the long run. For pirates, hell.
You’ve been warned ![]()