diff --git a/Ryujinx.HLE/Gpu/NvGpu.cs b/Ryujinx.HLE/Gpu/NvGpu.cs index 0301fcf220..b72895b455 100644 --- a/Ryujinx.HLE/Gpu/NvGpu.cs +++ b/Ryujinx.HLE/Gpu/NvGpu.cs @@ -1,47 +1,47 @@ -using Ryujinx.Graphics.Gal; -using System.Threading; - -namespace Ryujinx.HLE.Gpu -{ - class NvGpu - { - public IGalRenderer Renderer { get; private set; } - - public NvGpuFifo Fifo { get; private set; } - - public NvGpuEngine2d Engine2d { get; private set; } - public NvGpuEngine3d Engine3d { get; private set; } - public NvGpuEngineDma EngineDma { get; private set; } - - private Thread FifoProcessing; - - private bool KeepRunning; - - public NvGpu(IGalRenderer Renderer) - { - this.Renderer = Renderer; - - Fifo = new NvGpuFifo(this); - - Engine2d = new NvGpuEngine2d(this); - Engine3d = new NvGpuEngine3d(this); - EngineDma = new NvGpuEngineDma(this); - - KeepRunning = true; - - FifoProcessing = new Thread(ProcessFifo); - - FifoProcessing.Start(); - } - - private void ProcessFifo() - { - while (KeepRunning) - { - Fifo.DispatchCalls(); - - Thread.Yield(); - } - } - } +using Ryujinx.Graphics.Gal; +using System.Threading; + +namespace Ryujinx.HLE.Gpu +{ + class NvGpu + { + public IGalRenderer Renderer { get; private set; } + + public NvGpuFifo Fifo { get; private set; } + + public NvGpuEngine2d Engine2d { get; private set; } + public NvGpuEngine3d Engine3d { get; private set; } + public NvGpuEngineDma EngineDma { get; private set; } + + private Thread FifoProcessing; + + private bool KeepRunning; + + public NvGpu(IGalRenderer Renderer) + { + this.Renderer = Renderer; + + Fifo = new NvGpuFifo(this); + + Engine2d = new NvGpuEngine2d(this); + Engine3d = new NvGpuEngine3d(this); + EngineDma = new NvGpuEngineDma(this); + + KeepRunning = true; + + FifoProcessing = new Thread(ProcessFifo); + + FifoProcessing.Start(); + } + + private void ProcessFifo() + { + while (KeepRunning) + { + Fifo.DispatchCalls(); + + Thread.Yield(); + } + } + } } \ No newline at end of file diff --git a/Ryujinx.HLE/Gpu/NvGpuFifo.cs b/Ryujinx.HLE/Gpu/NvGpuFifo.cs index f115e8db2f..e6d0cadbc4 100644 --- a/Ryujinx.HLE/Gpu/NvGpuFifo.cs +++ b/Ryujinx.HLE/Gpu/NvGpuFifo.cs @@ -177,4 +177,4 @@ namespace Ryujinx.HLE.Gpu Gpu.EngineDma.CallMethod(Vmm, PBEntry); } } -} \ No newline at end of file +} diff --git a/Ryujinx.HLE/OsHle/Services/Time/ISystemClock.cs b/Ryujinx.HLE/OsHle/Services/Time/ISystemClock.cs index 787f86c220..4075995e3e 100644 --- a/Ryujinx.HLE/OsHle/Services/Time/ISystemClock.cs +++ b/Ryujinx.HLE/OsHle/Services/Time/ISystemClock.cs @@ -18,7 +18,8 @@ namespace Ryujinx.HLE.OsHle.Services.Time { m_Commands = new Dictionary() { - { 0, GetCurrentTime } + { 0, GetCurrentTime }, + { 2, GetSystemClockContext } }; this.ClockType = ClockType; @@ -38,5 +39,20 @@ namespace Ryujinx.HLE.OsHle.Services.Time return 0; } + + public long GetSystemClockContext(ServiceCtx Context) + { + //Raw data dumped from real switch via pegaswitch + byte[] SystemClockContext = { 0x07, 0x00, 0x19, 0x00, 0x0d, 0xd2, 0xb2, 0x80}; + + Array.Resize(ref SystemClockContext, 0x20); + + for (int Index = 0; Index < 0x20; Index++) + { + Context.ResponseData.Write(SystemClockContext[Index]); + } + + return 0; + } } -} \ No newline at end of file +}