In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "IOS28"

From WiiBrew
Jump to navigation Jump to search
(IPC range is *always* reset, not just on older IOS)
(modularized separately from 30/31)
Line 10: Line 10:
  
 
This also appears to be the first IOS to support [[:/sys/disc.sys]]; this probably means Metroid Prime 3: Corruption requires special privileges.
 
This also appears to be the first IOS to support [[:/sys/disc.sys]]; this probably means Metroid Prime 3: Corruption requires special privileges.
 +
 +
IOS28 seems to have been modularized completely separately from [[IOS30]] and [[IOS31]]; because those were the IOSes that all other modular IOSes were branched from, IOS28 has a unique set of modules.
  
 
== Titles using this IOS ==
 
== Titles using this IOS ==

Revision as of 03:40, 11 March 2022

IOS28
WiiDrawing.png
Technical info
TypeCommon IOS
StatusActive


IOS28 is the first IOS to be split into multiple modules, each its own ELF ARM binary, rather than all of IOS being part of a single monolithic binary. Its ES module includes ioctls that retrieve shared contents, probably for the purpose of quickly loading IOS modules. Modules are also now tagged with $IOSVersion dates, since the build tag can no longer completely summarize the IOS. Older IOSes were later given module-specific $IOSVersion tags as they were updated.

IOS28 and up also use a different IPC range, which it sets when it is loaded. Because IOS22 and below do not set their IPC ranges, instead inheriting them from boot (probably boot2), IOS28 and above always reset the IPC range to the old one before reloading to a different IOS, which allows the old IOSes to have the old range while also allowing new IOSes to set their own range.[1]

This also appears to be the first IOS to support /sys/disc.sys; this probably means Metroid Prime 3: Corruption requires special privileges.

IOS28 seems to have been modularized completely separately from IOS30 and IOS31; because those were the IOSes that all other modular IOSes were branched from, IOS28 has a unique set of modules.

Titles using this IOS

The only game that uses it is Metroid Prime 3: Corruption, and this IOS was included in the update partition of the disc.

Version history

Version Signing bug? /dev/flash access? ES_Identify? STM Release Exploit? STM IOCTL overflow? SDI register index bug? Notes
v1288 Yes Yes Yes Yes Yes Yes Not available on NUS.
v1292 No No No Yes Yes Yes
v1293 No No No No Yes Yes
v1550 No No No No Yes Yes
v1806 No No No No Yes Yes
v1807 No No No No Yes Yes Updated WL and NCD (4.3rev03)
v2063 No No No No Yes Yes Only found on vWii and newer RVL-101 units.
v27663 No No No No Yes Yes Only found on Wii mini

References

1. https://github.com/dolphin-emu/dolphin/blob/master/Source/Core/Core/IOS/IOS.cpp