App Details
Wii U Time Sync is a Wii U homebrew plugin for the Aroma environment. It allows the console to automatically synchronize it's date and time through the Internet, similar to the feature found on the Nintendo Switch and other modern devices.
Installation:
A Wii U plugin file will be bundled with each release. It should be placed on your SD card, particularly in wiiu/environments/aroma/plugins.
It's important to have the Aroma environment installed for Wii U Time Sync to work. Please visit our hacking guide and the Aroma webpage if you would like to softmod your Wii U console.
Usage:
If Wii U Time Sync doesn't show up in the Wii U Plugin System Config Menu, confirm you placed the WPS file on your SD card correctly and restart your console.
Configuration -> Syncing Enabled: Enables syncing to the Internet, off by default.
Configuration -> 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.
Configuration -> Time Offset (UTC): The amount of time to add/subtract from the coordinated universal time, +00:00 by default.
Configuration -> Detect Time Zone (press A): Uses one of three different APIs to guess the time zone, setting the offset accordingly.
http://ip-api.com
https://ipwho.is
https://ipapi.co
Configuration -> Auto Update Time Zone: Automatically utilizes the IP Geolocation API to set your offset accordingly, off by default.
Configuration -> Notification Duration: The amount of seconds which notifications will appear on screen for, 5 s by default.
Configuration -> Timeout: The amount of seconds before an established NTP connection will timeout, 5 s by default.
Configuration -> Tolerance: The amount of milliseconds in which Wii U Time Sync will tolerate differences, 500 ms by default.
Configuration -> 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.
Configuration -> NTP Servers: The list of NTP servers in which the plugin connects to, only pool.ntp.org by default.
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",
Preview Time: Lets you preview what the system's clock is currently set to, as well as correction and latency statistics.
As long as syncing is enabled by the user, the clock will sync whenever Wii U Time Sync starts, or when the plugin settings are exited.
The changes will not be reflected in the Home Menu and most other applications right away, so the console will need to be rebooted for changes to be completed.
Credits:
I hope that I am able to express my thanks as much as possible to those who made this repository possible.
dkosmari, who is now co-developing Wii U Time Sync with me and has greatly contributed to the plugin for a much longer period, including his refactoring in the v2.0.0 release.
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.
Changelog
v3.1.0
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!)
* If you find yourself having issues with one service, you can always try another.
* http://ip-api.com/ (the one that was used prior to this release)
* https://ipwho.is/
* https://ipapi.co/
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
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
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
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
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
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!)