Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Wii U Time Sync

From GameBrew
Wii U Time Sync
Wiiutimesync.png
General
AuthorNightkingale
TypePlugins
Version3.1.0
LicenseMixed
Last Updated2024/06/08
Links
Download
Website
Source
Support Author

Wii U Time Sync is an Aroma plugin that allows a Wii U console to automatically synchronize its date and time with the Internet, similar to features found on the Nintendo Switch and other modern devices.

Note: If you are currently using another SNTP client or plugin, there is no need to install this. Using this plugin with other SNTP plugins might cause instability.

Installation

Download the Wii U Time Sync plugin file and place it in sd:/wiiu/environments/aroma/plugins.

Requires Aroma environment installed for Wii U Time Sync to work. Please visit the hacking guide and the Aroma webpage if you would like to softmod your Wii U console.

User guide

If the program is placed correctly on an SD card, Wii U Time Sync will be listed in the Aroma environment's Wii U Plugin System Config Menu.

  • Configuration:
    • Syncing Enabled - Enables syncing to the Internet, off by default.
    • Show Notifications - Shows a notification whenever Wii U Time Sync adjusts the clock, normal by default.
      • "quiet" means that no notifications will appear on success.
      • "normal" means that only success or failure notifications will appear, but no others.
      • "verbose" means that all notifications (statistics and such) will appear, useful for debugging.
    • Time Offset (UTC) - The amount of time to add/subtract from the coordinated universal time, +00:00 by default.
    • Detect Time Zone (press A) - Uses the IP Geolocation API to guess the time zone, setting the offset accordingly.
    • Auto Update Time Zone - Automatically utilizes the IP Geolocation API to set your offset accordingly, off by default.
    • Notification Duration - The amount of seconds which notifications will appear on screen for, 5s by default.
    • Timeout - The amount of seconds before an established NTP connection will timeout, 5 s by default.
    • Tolerance - The amount of milliseconds in which Wii U Time Sync will tolerate differences, 500 ms by default.
    • Background Threads - Controls how many servers are queried at once, 4 by default.
    • If you stick to the default server, you do not need to set this to more than 4.
    • NTP Servers - The list of NTP servers in which the plugin connects to, only pool.ntp.org by default.
  • Preview Time - Lets you preview what the system's clock is currently set to, as well as correction and latency statistics.

The NTP server list cannot be edited on the console. However, you can edit the Wii U Time Sync configuration file on a computer to adjust the default server, or add more.

  • The configuration file: wiiu/environments/aroma/plugins/config/Wii U Time Sync.json
  • An example edit: "server": "pool.ntp.org time.windows.com",

For values you would like to set back to default, you can press the X button while highlighting the option you would like to reset.

Changes take effect upon restarting the console, and the HOME Menu and other applications may not reflect adjustments immediately.

Changelog

v3.1.0 2024/06/08

  • Wii U Time Sync can now utilize some more services in order to fetch the time offset most accurate to you. The Detect Time Zone setting now allows you to pick from three different APIs to sync your clock with. (Thank you, @dkosmari!)
  • You can now configure how long to wait for a connection before timing out using the Timeout setting.
    • The default setting is 5 s, a change from the previously hardcoded 4 seconds. You can set this from anything between 1 second and 10 seconds.
  • Some refactoring was done behind-the-scenes to depend on libcurlwrapper, which reduces the binary size to under 50% of what it was in the previous release. (Thank you, @dkosmari!)

v3.0.0 2024/06/02

  • Wii U Time Sync was refactored to support the new Wii U Plugin System API, thanks to the wonderful efforts of @dkosmari! With it came a whole lot of new features and improvements.
    • A new Auto Update Time Zone feature was added, which will automatically fetch the time from the Internet when the plugin loads. This is similar to manually running the Detect Time Zone option.
      • This is an entirely optional feature, set to false by default. You will need to enable it before it works.
    • The number of background threads that run can now be configured with the Background Threads setting. This controls how many NTP servers are queried at the same time.
      • If you stick to the default pool.ntp.org server, you probably don't need to change this.
    • There is now more control over notification verbosity. Instead of receiving all notifications or none at all, it's now possible to have a non-verbose level of notifications.
      • quiet means that no notifications will appear at all. (This was effectively false previously.)
      • normal means that only success or failure notifications will appear, but no others.
      • verbose means that all notifications (statistics and such) will appear, useful for debugging. (This was true previously.)
    • Opening the Wii U Plugin System menu now reloads the settings from the JSON file, which is useful if you want to run a custom NTP server on-the-fly.
  • To account for all the updates, the user interface has some new quality-of-life changes. (Thank you, @dkosmari!)
    • Hours Offset and Minutes Offset have now been combined into one setting, Time Offset (UTC).
      • If you are updating from an older version of Wii U Time Sync, your configuration will be updated accordingly.
    • Pressing the X button on a setting in Configuration now resets it back to the default value.
    • You can now hold down left or right on the D-Pad to set a specific option (particularly useful if you want a specific offset or tolerance, for example).
    • The clock shown in Preview Time now updates automatically when focused on.
    • If text is now too long to be shown, instead of overlapping other text, you can now use left and right on the D-Pad to scroll.
    • All boolean options, such as Syncing Enabled and Show Notifications, can now be toggled with either left or right on the D-Pad.
  • A grammatical error which appeared if there were any issues connecting to a server has been fixed.

v2.1.0 2023/10/23

  • Even more refactoring of Wii U Time Sync was done behind the scenes, based again on the excellent work of @dkosmari! (Thank you, @dkosmari!)
    • The Preview screen was heavily improved, showing not only the system's current time, but also connection details of each configured NTP server, including the correction and latency statistics.
      • This screen does not refresh automatically. To refresh the screen, press A on the Clock button.
    • The timezone can now be fetched using the new Detect Timezone option. By pressing this button, your console will connect to the Internet and use the IP Geolocation API to adjust your Hours Offset and Minutes Offset to match the detected timezone.
      • This is entirely optional, and you can still set the offsets manually if you prefer.
    • Many smaller, technical things behind the scenes were changed, including (but not limited to) NTP protocol handling and addressing the NTPv4 wraparound of 2036.
  • Some elements in the Configuration menu have been renamed, such as Time Offset (hours) and Time Offset (minutes) to Hours Offset and Minutes Offset.

v2.0.0 2023/10/23

  • Behind the scenes, Wii U Time Sync has been entirely refactored to be based off of the fork written by @dkosmari, adding many new improvements to the plugin. (Thank you, @dkosmari!)
    • Multiple NTP servers can be added to Wii U Time Sync, which will be averaged by the plugin.
      • This cannot be edited on the console. However, you can edit the Wii U Time Sync configuration file on a computer to adjust the default server, or add more.
        • The configuration file: wiiu/environments/aroma/plugins/config/Wii U Time Sync.json
        • An example edit: "server": "pool.ntp.org time.windows.com",
    • Roundtrip calculations are now included in Wii U Time Sync. This means the time it takes for your Wii U to connect to the server and receive a response is accounted for, making the time slightly more accurate.
    • The Daylight Savings toggle has been removed in favor of manually changing the time offset.
    • The tolerance added in v1.0.1 can now be adjusted using the Tolerance setting.
    • The duration for which notifications last on screen can be adjusted using the Message Duration setting.
    • More error messages and notifications have been added, with successes being printed in green, and errors being printed in red.
  • The default time server has been changed from time.windows.com to pool.ntp.org. (Thank you, @V10lator and @dkosmari!)
  • The Receive Notifications toggle has been renamed to Show Notifications, and is now false by default.

v1.1.0 2023/06/19

  • A new feature was added that allows Wii U Time Sync to send a notification whenever it adjusts the time. This feature is enabled by default, but can be disabled by toggling Configuration -> Receive Notifications to false.
  • An issue was addressed where Nintendo DS titles through Virtual Console were rendered unplayable when using Wii U Time Sync. This bug was introduced in v1.0.1 because of how the binary was built. (Thank you, @Maschell and @GaryOderNichts!)

v1.0.1 2023/06/18

  • Addressed an oversight where the month shown in the Preview Time feature would display as a zero-based index rather than the actual month.
  • The time will no longer be adjusted when exiting the Wii U Plugin System Config Menu if the console's time is within 250 milliseconds of the network time. This will limit any potential stalling caused when exiting the menu. (Thank you, @GaryOderNichts!)

v1.0.0 2023/06/17

  • This is the initial release of Wii U Time Sync. To learn more about this release, see the README.

Credits

  • dkosmari, for his excellent refactoring of Wii U Time Sync, being used as our codebase ever since the release of v2.0.0.
  • GaryOderNichts, for writing the network connection code and figuring out how to set the console's date and time through homebrew (so basically all the functionality).
  • Maschell, for his work not only with figuring out setting the date and time, but also his work on the Aroma environment.
  • LumaTeam, for the time syncing code in Luma3DS, which we based our code off of.
  • Lettier, for his work on NTP Client, which in turn led to the code in both Luma3DS and Wii U Time Sync.

External links

Advertising: