System Update

From WiiBrew
Jump to navigation Jump to search

A system update is a collection of updated titles installed via the “Wii System Update” feature, either from a disc or over the network. The System Menu is typically updated, along with certain IOSes, and sometimes some channels.

While system updates are generally referred to by version, the Wii does not store a firmware version anywhere, besides the System Menu version, although not all system updates come with a System Menu (for example, the Oct. 23 Update).

Update process

Updating begins either through an update button in system settings, or when a disc is inserted that requires a later update. In the case of an update through system settings, known as an online update, the System Menu downloads the set of titles to be updated from NUS. On the other hand, if it occurs due to a disc being inserted, known as a disc update, the update contents are simply retrieved from the update partition by IOS.

After this, each title's version number is compared to the version number in the update data. For each title with a version number higher than that on the NAND, and each title that does not already exist on the NAND, the title contents are copied to /import to be updated.

For each title updated, the title is simply renamed to be placed in /title, also removing the old title. The first title to be updated is boot2, whose contents are instead passed to ES_ImportBoot in /dev/es, in an attempt to safely update both copies of boot2. After this, the System Menu IOS is installed, followed by the System Menu. The rest of the updated titles have no special order.

vWii updates

On the vWii, updates are done together with Wii U updates. The upper bits of the title IDs are modified to avoid interference with Wii U titles, although Wii U titles would not have interfered even without this mapping, since all Wii U titles have upper values of at least 00050000. This mapping is only done on NUS; the actual titles are still installed into the normal locations in the vWii.

00000007 00000001
00070002 00010002
00070008 00010008