From 10a2b9dca3610a759926e6be564c8813be8d8618 Mon Sep 17 00:00:00 2001
From: gdkchan <gab.dark.100@gmail.com>
Date: Sun, 26 Apr 2020 19:22:18 -0300
Subject: [PATCH] Fix shadow RAM affecting MME methods (#1168)

---
 Ryujinx.Graphics.Gpu/State/GpuState.cs | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/Ryujinx.Graphics.Gpu/State/GpuState.cs b/Ryujinx.Graphics.Gpu/State/GpuState.cs
index 677fed6603..70c4ed614a 100644
--- a/Ryujinx.Graphics.Gpu/State/GpuState.cs
+++ b/Ryujinx.Graphics.Gpu/State/GpuState.cs
@@ -77,15 +77,19 @@ namespace Ryujinx.Graphics.Gpu.State
         {
             int value = meth.Argument;
 
-            // TODO: Figure out what TrackWithFilter does, compared to Track.
-            if (shadowCtrl == ShadowRamControl.Track ||
-                shadowCtrl == ShadowRamControl.TrackWithFilter)
+            // Methods < 0x80 shouldn't be affected by shadow RAM at all.
+            if (meth.Method >= 0x80)
             {
-                _shadow[meth.Method] = value;
-            }
-            else if (shadowCtrl == ShadowRamControl.Replay)
-            {
-                value = _shadow[meth.Method];
+                // TODO: Figure out what TrackWithFilter does, compared to Track.
+                if (shadowCtrl == ShadowRamControl.Track ||
+                    shadowCtrl == ShadowRamControl.TrackWithFilter)
+                {
+                    _shadow[meth.Method] = value;
+                }
+                else if (shadowCtrl == ShadowRamControl.Replay)
+                {
+                    value = _shadow[meth.Method];
+                }
             }
 
             Register register = _registers[meth.Method];