Shop

Control the whole channel

When you wish to control the console itself, you utilize wiiShop. It is an important (and necessary) object to instanciate, as it controls the flow of the channel - rebooting, errors, options - alongside handling localization.

var wiiShop = new wiiShop();

Members

Member NameDiscussion

wiiShop.returnToUpdate()

Resets the system to the Wii System Update menu available in Settings.

wiiShop.rebootSystem()

Resets the system - i.e. restarting the channel. On a Wii U, this appears to go to the Wii U Menu.

wiiShop.returnToMenu()

Exits to the Wii System Menu.

wiiShop.jumpToEULAViewer()

Resets the system to the EULA agreement channel.

wiiShop.jumpToManualChannel()

On a vWii, opens the Wii Menu Electronic Manual. As this channel is not available by default on normal Wiis, it fails to launch and goes to the Wii System Menu.

wiiShop.retry()

First, it checks the current error code, if any.

If the error is:

  • 209506

  • 209509

  • 209510

  • 209528

  • 209535

  • 209538

  • 209540

  • 209546

the channel simply goes to the previous page.

If not, the channel is reset.

wiiShop.beginWaiting()

Shows the spinner UI over the currently loaded page.

wiiShop.endWaiting()

Hides the spinner UI for the currently loaded page.

wiiShop.setWallpaper(type)

Changes the image displayed in the borders of the loaded webpage. There are four types, specified by type:

  • 0: Dotted blue lines, default

  • 1: Pure black

  • 2: Pure white

  • 3: Blue vertical lines, as used within the health and safety manual

wiiShop.disableHRP()

Disables the HOME menu.

wiiShop.enableHRP()

Enables the HOME menu.

wiiShop.error(errorCode, errorType)

Displays an error page with errorCode.

TODO: Determine what types are available for this section. 0 and 1 are known.

wiiShop.closeManual()

Apparently available to close the shop's manual, it simply returns to the Wii System Menu.

wiiShop.jumpDataMng()

Opens Data Management within the Wii System Menu.

wiiShop.setSCARank(rank)

Changes the appearence of Mario in the download screen: - 0: Small Mario - 1: Star Mario - 2: Mario running against Bullet Bills - 3: Fire Mario Anything above 3 will display Fire Mario.

Properties (Get)

Property NameDiscussion

wiiShop.errMsg

Returns a localized string for the current error message.

TODO: Determine how this is set, and why error code 209658 is handled differently.

wiiShop.errCode

Returns the current error code registered as a string.

wiiShop.title

Returns a localized string of the channel. In English, this is "Wii Shop Channel".

wiiShop.retryBtn

Returns a localized string for the retry button, such as "Try Again" in English.

wiiShop.menuBtn

If launched normally, returns a localized string for "Wii Menu".

If launched as a manual viewer, returns a localized string for "Back" .

wiiShop.wiiUMenuBtn

Returns a localized string for "Wii U Menu".

wiiShop.eulaBtn

Returns a localized string for "Proceed".

wiiShop.eulaMsg

Returns a localized paragraph pleading for the user to agree to the Wii Network Services Agreement.

wiiShop.manualBtn

Returns a localized string for "Continue".

wiiShop.connecting

Returns a localized string for "Connecting. Please wait..."

This string is extremely important and must be accessed on each page load. Please see Connecting example for more information.

wiiShop.isCompatibleMode

Appears to always return 0, as nothing accesses what it reads from at 0x803607f9.

TODO: Verify

wiiShop.launchCode

Returns some variant of a launch code, which is also referenced to check if the channel was launched to be a manual viewer.

TODO: Determine possible codes

Connecting Example

It is important that wiiShop.connecting variable is accessed once per page load, as it stops an internal timer. It is additionally important that its value is set to a variable and not cast away, as it being accessed is what cancels the timer.

If the timer is not cancelled, error 209601 is displayed after 100 seconds.

The following code block provides an example of the bare minimum required to prevent an error thrown:

var wiiShop = new wiiShop();
const unused = wiiShop.connecting;

Properties (Set)

Property NameDiscussion

wiiShop.getLogUrl = stringVariable

Sets a log URL to the given string.

TODO: where and how is this used otherwise? It seemingly cannot be queried, and nothing accesses the URL throughout runtime.

wiiShop.fadeColor = integerValue;

Sets a color to fade to when exiting from the Mario downloading animation.

TODO: Is this correct?

Test Variables (Get/Set)

It's unclear on what these are used for: the channel never utilizes set values throughout operation, nor does the Nintendo-provided Wii Shop Channel. Their values persist unmodified throughout the current channel's launch, making them the numerical equivalent to a cookie, at best. One can assume that they were most likely included for testing purposes with the C++ <-> JS runtime bindings for Opera. Nonetheless, they are included.

Property NameDiscussion

wiiShop._a_

General-purpose Number type.

wiiShop._b_

General-purpose Number type.

wiiShop._c_

General-purpose Number type.

wiiShop._d_

General-purpose Number type.

Last updated