From 874540bb5c1c5737bc9b0bfdc96fe1cf12ff164d Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sun, 4 Apr 2021 09:06:59 -0300 Subject: Allow DRAM size to be increased from 4GB to 6GB (#2174) * Allow DRAM size to be increased from 4GB to 6GB * Add option on the UI --- Ryujinx.HLE/MemoryConfiguration.cs | 62 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Ryujinx.HLE/MemoryConfiguration.cs (limited to 'Ryujinx.HLE/MemoryConfiguration.cs') diff --git a/Ryujinx.HLE/MemoryConfiguration.cs b/Ryujinx.HLE/MemoryConfiguration.cs new file mode 100644 index 00000000..2a59e04f --- /dev/null +++ b/Ryujinx.HLE/MemoryConfiguration.cs @@ -0,0 +1,62 @@ +using Ryujinx.HLE.HOS.Kernel.Common; +using System; + +namespace Ryujinx.HLE +{ + public enum MemoryConfiguration + { + MemoryConfiguration4GB = 0, + MemoryConfiguration4GBAppletDev = 1, + MemoryConfiguration4GBSystemDev = 2, + MemoryConfiguration6GB = 3, + MemoryConfiguration6GBAppletDev = 4, + MemoryConfiguration8GB = 5 + } + + static class MemoryConfigurationExtensions + { + private const ulong Gb = 1024 * 1024 * 1024; + + public static MemoryArrange ToKernelMemoryArrange(this MemoryConfiguration configuration) + { + return configuration switch + { + MemoryConfiguration.MemoryConfiguration4GB => MemoryArrange.MemoryArrange4GB, + MemoryConfiguration.MemoryConfiguration4GBAppletDev => MemoryArrange.MemoryArrange4GBAppletDev, + MemoryConfiguration.MemoryConfiguration4GBSystemDev => MemoryArrange.MemoryArrange4GBSystemDev, + MemoryConfiguration.MemoryConfiguration6GB => MemoryArrange.MemoryArrange6GB, + MemoryConfiguration.MemoryConfiguration6GBAppletDev => MemoryArrange.MemoryArrange6GBAppletDev, + MemoryConfiguration.MemoryConfiguration8GB => MemoryArrange.MemoryArrange8GB, + _ => throw new AggregateException($"Invalid memory configuration \"{configuration}\".") + }; + } + + public static MemorySize ToKernelMemorySize(this MemoryConfiguration configuration) + { + return configuration switch + { + MemoryConfiguration.MemoryConfiguration4GB or + MemoryConfiguration.MemoryConfiguration4GBAppletDev or + MemoryConfiguration.MemoryConfiguration4GBSystemDev => MemorySize.MemorySize4GB, + MemoryConfiguration.MemoryConfiguration6GB or + MemoryConfiguration.MemoryConfiguration6GBAppletDev => MemorySize.MemorySize6GB, + MemoryConfiguration.MemoryConfiguration8GB => MemorySize.MemorySize8GB, + _ => throw new AggregateException($"Invalid memory configuration \"{configuration}\".") + }; + } + + public static ulong ToDramSize(this MemoryConfiguration configuration) + { + return configuration switch + { + MemoryConfiguration.MemoryConfiguration4GB or + MemoryConfiguration.MemoryConfiguration4GBAppletDev or + MemoryConfiguration.MemoryConfiguration4GBSystemDev => 4 * Gb, + MemoryConfiguration.MemoryConfiguration6GB or + MemoryConfiguration.MemoryConfiguration6GBAppletDev => 6 * Gb, + MemoryConfiguration.MemoryConfiguration8GB => 8 * Gb, + _ => throw new AggregateException($"Invalid memory configuration \"{configuration}\".") + }; + } + } +} \ No newline at end of file -- cgit v1.2.3