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

IOS28

From WiiBrew
Jump to navigation Jump to search
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.

This IOS also uses a different range of memory, so it must clear memory differently. Because IOS22 and below did not do this, IOS28 also clears it if one of those IOSes is reloaded to.[1]

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

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