From d4a3e8267bddc5bf8ad2eb1e76b2ef15d4cbda2c Mon Sep 17 00:00:00 2001
From: gdkchan <gab.dark.100@gmail.com>
Date: Tue, 20 Mar 2018 18:42:13 -0300
Subject: [PATCH] Allow enabling/disabling memory checks on config file

---
 Ryujinx.Core/Config.cs |  2 ++
 Ryujinx/Ryujinx.conf   | 19 +++++++++++--------
 Ryujinx/Ui/Program.cs  |  4 ++--
 3 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/Ryujinx.Core/Config.cs b/Ryujinx.Core/Config.cs
index c9a76de343..1e1cb3c733 100644
--- a/Ryujinx.Core/Config.cs
+++ b/Ryujinx.Core/Config.cs
@@ -9,6 +9,7 @@ namespace Ryujinx.Core
 {
     public static class Config
     {
+        public static bool EnableMemoryChecks   { get; private set; }
         public static bool LoggingEnableInfo    { get; private set; }
         public static bool LoggingEnableTrace   { get; private set; }
         public static bool LoggingEnableDebug   { get; private set; }
@@ -26,6 +27,7 @@ namespace Ryujinx.Core
             var iniPath = Path.Combine(iniFolder, "Ryujinx.conf");
             IniParser Parser = new IniParser(iniPath);
 
+            EnableMemoryChecks   = Convert.ToBoolean(Parser.Value("Enable_Memory_Checks"));
             LoggingEnableInfo    = Convert.ToBoolean(Parser.Value("Logging_Enable_Info"));
             LoggingEnableTrace   = Convert.ToBoolean(Parser.Value("Logging_Enable_Trace"));
             LoggingEnableDebug   = Convert.ToBoolean(Parser.Value("Logging_Enable_Debug"));
diff --git a/Ryujinx/Ryujinx.conf b/Ryujinx/Ryujinx.conf
index e8effac1d0..00f0da5e4f 100644
--- a/Ryujinx/Ryujinx.conf
+++ b/Ryujinx/Ryujinx.conf
@@ -1,25 +1,28 @@
-#Enabled print informations logs
+#Enable cpu memory checks (slow)
+Enable_Memory_Checks = false
+
+#Enable print informations logs
 Logging_Enable_Info = true
 
-#Enabled print trace logs
+#Enable print trace logs
 Logging_Enable_Trace = false
 
-#Enabled print debug logs
+#Enable print debug logs
 Logging_Enable_Debug = false
 
-#Enabled print warning logs
+#Enable print warning logs
 Logging_Enable_Warn = true
 
-#Enabled print error logs
+#Enable print error logs
 Logging_Enable_Error = true
 
-#Enabled print fatal logs
+#Enable print fatal logs
 Logging_Enable_Fatal = true
 
-#Enabled print Ipc logs
+#Enable print Ipc logs
 Logging_Enable_Ipc = false
 
-#Saved logs into Ryujinx.log
+#Save logs into Ryujinx.log
 Logging_Enable_LogFile = false
 
 #https://github.com/opentk/opentk/blob/develop/src/OpenTK/Input/Key.cs
diff --git a/Ryujinx/Ui/Program.cs b/Ryujinx/Ui/Program.cs
index 062e8bade9..bfd07433cc 100644
--- a/Ryujinx/Ui/Program.cs
+++ b/Ryujinx/Ui/Program.cs
@@ -12,10 +12,10 @@ namespace Ryujinx
     {
         static void Main(string[] args)
         {
-            AOptimizations.DisableMemoryChecks = true;
-
             Config.Read();
 
+            AOptimizations.DisableMemoryChecks = !Config.EnableMemoryChecks;
+
             Console.Title = "Ryujinx Console";
 
             IGalRenderer Renderer = new OpenGLRenderer();