Line 1: |
Line 1: |
| + | This list only covers IOS releases for the Wii (RVL) platform. IOS bringup with an emulator is covered in [[RVL_EMU]], and IOS bringup with a separate ARM board is covered in [[Versa]]. |
| + | |
| + | '''Note''': All 0.x releases have the title ID corresponding to IOS3, and as such can be referred to as versions of IOS3 even though their major version number is 0. |
| + | |
| + | '''Note''': Listed in order of build date where possible. |
| {| class="wikitable" | | {| class="wikitable" |
| ! colspan="6" |IOS List | | ! colspan="6" |IOS List |
Line 5: |
Line 10: |
| ! scope="col" |Description | | ! scope="col" |Description |
| |- | | |- |
− | ! scope="row" |IOS3 | + | !0.0 (2006-03-09) |
− | |IOS3 is quite interesting, and there is much more behind it than the generic stub which is present on many Wiis. IOS3 was used as the IOS slot and title ID for a series of pre-release IOSes used before the release of IOS4v3 in August 2006. Since IOS0 is not a valid title ID, and IOS1 and 2 are taken (as mentioned previously), IOS3 was the first choice to be the title ID for the initial branch of IOSes. While specific details are scarce, it is known that the IOS version 0.7.6 (v1978 in decimal) existed and was distributed to developers at some point before the aforementioned release of IOS4; according to information found in .ddf files in the extended SDK, it is believed that this version used IOS0 for its internal version number, but used the IOS3 title ID and as such installs to the IOS3 "slot". This is the only known instance of an official IOS's internal version number not matching with its title ID. Unlike its successor IOS4, IOS3 was never (as far as is known) released onto retail Wiis through any distribution channel. | + | |First release of IOS for RVL. This IOS was distributed as an image of 5 NAND blocks written using [[minimon]] with JTAG and debug boot using the [[Barnacle]]. Includes a simple test ELF tested on NDEV2 (which was still in early development at the time).<br /> |
| + | |- |
| + | !0.1 (2006-03-12) |
| + | |Fixes [[ISFS]] Resource Manager to support [[Broadway]] applications using [[MEM1]] (Napa) address space, as well as fixing a bug in the exception handler. The release also includes a PPC program to overwrite the first 5 NAND blocks with images stored on a host PC. Includes PPC NAND/ISFS tests. |
| + | |- |
| + | !0.2 (2006-03-13) |
| + | |It is unknown what changes this release had from 0.1. |
| + | |- |
| + | !0.5 (2006-03-24) |
| + | |Version numbers 0.3 and 0.4 excluded for unknown reasons. This release is described as a "Special Release for 64 MB [[GDDR3]]", with testing being performed on a single NDEV1 with 64MB GDDR (possibly considered a [[Pre-Production Boards|PP]] board). This release also adds bad block traversal in [[boot1]] and includes a [[THP]] player demo. |
| + | |- |
| + | !0.6 (2006-04-15) |
| + | |This release is the first to include full support for both 64 and 128MB memory sizes, with full dynamic detection. It also supports detection of [[Hollywood]] revisions 1.1x and 1.21 via [[DI]] straps, as well as disabling Napa refresh for ES1.21 systems and enabling the D-Cache in IOP. |
| + | |- |
| + | !0.6.1 |
| + | |Mentioned in readme |
| + | |- |
| + | !0.6.5 |
| + | |Mentioned in readme |
| + | |- |
| + | !0.7.5 RC1 (2006-05-26) |
| + | |This release finalizes the [[Wii Boot Sequence|boot sequence]], introducing a new boot1 and boot2 as well as moving IOS onto the main data area of the NAND [[SFFS]] instead of being kept on the system area with boot1/2. As such, this release is now installed using a [[SWUpdate]] program rather than NAND flashing, although NAND flashing is still required to upgrade from a previous version. This release also adds support for Hollywood ES2.01, updated SD and USB drivers, a DI driver with crypto support, updated TCP/IP and USB Ethernet drivers, an updated [[ES]] component, updated boot info and support for new events to be used by [[STM]]. Additional changes to OS, DI, ISFS, TCP/IP and USB were made as well. |
| + | |- |
| + | !0.7.6 RC1 (2006-06-02) |
| + | |Updated ES, USB, TCP/IP, DI, SDI (SD card/WiFi interface), and the arm-elf-merge tool. This is the first release to add support for ES [[ES Play Restrictions|play restrictions]]. |
| + | |- |
| + | !0.7.6 RC2 |
| + | |0.7.6 RC3 is a bug fix version of this release. |
| + | |- |
| + | !0.7.6 RC3 (2006-06-09) |
| + | |Updated OS, ES, DI, SDI, and TCP/IP. Added the ability to specify an IOS version for a disc partition. |
| + | |- |
| + | !0.7.6 RC4 |
| + | |It is unknown what changes this release had from 0.7.6 RC3. |
| + | |- |
| + | !0.7.7 RC1 |
| + | |It is unknown what changes this release had from 0.7.6 RC3. |
| + | |- |
| + | !4.0.0 (IOS4v0) |
| + | 2006-07-08 |
| + | |Release candidate for IOS4. Has changes including full support for GameCube compatibility mode with included [[MIOS]] and the ability to publish GameCube NAND titles (which was never used by Nintendo). |
| + | |- |
| + | !4.0.1 (IOS4v1) 2006-07-20 |
| + | |Changes including the [[Wii DVD Support|DVD-Video support]] flag in [[TMD]] becoming functional. |
| + | |- |
| + | !4.0.2 (IOS4v2) |
| + | 2006-07-31 |
| + | |Changes including support for Hynix NAND flash and thread count increased to 68. |
| + | |- |
| + | !4.0.3 (IOS4v3) |
| + | 2006-08-10 |
| + | |Bugfix release. Notably used by the [[Startup Disc Menu]] and [[Revolution SDK]] 2.1. |
| + | |- |
| + | !IOS4v259 |
| + | |Unknown version of IOS4 found on [[Korean Wii|Korean Wiis]]. |
| + | |- |
| + | !IOS4v65535 |
| + | |[[IOS#Stub IOS|Stub IOS]] |
| + | |- |
| + | !9.0.0 (IOS9v0) 2006-08-13 |
| + | |Release candidate for IOS9. Has improved ES launch time, 100 threads, 24 sockets, new FS API and other changes/bugfixes. This release is notable for improving the ES launch time by disabling ticket/TMD verification on NAND title launch, causing one of the Wii's largest security holes which was exploited repeatedly by hackers throughout the Wii's lifecycle for persistent system modifications and code execution. |
| + | |- |
| + | !9.0.1 (IOS9v1) |
| + | |Present on [[Wii Startup Disc]] console NAND and possibly used by the Wii Startup Disc, also possibly a version number change of IOS9v0 or another IOS. |
| + | |- |
| + | !9.1.0 (IOS9) 2006-08-31 |
| + | |Bugfix release. |
| + | |- |
| + | ! scope="row" |12.0.0 |
| + | (IOS12v0) |
| + | |
| + | 2006-10-25 |
| + | |Bugfix release. IOS12 is not the first IOS as has been mistakenly believed due to a build tag. |
| + | |- |
| + | !18.0.0 (IOS18v0) |
| + | 2007-02-07 |
| + | |Release candidate for IOS18. Bugfix release. |
| + | |- |
| + | !18.0.2 |
| + | (IOS18) |
| + | |Unknown |
| + | |- |
| + | !18.3.0 |
| + | (IOS18) |
| | | |
− | However, the IOS3 stub present in the folder was released onto retail Wiis through one distribution channel; it was bundled onto newer (possibly LU64+) Wiis. It was never released on NUS or discs. The exact reasoning for this is unknown, however, as Nintendo's factory tools are known to use very old IOS versions, it can be assumed that IOS3 was used for a factory tool starting with a newer production batch of Wiis, and the stub was installed at the end of the factory process in order to overwrite the old, working IOS3. It was presumably vulnerable to the signing bug, and it was not used by any retail software, so it was easier to stub it than to pointlessly patch it. As such, while the IOS3 present in the folder is an odd generic stub, there is at least one more version of IOS3 in existence (and likely many more) which are working and were used for early development purposes.
| + | 2007-04-04 |
| + | |Bugfix release. |
| + | |- |
| + | !30.4.0 |
| + | (IOS30) |
| | | |
− | While datamining [[RVL_DIAG]], a version of IOS3 was discovered in the BroadOn WAD format, otherwise only used for boot2. Its purpose on the RVL_DIAG disc is unknown. It is believed to be one of the final versions of IOS3, possibly 0.7.6. It has been converted to a normal format WAD for both development and retail (fakesigned) Wiis and can now be installed on any Wii.
| + | 2007-04-13 |
| + | |Bugfix release. |
| + | |- |
| + | !IOS9v513 |
| + | | |
| + | |- |
| + | !IOS9v516 |
| + | |Used by [[Wii System Menu]] v1.0 (except Japanese version) |
| |- | | |- |
| ! scope="row" |IOS4 | | ! scope="row" |IOS4 |
− | |Three versions of IOS4 have been released; v3, v259, and a stub identical to the IOS3 stub described above. An additional version, IOS4v1, is also known to exist. v3 was the 'original' version of IOS4, and has been found through 3 different sources; the development version present in the SDK's "swupdate403" package (available in the Development section), the version present on the Startup Disc NAND, and the version that was included with early Wiis and not overwritten until the October 2008 update. No retail games or applications used IOS4 due to it being a very limited and "barebones" IOS lacking what would come to be basic functionality, however it could be considered to be the earliest released IOS as v3 was distributed on Wiis, and for unknown reasons was even available on NUS for some time. As with how IOS3 was the primary development IOS before IOS4's release, IOS4 was used as the primary development IOS for a period of time in August-September 2006 before IOS9 was ready for developer use. As such, any Wii software built around that time typically uses IOS4, however the only available examples of this are the Startup Disc Menu and various unreleased factory tools that are known to use IOS4 from their TMD. For unknown reasons, Nintendo continued to include the IOS4 updater package (intended for updating a development kit from IOS3) with their development tools for years past when IOS4 was in use; this makes the development version of IOS4 readily available. IOS4-v1's existence is known due to remnants of it being found in the Startup Disc NAND, however not much else about it is known; since IOS4-v3 was considered finalized enough to be put on NUS, it can be assumed that this was simply an unfinished version of the IOS. As mentioned previously, IOS4-v3 was shipped intact on early Wiis; it is not known if this was intentional, or if it was only ever intended to be used for factory purposes and was not overwritten. Regardless, in October 2008, Nintendo released IOS4-v65280, a useless stub intended to overwrite all existing copies of IOS4. This stub was also preinstalled on Wiis around the same time as the IOS3 stub being preinstalled, indicating that IOS4 continued to be used for factory purposes. IOS4-v259 is by far the most mysterious version of this IOS, and very little about it is known; it has been said that it is a Korean IOS and was used on Korean Wiis at some point for unknown purposes, however further details at this point are scarce; it's not even currently known if the IOS is legitimate or not. | + | | |
| |- | | |- |
| ! scope="row" |IOS5 | | ! scope="row" |IOS5 |
Line 28: |
Line 127: |
| |- | | |- |
| ! scope="row" |IOS9 | | ! scope="row" |IOS9 |
− | |IOS9 is known for being the first "normal" IOS, being used as the first final release IOS for all retail software, including Wii System Menu 1.0 and launch day or near-launch day titles such as Wii Sports and WarioWare: Smooth Moves. Factory titles and repair titles, including Moviech, also use it. It's basic and limited compared to later IOSes (only having one LED pattern, for example), but is essentially the first IOS that was deemed stable enough to receieve regular updates and be used for retail games. Two things of note are v1, which is a version found on the Startup Disc NAND which is presumably used by the Startup Disc or factory tools used at the time, and the fact that SDK digging has revealed several more versions which have not been released, including v0 and v513 (where final is v516). It is believed that IOS9 was worked on starting with the above preliminary IOSes, got its first v0 release to devs around August, and as the Wii's launch neared the near-final and final versions were release. It doesn't appear that v1 was distributed to devs, just used for the Startup Disc NAND; it was built on August 22. It's also notable that there seems to be a major version skip here between v1 and v513; it's unknown why this versioning scheme was chosen, or what the significance of the chosen numbers for the final versions is. | + | | |
| |- | | |- |
| ! scope="row" |IOS10 | | ! scope="row" |IOS10 |
Line 35: |
Line 134: |
| ! scope="row" |IOS11 | | ! scope="row" |IOS11 |
| |IOS used by System Menu 2.0 and possibly 2.1, dated Nov 14 2006. v256 is a stub, it's unknown why. | | |IOS used by System Menu 2.0 and possibly 2.1, dated Nov 14 2006. v256 is a stub, it's unknown why. |
− | |-
| |
− | ! scope="row" |IOS12
| |
− | |Allegedly the first IOS, however this is a mistake as the apparent evidence for this is simply a string referencing a source branch which was likely created long before IOS12, judging by how IOS seems to have been just one 0.x branch back in June when this IOS was allegedly first created. Other than that, nothing remarkable.
| |
| |- | | |- |
| ! scope="row" |IOS13 | | ! scope="row" |IOS13 |