Adds the basic time zone data for the system archive.
time_zone_binary: Implement full system archive
time_zone_binary: Remove unneeded template
tz_binary: Make GenerateFiles static
Use lat9nq/tzdb_to_nx release data to generate header files.
nx_tzdb: Use an interface library
nx_tzdb: Gate download if achive not exists
nx_tzdb: Fix header generator brace closing
nx_tzdb: Add base directory files
nx_tzdb: Add SPDX info
Moves it from Settings to Common::TimeZone, since this algorithm doesn't
depend on the setting. It also lets us use it in other libraries.
common: Various fixes
time_zone: Don't double up the std::abs
Too many absolute values were causing mirrored time zones to resolve
as the same.
Prevents needing to deduce the non-Switch setting in core. Instead, we
deduce the meaning of this setting where the heresy is committed, in
common.
settings: Remove strftime usage
GetTimeZoneString: Use standard features
Also forces GMT on MinGW due to broken strftime.
This causes the emulated system's universal time to be on the user's clock, and the user time to
be off if they set a time zone.
time_manager: Remove GetExternalRtcTime
Uses C++20 tzdb to determine the system timezone. The switch uses the
597 posix time zones, so this needs tests if the system time zone isn't
posix-compliant.
Track the private anonymous placeholder mappings created by Unmap() and
wherever possible, replace existing placeholders with larger ones
instead of creating many small ones.
This helps with the buildup of mappings in /proc/YUZU_PID/maps after a
longer gaming session, improving stability without having to increase
vm.max_map_count to a ridiculous value. The amount of placeholder
mappings will no longer outgrow the amount of actual memfd mappings in
cases of high memory fragmentation.
FFmpeg_DLL_DIR does not exist anywhere else in the repository.
Evidently, the variable name was antiquated at some point, but it
continued to work here as a zombie.
Update the name and avoid copy issues.