Implement time:* 2.0.0 & 3.0.0 commands (#735)
* Finish ISteadyClock implementation * Implement IsStandardNetworkSystemClockAccuracySufficient Also use signed values for offsets and TimeSpanType * Address comments * Fix one missing nit and improve one comment
This commit is contained in:
parent
d8424a63c6
commit
1f3a34dd7a
8 changed files with 189 additions and 17 deletions
|
@ -197,10 +197,17 @@ namespace Ryujinx.HLE.HOS
|
|||
|
||||
ContentManager = new ContentManager(device);
|
||||
|
||||
// NOTE: Now we set the default internal offset of the steady clock like Nintendo does... even if it's strange this is accurate.
|
||||
// TODO: use bpc:r and set:sys (and set external clock source id from settings)
|
||||
DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
SteadyClockCore.Instance.SetInternalOffset(new TimeSpanType(((ulong)(DateTime.Now.ToUniversalTime() - UnixEpoch).TotalSeconds) * 1000000000));
|
||||
// TODO: use set:sys (and set external clock source id from settings)
|
||||
// TODO: use "time!standard_steady_clock_rtc_update_interval_minutes" and implement a worker thread to be accurate.
|
||||
SteadyClockCore.Instance.ConfigureSetupValue();
|
||||
|
||||
if (Services.Set.NxSettings.Settings.TryGetValue("time!standard_network_clock_sufficient_accuracy_minutes", out object standardNetworkClockSufficientAccuracyMinutes))
|
||||
{
|
||||
TimeSpanType standardNetworkClockSufficientAccuracy = new TimeSpanType((int)standardNetworkClockSufficientAccuracyMinutes * 60000000000);
|
||||
|
||||
StandardNetworkSystemClockCore.Instance.SetStandardNetworkClockSufficientAccuracy(standardNetworkClockSufficientAccuracy);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void LoadCart(string exeFsDir, string romFsFile = null)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue