Skip to content

Stage 1 version 1

Choose a tag to compare

@mkwcat mkwcat released this 10 Apr 14:25
stage1v1
86fa656

This version of 'stage 1' is now deployed at https://nas.wiilink.ca/w1. Changes from version 0 include:

  • The random salt generation has been changed to be based on the result of ES_Sign, improving PRNG security for the prevention of downgrade attacks.
    • Valid console keys are now required for this stage 1 payload to work properly, although the default keys from Dolphin Emulator will work, even if the server is still configured to reject them later on.
    • A new error code, 20920 (WL_ERROR_PAYLOAD_STAGE1_ES_FAILURE), is returned to signify an error occurred during the ES_Sign operation.
  • The NG device ID (a.k.a. Hollywood ID) is now sent to the server in the payload download request, allowing potential future support for console-specific payload channel configuration.
    • Please note that the deprecated payload server integrated in wfc-server does not support the device ID query parameter (d), and it will error with Salt hash mismatch on all requests from clients using this stage 1 version.
    • The separate payload-server must be used instead to support newer clients.
  • The following changes have been made to the stage 1 parameters:
    • Some addresses have been changed to be stored 16-bit, adaptive from previous addresses in the struct, optimizing for size.
    • Added required addresses to the IOS_Open, IOS_Ioctlv, and IOS_Close functions.
    • Added a required address to the stored file descriptor from the ES or ESP library.
    • Added an optional callback pointer that will be, if not 0, called instead of the payload entry point after downloading and verifying the payload.
    • Changed the game ID field to instead be a list of URL parameters (including the game ID) for the payload download request, separated by &, which requires e.g. "RMCPD00" from the previous patch to be changed to "g=RMCPD00".
  • Added a syscall sc instruction after flushing the downloaded payload to ensure address sync with the 60x bus and that the CPU instruction pipeline is flushed.
  • The production server domain has been changed from naswii.wiilink24.com to nas.wiilink.ca, in line with the payload as of version 0.2.3 and other WiiLink services.
    • The payload server will always continue to serve the old domain for compatibility with previous patch versions.