Skip to main content
Revolution IOS
intermediate
ExploreProjectsRevolution IOS

Revolution IOS

IOS is a proprietary embedded operating system developed by Broadway. It follows a microkernel architecture, where independent processes communicate through a standardized file-based API, including functions such as open, read, write, seek, ioctl, ioctlv, and close. System resources are exposed as /dev/ entries within a virtual filesystem hierarchy. Physical filesystems, such as the NAND storage, are also integrated into this structure, with the NAND driver acting as the default handler for the root node.

Milo Charming Magician
Milo Charming Magician
Published Apr 5, 2026
intermediate 2026-04-05 $0.00armembedded systemshardwareoperating systemsoftware
RVL_IOS
Wii Embedded IOS

Embedded Operating System

IOS (internally referred to as IOP, meaning Input/Output Processor) is an embedded operating system that runs on the IOP processor within the Hollywood chip. It provides a controlled service layer through which system software accesses hardware and core functionality, including USB, networking, security, application management, NAND flash storage, SD cards, the optical disc drive, and WiiConnect24.

All official Wii software relies on IOS executing on the IOP. It remains active under normal operation, with the primary exception being GameCube mode, where MIOS is used instead, functioning as a minimal replacement.

Although IOS is not a hypervisor—since it operates on a separate dedicated processor—it performs a similar role in system control and isolation. It restricts direct hardware access from the Broadway CPU, manages device communication, and can reset or reinitialize the main processor. IOS is designed to maintain system integrity even if the PowerPC side is compromised, placing it higher in the overall security hierarchy, though practical vulnerabilities have been identified.

The IOS interface is largely forward-compatible, allowing software to function across multiple IOS versions or slots in many cases. System components may take advantage of this behavior to reduce the need for reinitialization when launching titles.

During WiiConnect24 standby mode (yellow LED), the main PowerPC processor is powered down while IOS continues running in a low-power state to maintain background functionality.

Revolution Hardware

The Hollywood includes an ARM9 core to handle I/O and security it is called the IOP, short for Input/Output Processor. This is a very interesting piece of hardware, as it basically does everything that makes a Wii different from a GameCube. The IOP contains an internal 96KB SRAM, if IOS needs more memory, it can lock part of MEM2 to prevent Broadway access.

motherboard.c11eef60926f6948aa1b9480635fbfcb7c6cd5379dea7263639b7ae7432ea4e1
  • NEC ARM926EJ-S SoC.

  • Big endian for compatibility with the Broadway

  • ARM and thumb instruction set

  • Clocked at 243MHz, same as Hollywood chipset.

IOP Boot Process

  • The IOP (Input/Output Processor) is the first processor to execute code on the Wii.

  • BOOT0 runs from an internal mask ROM (4 KB).

    • Decrypts, verifies, and executes the first blocks of NAND (BOOT1, up to 47 flash pages).

  • BOOT1 locates, loads, decrypts, verifies, and executes BOOT2.

  • BOOT2 starts the IOS (the embedded operating system on the IOP).

  • IOS loads the System Menu into memory and bootstraps the main processor (Broadway) using the EXI boot vector.

ARM Embedded Development

I utilize ARM Developer Suite version 1.2 as my primary development environment to create custom drivers and extend the functionality of the Wii IOS, specifically targeting the IOP (Input/Output Processor), for use in the games I am developing. My work involves designing and implementing low-level modules that operate directly within the IOS microkernel architecture, enabling advanced hardware interactions, efficient memory management, and precise control over peripheral devices. I develop custom functions that go beyond the standard capabilities of the IOS, allowing my games to leverage unique system behaviors, implement novel gameplay mechanics, and experiment with features that are not supported in conventional builds. This includes managing interrupts, optimizing performance-critical routines, and integrating new functionality in a way that maintains stability, compatibility, and seamless interaction with the console’s existing software ecosystem. By extending the IOS in this manner, I am able to push the technical limits of the Wii hardware while delivering innovative and highly customized gaming experiences.

cw_ads12
ARM Developer Suite v1.2 - Codewarrior IDE
20240807_122604
ARM Toolkit