aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/OsHle/Services/Time/ISteadyClock.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/OsHle/Services/Time/ISteadyClock.cs')
-rw-r--r--Ryujinx.HLE/OsHle/Services/Time/ISteadyClock.cs35
1 files changed, 34 insertions, 1 deletions
diff --git a/Ryujinx.HLE/OsHle/Services/Time/ISteadyClock.cs b/Ryujinx.HLE/OsHle/Services/Time/ISteadyClock.cs
index 6be097b7..e2cb34e3 100644
--- a/Ryujinx.HLE/OsHle/Services/Time/ISteadyClock.cs
+++ b/Ryujinx.HLE/OsHle/Services/Time/ISteadyClock.cs
@@ -1,4 +1,5 @@
using Ryujinx.HLE.OsHle.Ipc;
+using System;
using System.Collections.Generic;
namespace Ryujinx.HLE.OsHle.Services.Time
@@ -9,12 +10,44 @@ namespace Ryujinx.HLE.OsHle.Services.Time
public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
+ private ulong TestOffset;
+
public ISteadyClock()
{
m_Commands = new Dictionary<int, ServiceProcessRequest>()
{
- //...
+ { 0, GetCurrentTimePoint },
+ { 1, GetTestOffset },
+ { 2, SetTestOffset }
};
+
+ TestOffset = 0;
+ }
+
+ public long GetCurrentTimePoint(ServiceCtx Context)
+ {
+ Context.ResponseData.Write((long)(System.Diagnostics.Process.GetCurrentProcess().StartTime - DateTime.Now).TotalSeconds);
+
+ for (int i = 0; i < 0x10; i++)
+ {
+ Context.ResponseData.Write((byte)0);
+ }
+
+ return 0;
+ }
+
+ public long GetTestOffset(ServiceCtx Context)
+ {
+ Context.ResponseData.Write(TestOffset);
+
+ return 0;
+ }
+
+ public long SetTestOffset(ServiceCtx Context)
+ {
+ TestOffset = Context.RequestData.ReadUInt64();
+
+ return 0;
}
}
} \ No newline at end of file