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.

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.

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-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.

As of late 2008, Nintendo has been replacing some versions of IOS with "stubs" -- small IOSes that do not seem to be functional. This is most likely an attempt to prevent vulnerable versions of IOS from being installed (see e.g. IOS254).

Major Minor(s) Version Number(s) Notes NUS Availability
IOS3 255.0 v65280 Non-functional "stub"? Unavailable
IOS4 0.3, 1.3, 255.0 v3, v259, v65280 Only has minimal drivers; possibly used during manufacturing and/or updating, broken into 3 pieces 2 of which are now shared contents as of Oct. 23rd update. v65280
IOS9 2.4, 2.6, 2.8, 2.9 v516, v518, v520, v521 Has only one LED pattern: blinking. First "normal" IOS version. v520, v521
IOS10 3.0 v768 v768
IOS11 0.10, v1.0 v10, v256 Internal timestamp says Nov 14 2006 16:26:01 v10, v256
IOS12 0.6, 0.11, 0.12 v6, v11, v12 v6, v11, v12
IOS13 0.10, 0.15, 0.16 v10, v15, v16 v10, v15, v16
IOS14 1.1, 1.6, 1.7 v257, v262, v263 v262, v263
IOS15 1.1, 1.2, 1.3, 1.4, 1.9, 1.10 v257, v258, v259, v260, v265, v266 Contains NAND BOOT PROGRAM (AKA NANDloader) -- this was probably accidental v257, v258, v259, v260, v265, v266
IOS16 1.1, 2.0 v257, v512 Initially used for Wii Backup Disc. The version on the Wii Backup Disc was infamously used by pirates, until System Menu 4.0 included this IOS as v512. It is now a stub not unlike IOS3, IOS4 and retired System Menu IOSes which Nintendo no longer uses for their products. v512
IOS17 2.0, 2.5, 2.6 v512, v517, v518 v512, v517, v518
IOS20 0.12, 1.0 v12, v256 Feb 22 2007 04:25:59 v12, v256
IOS21 2.2, 2.5 v514, v515, v516, v517, v522, v525 Contains NAND BOOT PROGRAM. Most debugging messages are removed. Most common for third-party titles. v514, v515, v516, v517, v522, v525
IOS22 3.4, 3.9 v772, v777, v780 v777, v780
IOS28 5.8, 5.12 v1288, v1292, v1293 Starting with IOS28, firmware is divided into 15 modules. Added some ioctls to /dev/es. v1292, v1293
IOS30 4.15, 4.16, 11.0 v1037, v1039, v1040, v2576, v2816 Added USB Keyboard support. Used by many previous versions of the System Menu. Now contains a backport of the IOS37 hash comparison bugfix. v1037, v1039, v1040, v2576, v2816
IOS31 4.15, 4.16, 12.16 v1037, v1039, v1040, v2576, v3088, v3092 Now contains a backport of the IOS37 hash comparison bugfix. v1037, v1039, v1040, v2576, v3088, v3092
IOS33 4.16, 11.16 v1040, v2832, v2384 v1040, v2382, v2384
IOS34 4.15, 12.15 v1039, v3087, v3091 v1039, v3087, v3091
IOS35 4.16 v1040, v3088, v3092 v1040, v3088, v3092
IOS36 4.18, 12.18 v1042, v3090, v3094 v1042, v3090, v3094
IOS37 8.22, 14.25 v2070, v3609, v3612 First to fix the signature-checking function bug v2070, v3609, v3612
IOS38 14.19 v3609, v3610 Introduced with Animal Crossing: City Folk. Not yet analyzed but may have something to do with WiiSpeak. v3610
IOS40 v2321, v2835, v3072 Present in Korean system. v3072
IOS41 v2320, v2835 Present in Korean system. v2835
IOS43 v2320, v2835 Present in Korean system. v2835
IOS45 v2320, v2835 Present in Korean system. v2835
IOS46 v2322, v2837 Present in "Need for Speed Undercover" and in "Shin Chuukadaisen" Korean. v2837
IOS50 19.25 v4889, v5120 Came with the November 17, 2008 update. Used by System Menu 3.4. v4889, v5120
IOS51 18.25 v4633, v4864 Used by a previous Shop Channel. Released at same time as fixes to remaining fakesigning bugs. v4633, v4864
IOS52 v5661 Included with and used by Korean System Menu 3.5. v5661
IOS53 v4113, v5149 Comes with Need for Speed Undercover. v4113, v5149
IOS55 v4633, v5149 Comes with Need for Speed Undercover. Seems to have changes in the DI Module. Loading the game with geckoos produces error #002. It can be an update for the new wireless USB Driving Wheel from Logitech, supported only by Need for Speed: Undercover. v4633, v5149
IOS56 v4890 Runs under the Wii Speak Channel 2.0. v4890
IOS60 v6174 Used by System Menu 4.0 v6174
IOS61 v4890 Used by the Wii Shop Channel update that came with System Menu 4.0 v4890
IOS254 12.16 v2, v3 Distributed along with all System Menus since System Menu 3.4 as a quick fix for PatchMii. It's just copy of IOS9. v2, v3