From f13be6429b89d7707aaea71bc3fb6ddbcc50566e Mon Sep 17 00:00:00 2001
From: Lordmau5 <mail@lordmau5.com>
Date: Mon, 11 Jun 2018 01:53:28 +0200
Subject: [PATCH] Implement GetDefaultDisplayResolution/+ChangeEvent on
 ICommonStateGetter

---
 .../OsHle/Services/Am/ICommonStateGetter.cs   | 29 ++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/Ryujinx.Core/OsHle/Services/Am/ICommonStateGetter.cs b/Ryujinx.Core/OsHle/Services/Am/ICommonStateGetter.cs
index ba87cf32d8..e0b8f6edd2 100644
--- a/Ryujinx.Core/OsHle/Services/Am/ICommonStateGetter.cs
+++ b/Ryujinx.Core/OsHle/Services/Am/ICommonStateGetter.cs
@@ -13,6 +13,8 @@ namespace Ryujinx.Core.OsHle.Services.Am
 
         public override IReadOnlyDictionary<int, ServiceProcessRequest> Commands => m_Commands;
 
+        private KEvent DisplayResolutionChangeEvent;
+
         public ICommonStateGetter()
         {
             m_Commands = new Dictionary<int, ServiceProcessRequest>()
@@ -22,8 +24,12 @@ namespace Ryujinx.Core.OsHle.Services.Am
                 { 5, GetOperationMode     },
                 { 6, GetPerformanceMode   },
                 { 8, GetBootMode          },
-                { 9, GetCurrentFocusState }
+                { 9, GetCurrentFocusState },
+                { 60, GetDefaultDisplayResolution },
+                { 61, GetDefaultDisplayResolutionChangeEvent }
             };
+
+            DisplayResolutionChangeEvent = new KEvent();
         }
 
         public long GetEventHandle(ServiceCtx Context)
@@ -78,5 +84,26 @@ namespace Ryujinx.Core.OsHle.Services.Am
 
             return 0;
         }
+
+        public long GetDefaultDisplayResolution(ServiceCtx Context)
+        {
+            Context.ResponseData.Write(1280);
+            Context.ResponseData.Write(720);
+
+            // Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
+
+            return 0;
+        }
+
+        public long GetDefaultDisplayResolutionChangeEvent(ServiceCtx Context)
+        {
+            int Handle = Context.Process.HandleTable.OpenHandle(DisplayResolutionChangeEvent);
+
+            Context.Response.HandleDesc = IpcHandleDesc.MakeCopy(Handle);
+
+            Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed.");
+
+            return 0;
+        }
     }
 }
\ No newline at end of file