From e07b0265c6516b15ceccd06ca5bd56e79449f2c9 Mon Sep 17 00:00:00 2001
From: Starlet <gpyron@mail.com>
Date: Sun, 29 Jul 2018 00:40:02 -0400
Subject: [PATCH] Add 5.0.0 IPCs (#300)

* Implement 5.0.0 IPC

* Align ControlWithContext
---
 Ryujinx.HLE/OsHle/Ipc/IpcHandler.cs     |  6 ++++--
 Ryujinx.HLE/OsHle/Ipc/IpcMessageType.cs | 10 ++++++----
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/Ryujinx.HLE/OsHle/Ipc/IpcHandler.cs b/Ryujinx.HLE/OsHle/Ipc/IpcHandler.cs
index 9b46cf4bf1..cdb844cfe2 100644
--- a/Ryujinx.HLE/OsHle/Ipc/IpcHandler.cs
+++ b/Ryujinx.HLE/OsHle/Ipc/IpcHandler.cs
@@ -21,7 +21,8 @@ namespace Ryujinx.HLE.OsHle.Ipc
             {
                 BinaryReader ReqReader = new BinaryReader(Raw);
 
-                if (Request.Type == IpcMessageType.Request)
+                if (Request.Type == IpcMessageType.Request ||
+                    Request.Type == IpcMessageType.RequestWithContext)
                 {
                     Response.Type = IpcMessageType.Response;
 
@@ -44,7 +45,8 @@ namespace Ryujinx.HLE.OsHle.Ipc
                         Response.RawData = ResMS.ToArray();
                     }
                 }
-                else if (Request.Type == IpcMessageType.Control)
+                else if (Request.Type == IpcMessageType.Control ||
+                         Request.Type == IpcMessageType.ControlWithContext)
                 {
                     long Magic = ReqReader.ReadInt64();
                     long CmdId = ReqReader.ReadInt64();
diff --git a/Ryujinx.HLE/OsHle/Ipc/IpcMessageType.cs b/Ryujinx.HLE/OsHle/Ipc/IpcMessageType.cs
index f596fea461..3db6844e0a 100644
--- a/Ryujinx.HLE/OsHle/Ipc/IpcMessageType.cs
+++ b/Ryujinx.HLE/OsHle/Ipc/IpcMessageType.cs
@@ -2,9 +2,11 @@ namespace Ryujinx.HLE.OsHle.Ipc
 {
     enum IpcMessageType
     {
-        Response     = 0,
-        CloseSession = 2,
-        Request      = 4,
-        Control      = 5
+        Response           = 0,
+        CloseSession       = 2,
+        Request            = 4,
+        Control            = 5,
+        RequestWithContext = 6,
+        ControlWithContext = 7
     }
 }
\ No newline at end of file