WiiMode

From WiiUBrew
Jump to navigation Jump to search

WiiMode refers to the state on the Wii U when Wii backwards compatibility is in use. It is launched by cafe2wii, and can only be exited through a reboot, which is what the Wii U Menu channel does.

WiiMode is not emulated; it instead runs in a hardware-enforced sandbox. This results in certain Wii U mode features being available through exploits, such as Espresso code execution without Broadway compatibility mode enabled. None of these exploits allow a full Wii U mode takeover.

Espresso compatibility

Because the Espresso boot ROM only boots ancast images, Broadway titles will not boot in their ordinary form. Instead, they must boot through a special apploader in ancast format, which then loads the title itself.

Updates

If an update is available for the Wii U, the Wii Mode will be disabled until the update is done, while IOSU255 runs.

Config reflection

To avoid having to configure settings in both Wii U and Wii mode separately, wii settings have been disabled and several settings from CafeOS are applied in WiiMode.
When launching CMPT mode the MCP writes a 0x4E8 byte structure to "/shared2/sys/compat/conf.bin" and sets the "wii_acct.internal.reflection" flag. This structure contains settings for Audio/Video, paired Wii Motes, parental controls, and general settings. The network configuration is directly written to "/shared2/sys/net/02/config.dat"
Once booted into WiiMode this structure will be parsed by the Wii System Menu or the COMPAT-BS and the settings will be applied to the SYSCONF.

After returning back to CafeOS, Wii2Cafe parses changes made in WiiMode.

Boot arguments

The following boot arguments are written by the MCP to "/shared2/sys/compat/args.bin".
They are read and parsed by the Wii System Menu. COMPAT-BS reads the file and verifies the magic, but ignores all arguments.

Start Length Description
0x00 4 Magic value: "WiiU"
0x04 4 Launch target
0x00: System Menu
0x01: System setup
0x02: Data management
0x10: Specified Title ID
0x08 8 Title ID
0x10 0x70 Reserved

See also