Wii System Software - IOS

IOS

The Wii's firmware is in the form of IOSs (thought by the Wii homebrew developers to stand for 'Input Output Systems' or 'Internal Operating Systems'), which run on a separate ARM architecture processor to other Wii software (nicknamed Starlet by the Wii homebrew community, as it is physically located inside the graphics chip, the Hollywood, so it is a small part of Hollywood. The patent for the Wii U indicates a similar device which is simply named "Input/Output Processor"). These control input and output between the code running on the main processor (the PowerPC "Broadway" processor) and the Wii's hardware features that did not exist on the GameCube, which can only be accessed via the ARM.

When Nintendo releases a new IOS version, except for unusual circumstances (for example security updates to block homebrew), the new IOS does not replace any IOS already installed. Instead, it gets installed in addition to any current IOS versions. All native Wii software (including games distributed on Nintendo optical discs, the System Menu itself, Virtual Console games, WiiWare, and Wii Channels), with the exception of certain homebrew applications, have the IOS version hardcoded into the software.

When the software is run, the IOS that is hardcoded gets loaded by the Wii, which then loads the software itself. If that IOS does not exist on the Wii, in the case of disc-based software, it gets installed automatically (after the user is prompted). With downloaded software, this should not theoretically happen, as the user cannot access the shop to download software unless the player has all the IOS versions that they require. However, if homebrew is used to forcefully install or run a piece of software when the required IOS does not exist, the user is brought back to the system menu.

Nintendo created this system so that new updates wouldn't unintentionally break compatibility with older games, but it does have the side effect that it uses up space on the Wii's internal NAND Flash memory. IOSes are referred to by their number, which can theoretically be between 0 and 254, although many numbers are skipped, presumably being development versions that were never completed.

Only one IOS version can run at any given time. The only time an IOS isn't running is when the Wii enters Gamecube backward compatibility mode, during which the Wii runs a variant of IOS specifically for Gamecube games, MIOS.

Read more about this topic:  Wii System Software