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

Difference between revisions of "WiiMode"

From WiiUBrew
Jump to navigation Jump to search
(Removed stuff that is extensively documented on WiiBrew, and added Espresso compat stuff)
(Add info about config and boot args)
Line 8: Line 8:
 
== Updates ==
 
== Updates ==
 
If an update is available for the Wii U, the Wii Mode will be disabled until the update is done, while IOSU255 runs.
 
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.<br>
 +
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"<br>
 +
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 [https://wiibrew.org/wiki//shared2/sys/SYSCONF SYSCONF].
 +
 +
After returning back to CafeOS, [https://wiiubrew.org/wiki//dev/usr_cfg#Wii2Cafe Wii2Cafe] parses changes made in WiiMode.
 +
 +
== Boot arguments ==
 +
The following boot arguments are written by the MCP to "/shared2/sys/compat/args.bin".<br>
 +
They are read and parsed by the Wii System Menu. [[COMPAT-BS]] reads the file and verifies the magic, but ignores all arguments.
 +
 +
{| class="wikitable"
 +
|-
 +
! Start
 +
! Length
 +
! Description
 +
|-
 +
| 0x00
 +
| 4
 +
| Magic value: "WiiU"
 +
|-
 +
| 0x04
 +
| 4
 +
| Launch target<br>0x00: System Menu<br>0x01: System setup<br>0x02: Data management<br>0x10: Specified Title ID
 +
|-
 +
| 0x08
 +
| 8
 +
| Title ID
 +
|-
 +
| 0x10
 +
| 0x70
 +
| Reserved
 +
|}
  
 
== See also ==
 
== See also ==
 
* [https://wiibrew.org/wiki/vWii vWii on WiiBrew]
 
* [https://wiibrew.org/wiki/vWii vWii on WiiBrew]

Revision as of 21:46, 17 March 2022

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