Yesterday we had some server issues, and I took the server offline for a while. During this, I decided it was time to release a preview version of menuloader. Since I couldn’t write a post about it here, I just let it loose on the forums. Unfortunately, the resulting game of Telephone (somewhat predictably) managed to get a few things wrong as the announcement bounced from forum to forum, so I think it’s time to write up a real announcement, now that the server is back up.
Update: version 0.5 is up, which fixes some region free issues and includes a patch to disable updates. See below.
Menuloader has existed in some form at least since the release of IOS37. It was developed as a way of checking that a System Menu running under an IOS with no fakesign bug would not cause a brick on consoles with modified software installed. It also gained debug abilities, which was nice to investigate what goes on behind the scenes with the System Menu. When The Homebrew Channel came out (the real one, not the “demo”), we added extra patches to increase debugging verbosity, and used it to debug our homebrew apploader. It remained like that for a while. I had ideas about adding more useful patches and releasing it, but they were put on the back burner.
Recently, there has been some activity regarding modding the system menu. A few people were asking me about menuloader. In an attempt to both get people to learn for themselves and avoid having to redirect my attention to menuloader (I had more important things to do at the time), I dropped some useful code and explained the general idea of menuloader. As far as I know, the very first application based on these ideas is sadmenu, which includes a simple patch that makes testing banners out quite a bit safer. Crediar did the same, but then reworked the resulting patches into a tool that installs them permanently into the Wii. After watching his video, I figured it was about time to finally clean menuloader up and release it.
menuloader 0.4 is a tool that dynamically launches the System Menu with a set of patches. The patching occurs entirely as the menu is loaded, and the changes aren’t permanent. None of the patches will persist once you reboot the Wii or reload the System Menu. This release is meant to be a “test” version, as it lacks some features and the patches have not undergone much testing. It includes the following (selectable) patches:
- USBGecko debugging, with optional extended debugging information
- Regionfree Wii disc booting (I hear this doesn’t work perfectly yet)
- Regionfree channel booting (useful if you’ve region-swapped your Wii and want to use your old store-bought VC and WiiWare titles)
- v0.5: Disable updates
- Skip Warning screen
- Disable background music
Additionally, you can pick which IOS to use when booting. On a 3.3 Wii, for example, pick IOS35 to get back the ability to use fakesigned discs. On a 3.2 or older Wii, you can pick IOS37 to “experience” what happens when 3.3 users try to use fakesigned discs, like we did in March (assuming you actually have IOS37 installed).
The main difference between this tool and crediar’s is that menuloader boots the new system menu with the patches applied during the launch process – nothing ever gets modified in your Wii’s NAND filesystem. This means that the hack only persists until the system menu exits (when you boot a game or reboot the Wii), but it also means that it is much safer for trying out new patches.
The ideas for some of the patches were inspired by crediar’s demonstration video, but the actual patches were developed independently and, in fact, before crediar’s installer was released. The patching methodology is entirely different in both applications – Starfall app uses static patches which only work on 3.2E, while menuloader uses dynamic search and replace, which is compatible with a wide range of System Menu versions. We can afford to do this because menuloader does not install anything to NAND. If anything goes wrong, you can just reboot the Wii and everything will be back to normal.
FAIR WARNING: While menuloader does not modify your NAND filesystem, the System Menu does have the ability to do so, and incorrect patches could result in the System Menu itself causing trouble. In particular, the same warnings that apply to region-free modchips apply to menuloader: if you run an update from a disc from another region, it could result in duplicated channels, a semibrick, or in rare cases a full brick. v0.5: This version includes a patch to disable disc updates. It is STRONGLY RECOMMENDED that you leave this on.
Once I get a chance to clean things up a bit, I’ll release a new version with source code so you can experiment with your own patches.
It is important to note that this isn’t merely a testing or specific-use tool with no ability to apply the patches on startup. While I do not think that modifying the System Menu in NAND is a good idea, there are ways of making Menuloader run on startup, effectively accomplishing the same goal in a safer way. We expect to be able to do this when the boot2 hack is released (which, from now on, I’m going to call boot1.5 or BootMii).
v0.5 notes: I added another patch to fix an extra region check. This is now part of the “disc region” option. I also added a patch to disable updates.
Enjoy! Stay tuned for more information on my current ideas about future hacks, how were going to manage System Menu and IOS patches, and BootMii. Oh, yeah, and the DVD lib. No, we haven’t forgotten about it.