Brick/Semibrick

From WiiBrew
Jump to navigation Jump to search

A semibrick occurs when a System Menu update from the wrong region is installed on a Wii or some resources have been otherwise damaged, breaking some (but not all) of the functionality of the System Menu. Typically, games will still boot but the Settings menu will not work -- this prevents the system from healing itself with an online update. These cases can be fixed by installing a newer version of the System Menu from a disc of the correct region, or with any other tool that can modify the System Menu.

Fixing this brick

An semi brick can be fixed by opening the Homebrew channel and booting recovery software to install the correct region or IOS set.

If HBC is not installed for whatever reason, then Bannerbomb or Letterbomb can be used on any Wii on 4.0-4.3. On other versions, Bluebomb is generally the exploit to use. These exploits should be used to load the HackMii Installer, which can be used to access HBC.

Once HBC is loaded, NUS Downloader can be used to download the correct system files, and installed over the current system menu.

CAUTION: Installing the wrong file can make the brick worse! Be very careful!

Cause of this brick

Each region has its own version of the System Menu. For example, 3.2 of the System Menu available is v288 (NTSC/J), v289 (NTSC/U), v290 (PAL). The only difference between those three versions is two different files — the main executable for the menu (a .DOL file, more or less) and an ARC archive that stores compressed versions of the HTML/image resources.

All of this is fine and good, but why put them in separately named directories? (E.g. EU/EU/GER/Setup/ScreenSave.html above)? The path name could always be the same because there are different files for each version.

If there’s a specific path that the graphics need to sit at, it would make sense to simply hardcode this path. However, they seem to be trying to determine the system region from the /title/00000001/00000002/data/setting.txt file, and then building up a pathname to load like so: sprintf(filename, "html/%s2/iplsetting.ash/%s/%s/ENG/Setup/ScreenSave.html", region, region, region). If they had hard-coded the path then the settings page would have loaded just fine.