IOS history

From WiiBrew
Jump to navigation Jump to search

This page is intended to track changes in IOS (the operating system that runs on Starlet) such as: added features, bug fixes, etc. It will also cover what different minor versions are known to exist.

Overview

The Title ID of the IOSes follow this convention "00000001-000000xx" where xx is the IOS number in hexadecimal. The "IOS number" is best thought of as a "Major" version number for the firmware, and probably corresponds to a specific version of Nintendo's (proprietary) SDK. For example, the version of the SDK used to compile Zelda: Twilight Princess probably was tailored to run on IOS9.

In general, IOSx0 is used for the system menu (IOS20, IOS30, IOS40, IOS50, IOS60, IOS70). IOSx1 seems to be used for Nintendo channels (e.g. IOS31, IOS51, IOS61).

Each IOS has a 16-bit version number in its TMD. This version number is seen in decimal form in the filenames of IOS WADs on update partition (e.g. "IOS9-64-v516.wad" for version 516 (decimal)). Converted to hex, that 516 becomes 0x0204, and can be read as "2.4" -- IOS9, version 2.4.

As a rule, an existing IOS will never have new features added to it, to protect binary compatibility. This means that any updates for existing IOSes are only meant to fix bugs (generally, security bugs).

Stubs

As of late 2008, Nintendo has been replacing some versions of IOS with small non-functional stub IOSes. This is so that they do not need to port security fixes to unused IOS slots, or in some cases, prevent private IOSes from being leaked and installed for older exploits, as ES refuses to install a title if an already-installed copy has a higher version number. Such IOSes have been marked as Mothballed.

A few IOSes above slot 200 were also stubbed in the 4.2 update, namely those commonly used by pirates. Nintendo's intentions are unclear, but they seem to have been attempting to overwrite the cIOS. However, this was trivially bypassed with version 65535 (most stubs, including the anti-cIOS ones, use version 65280). These IOSes have been marked as Preventative.

Version Table

Highlighted versions are not available on NUS.

IOS Number Minor(s) Version Number(s) Notes NUS Availability Status
IOS3 255.0 v65280 IOS3 is found as a stub on RVL-CPU-20 consoles, and appears to be used by newer versions of the 122E disc. The version number used by 122E is unknown. Unavailable Mothballed
IOS4 0.1, 0.3, 1.3, 255.0 v1, v3, v259, v65280 Previous versions only had minimal drivers (lacking KD, WL, WD, SSL), and were used during manufacturing. v3's timestamp is Aug 10, 2006; it was used by the Prelaunch System Menu present on pre-launch kiosk Wiis that shipped without a full System Menu. v259 is a stub found on some Korean Wiis. v1's existence is known through remnants in the Startup Disc NAND. v65280 is a stub; at one point, v3 was on CDN, likely by accident, but it was replaced with the stub version. v65280 Mothballed
IOS5 255.0 v65280 The IOS5 going around the internet is a modded version of IOS21 and is not real, the legit IOS5 will probably never be seen. An IOS with the same title ID exists as a stub on some Wiis, probably for repair discs, much like IOS16 Unavailable Mothballed
IOS9 0.1, 2.4, 2.6, 2.8, 2.9, 3,10, 4.10, 5.10, 105.10 v1, v516, v518, v520, v521, v778, v1034, v1290, v26890 Has only one LED pattern: blinking. Used by System Menu 1.0 and launch games. Version 1's internal timestamp is Aug 22 2006 13:46:28. v518 was at some point found on Korean Wiis. v520, v521, v778, v1034 Active
IOS10 2.6, 3.0 v518, v768 Used by the Japanese version of System Menu 1.0. Fixed an AOSS bug that was in IOS9. v768 Mothballed
IOS11 0.10, 1.0 v10, v256 Internal timestamp says Nov 14 2006 16:26:01. Used by System Menu 2.0 and 2.1. v10, v256 Mothballed
IOS12 0.6, 0.11, 0.12, 1.13, 2.13, 2.14, 3.14, 13.14 v6, v11, v12, v269, v525, v526, v782, v26382 This IOS has an internal date of June 4, 2006; this would make it the earliest known IOS, although it is likely that IOS9 came first due to its lower slot number, but the older IOS9 was unreleased. v6, v11, v12, v269, v525, v526 Active
IOS13 0.10, 0.15, 0.16, 1.11, 4.7, 4.8, 5.8, 105.8 v10, v15, v16, v273, v1031, v1032, v1288, v26888 Used by Photo Channel and Photo Channel 1.1. Also used by the second version of Forecast Channel dummy and News Channel dummy, although these could never be launched. v10, v15, v16, v273, v1031, v1032 Active
IOS14 1.1, 1.6, 1.7, 2.8, 4.7, 4.8, 5.8, 105.8 v257, v262, v263, v520, v1031, v1032, v1288, v26888 v262, v263, v520, v1031, v1032 Active
IOS15 1.1, 1.2, 1.3, 1.4, 1.9, 1.10, 2.11, 4.7, 4.8, 5.8, 105.8 v257, v258, v259, v260, v265, v266, v523, v1031, v1032, v1288, v26888 Most versions contain a modified NAND Boot Program that patches the Internet Channel v257, v258, v259, v260, v265, v266, v523, v1031, v1032 Active
IOS16 1.1, 2.0 v257, v512 Initially used by the Wii Backup Disc. The version on the Wii Backup Disc was infamously used by pirates, until System Menu 4.0 mothballed this IOS as of v512. The mothballed stub version was retracted from the Korean SOAP server 2 days after its original posting for unknown reasons. The System Menu 4.1 update for Korea added it back, along with stubbing IOS52. v512 Mothballed
IOS17 2.0, 2.5, 2.6, 3.7, 4.7, 4.8, 5.8, 105.8 v512, v517, v518, v775, v1031, v1032, v1288, v26888 v512, v517, v518, v775, v1031, v1032 Active
IOS19 2.1 v513 Never found; IOS21's WiiConnect24 code contains a string for WiiConnect24/FW_19.2.1. Unreleased
IOS20 0.12, 1.0 v12, v256 Feb 22 2007 04:25:59. Used by System Menu 2.2. v12, v256 Mothballed
IOS21 2.2, 2.3, 2.4, 2.5, 2.10, 2.13, 3.14, 4.14, 4.15, 5.15, 105.15 v514, v515, v516, v517, v522, v525, v782, v1038, v1039, v1295, v26895 Contains the same modified NAND Boot Program as IOS15 (but not as a shared content). Active
IOS22 3.4, 3.9, 3.12, 4.13, 5.13, 5.14, 6.14, 106.14 v772, v777, v780, v1037, v1293, v1294, v1550, v27150 v777, v780, v1037, v1293, v1294 Active
IOS28 5.8, 5.12, 5.13, 6.14, 7.14, 7.15, 8.15, 108.15 v1288, v1292, v1293, v1550, v1806, v1807, v2063, v27663 Starting with IOS28, IOS got divided into 15 modules. Added some ioctls to /dev/es, mainly related to shared contents. v1292, v1293, v1550, v1806, v1807 Active
IOS30 4.13, 4.15, 4.16, 10.16, 11.0 v1037, v1039, v1040, v2576, v2816 Used by System Menu 3.0, 3.1, 3.2 and 3.3. v1037, v1039, v1040, v2576, v2816 Mothballed
IOS31 4.13, 4.15, 4.16, 10.16, 12.16, 12.20, 13.21, 14.23, 14.24, 15.24, 115.24 v1037, v1039, v1040, v2576, v3088, v3092, v3349, v3607, v3608, v3864, v29464 Used by News Channel and Forecast Channel. v1037, v1039, v1040, v2576, v3088, v3092, v3349, v3607, v3608 Active
IOS33 4.15, 4.16, 11.14, 11.16, 12.19, 14.23, 14.24, 15.24, 115.24 v1039, v1040, v2832, v2834, v3091, v3607, v3608, v3864, v29464 v1040, v2832, v2834, v3091, v3607, v3608 Active
IOS34 4.15, 12.15, 12.19, 13.20, 14.23, 14.24, 15.24, 115.24 v1039, v3087, v3091, v3348, v3607, v3608, v3864, v29464 v1039, v3087, v3091, v3348, v3607, v3608 Active
IOS35 4.16, 12.16, 12.20, 13.21, 14.23, 14.24, 15.24, 115.24 v1040, v3088, v3092, v3349, v3607, v3608, v3864, v29464 v1040, v3088, v3092, v3349, v3607, v3608 Active
IOS36 4.18, 12.18, 12.22, 13.23, 14.23, 14.24, 15.24, 115.24 v1042, v3090, v3094, v3351, v3607, v3608, v3864, v29464 Used by many games/titles. A lot of Homebrew used to rely on this IOS. v1042, v3090, v3094, v3351, v3607, v3608 Active
IOS37 8.22, 14.25, 14.28, 15.29 22.30, 22.31, 23.31, 123.31 v2070, v3609, v3612, v3869, v5662, v5663, v5919, v31519 First IOS to fix the signature-checking function bug. v2070, v3609, v3612, v3869, v5662, v5663 Active
IOS38 14.25, 14.26, 15.27, 16.27, 16.28, 17.28, 117.28 v3609, v3610, v3867, v4123, v4124, v4380, v29980 Used by Animal Crossing: City Folk (non-Korean). v3610, v3867, v4123, v4124 Active
IOS40 9.17, 11.19, 12.0 v2321, v2835, v3072 Only used on Korean Wiis by System Menu 3.3K. v3072 is a stub. v3072 Mothballed
IOS41 9.16, 11.19, 12.19, 13.20, 14.22, 14.23, 15.23, 115.23 v2320, v2835, v3091, v3348, v3606, v3607, v3863, v29463 Used in Korean system. v2835, v3091, v3348, v3606, v3607 Active
IOS43 9.16, 11.19, 12.19, 13.20, 14.22, 14.23, 15.23, 115.23 v2320, v2835, v3091, v3348, v3606, v3607, v3863, v29463 Used in Korean system. v2835, v3091, v3348, v3606, v3607 Active
IOS45 9.16, 11.9, 12.19, 13.20, 14.22, 14.23, 15.23, 115.23 v2320, v2835, v3091, v3348, v3606, v3607, v3863, v29463 Used in Korean system. v2835, v3091, v3348, v3606, v3607 Active
IOS46 9.18, 11.21, 12.21, 13.22, 14.22, 14.23, 15.23, 115.23 v2322, v2837, v3093, v3350, v3606, v3607, v3863, v29463 Used by Korean "Mario Kart Wii". Present in "Need for Speed: Undercover" (Korean) and in "Shin Chuuka Taisen: Michael to Meimei no Bouken" (Korean). v2837, v3093, v3350, v3606, v3607 Active
IOS48 16.27, 16.28, 17.28, 117.28 v4123, v4124, v4380, v29980 Used by Korean "Animal Crossing: City Folk". Bundled with System Menu 4.3K. Provides the same features as IOS38, but has a newer SDI module and an FFSP vs FFS module. v4123, v4124 Active
IOS50 19.25, 20.0 v4889, v5120 Came with the November 17, 2008 update. Used by System Menu 3.4. v4889, v5120 Mothballed
IOS51 18.25, 19.0 v4633, v4864 Used by a previous Shop Channel. Released at same time as fixes to remaining fakesigning bugs. v4633, v4864 Mothballed
IOS52 22.29, 23.0 v5661, v5888 Included with and used by System Menu 3.5 (exclusive to Korean Wiis). v5661, v5888 Mothballed
IOS53 16.17, 20.29, 21.30, 22.30, 22.31, 23.31, 123.31 v4113, v5149, v5406, v5662, v5663, v5919, v31519 v4113, v5149, v5406, v5662, v5663 Active
IOS55 18.25, 20.29, 21.30, 22.30, 22.31, 23.31, 123.31 v4633, v5149, v5406, v5662, v5663, v5919, v31519 Seems to have changes in the DI Module. v4633, v5149, v5406, v5662, v5663 Active
IOS56 19.26, 20.26, 21.29, 22.29, 22.30, 23.30, 123.30 v4890, v5146, v5405, v5661, v5662, v5918, v31518 Used by the Wii Speak Channel 2.0 and some games. Used by the Wii Shop Channel update as of Sept. 7, 2010. v4890, v5405, v5661, v5662 Active
IOS57 21.28, 22.29, 23.30, 23.31, 24.31, 124.31 v5404, v5661, v5918, v5919, v6175, v31775 Contains new/updated modules "OHCI0, USB, USB_HID, USB_HUB, USB_MSC, USB_VEN, ETH". v5404, v5661, v5918, v5919 Active
IOS58 23.30, 24.31, 24.32, 25.32, 125.32[check] v5918, v6175, v6176, v6432, v32032[check] Comes with the game "Your Shape" to allow the USB camera to work. First and only IOS to support USB 2.0. v6175, v6176 Active
IOS59 26.33, 28.33, 34.33, 36.33, 128.33 v6689, v7201, v8737, v9249, v32801 Used by titles that require WFS functionality (Dragon Quest X and the USB Repair Channel). v8737, v9249 Active
IOS60 24.30, 25.0 v6174, v6400 Used by System Menu 4.0 and System Menu 4.1. First IOS to support SDHC. v6174, v6400 Mothballed
IOS61 19.26, 21.29, 22.29, 22.30, 23.30, 123.30 v4890, v5405, v5661, v5662, v5918, v31518 Used by the Wii Shop Channel update that came with System Menu 4.0, 4.1 and 4.2. Also used by Photo Channel 1.1b. v5918 is the only IOS version exclusive to newer RVL-101 units, as IOS61 is missing on the vWii. v4890, v5405, v5661, v5662 Active
IOS62 25.30 v5663, v6430, v31263 Used by the Wii U Transfer Tool, to allow it to change its UID (this version specifically whitelists that). The vWii versions (not listed here) have different whitelists that allow Wii System Transfer. v6430 Active
IOS70 26.31, 27.00 v6687, v6912 Used by System Menu 4.2. v6687, v6912 Mothballed
IOS80 27.31, 27.32, 28.32, 128.32 v6943, v6944, v7200, v32800 Used by System Menu 4.3. v6943, v6944 Active
IOS222 255.0 v65280 Piracy prevention. v65280 Preventative
IOS223 255.0 v65280 Piracy prevention. v65280 Preventative
IOS249 255.0 v65280 Piracy prevention. v65280 Preventative
IOS250 255.0 v65280 Piracy prevention. v65280 Preventative
IOS254 0.2, 0.3, 1.04, 255.0 v2, v3, v260, v65280 Distributed along with all System Menus since 3.4 as a quick fix for PatchMii. It's just a copy of IOS9. As Nintendo released new versions of IOS9 this title also received updates.-ex v3 of IOS254 corresponds to IOS9 v521. v65280 is a stub. v2, v3, v260, v65280 Preventative
IOS256 (BC) 0.0, 0.1, 0.2, 0.4, 0.5, 0.6 v0, v1, v2, v4, v5, v6 IOS slot 256 is used for BC, which is responsible for loading MIOS. v2, v4, v5, v6 Active
IOS257 (MIOS) 0.0, 0.1, 0.4, 0.5, 0.8, 0.9, 0.10 v0, v1, v4, v5, v8, v9, v10 IOS slot 257 is used for MIOS, the IOS used in GameCube mode. Its main purpose is to allow the PowerPC to directly access GameCube hardware. Note that the MIOS binary contains both ARM and PowerPC code. v4, v5, v8, v9, v10 Active

False positives

These IOS versions may be displayed by tools such as SysCheck, but are not actual IOSes.

Apparent name Real name Purpose
IOS0 ES_Identify Superuser This TMD is automatically installed when it is passed to ES_Identify, but its real purpose is to give superuser permissions to the ES_Identify caller.
IOS1 boot2 glitch This appears when something is installed into /title/00000001/00000001. This directory is normally unused, as 1-1 is reserved for boot2, but some homebrew (and possibly Dolphin) may incorrectly install it into this directory.
IOS2 System Menu This will not show in most tools, but the System Menu uses ID 1-2, which may look like an IOS to a very basic tool.
IOS512 BC-NAND Some tools released before the vWii may not know about BC-NAND and BC-WFS, which are used as ancast images to launch NAND and WFS titles respectively.
IOS513 BC-WFS See IOS512