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
(Footnote stating Smash Stack's being deleted by the Wii U system menu. No Cite extension installed so can't use a proper footnote. Also, to be factually checked by llrcombs or someone else with a Wii U.)
 
(48 intermediate revisions by 28 users not shown)
Line 1: Line 1:
=== Exploits ===
+
'''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 [https://wiibrew.org/wiki/Wii_U_Menu 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 [[Hardware/Espresso|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 image|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.<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"
 
{| class="wikitable"
 
|-
 
|-
! Exploit Name
+
! Start
! Game Required
+
! Length
! USA
+
! Description
! JPN
 
! EUR
 
! KOR
 
! Working in WiiMode?
 
 
|-
 
|-
| Twilight Hack
+
| 0x00
| Legend of Zelda: Twilight Princess
+
| 4
| Yes
+
| Magic value: "WiiU"
| Yes
 
| Yes
 
| '''No'''
 
| '''No'''
 
 
|-
 
|-
| Bannerbomb
+
| 0x04
| ''None''
+
| 4
| Yes
+
| Launch target<br>0x00: System Menu<br>0x01: System setup<br>0x02: Data management<br>0x10: Specified Title ID
| Yes
 
| Yes
 
| Yes
 
| '''No'''
 
 
|-
 
|-
| Indiana Pwns
+
| 0x08
| LEGO Indiana Jones
+
| 8
| Yes
+
| Title ID
| Yes
 
| Yes
 
| '''No'''
 
| Untested
 
 
|-
 
|-
| [[Smash Stack]]
+
| 0x10
| Super Smash Bros. Brawl
+
| 0x70
| Yes
+
| Reserved
| Yes
 
| Yes
 
| Yes
 
| Yes*
 
|-
 
| Yu-Gi-OWNED!
 
Yu-Gi-Vah
 
| Yu-Gi-Oh 5D's Wheelie Breakers
 
| Yes
 
| Yes
 
| Yes
 
| '''No'''
 
| Untested
 
|-
 
| Bathaxx
 
| LEGO Batman
 
| Yes
 
| Yes
 
| Yes
 
| '''No'''
 
| Untested
 
|-
 
| Return of the Jodi
 
| Lego Star Wars
 
| Yes
 
| Yes
 
| Yes
 
| '''No'''
 
| Untested
 
|-
 
| Eri HaKawai
 
| Tales of Symphonia
 
| Yes
 
| Yes
 
| Yes
 
| '''No'''
 
| Untested
 
|-
 
| LetterBomb
 
| None
 
| Yes
 
| Yes
 
| Yes
 
| Yes
 
| '''No'''
 
 
|}
 
|}
  
 
+
== See also ==
<nowiki>*</nowiki>However, it gets deleted by the Wii U system menu; this can be worked around by only inserting the SD after Brawl is started.
+
* [https://wiibrew.org/wiki/vWii vWii on WiiBrew]
 +
* [[Recover  a vWii IOS/Channel]]

Latest revision as of 20:41, 23 May 2024

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