aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Ryujinx/Program.cs24
-rw-r--r--Ryujinx/Ryujinx.csproj2
-rw-r--r--Ryujinx/Ui/MainWindow.cs2
3 files changed, 22 insertions, 6 deletions
diff --git a/Ryujinx/Program.cs b/Ryujinx/Program.cs
index 5fca0933..1f417f5a 100644
--- a/Ryujinx/Program.cs
+++ b/Ryujinx/Program.cs
@@ -14,6 +14,8 @@ namespace Ryujinx
{
public static string Version { get; private set; }
+ public static string ConfigurationPath { get; set; }
+
static void Main(string[] args)
{
Toolkit.Init(new ToolkitOptions
@@ -40,19 +42,33 @@ namespace Ryujinx
// Initialize Discord integration
DiscordIntegrationModule.Initialize();
- string configurationPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json");
+ string localConfigurationPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json");
+ string globalConfigurationPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Ryujinx", "Config.json");
// Now load the configuration as the other subsystems are now registered
- if (File.Exists(configurationPath))
+ if (File.Exists(localConfigurationPath))
{
- ConfigurationFileFormat configurationFileFormat = ConfigurationFileFormat.Load(configurationPath);
+ ConfigurationPath = localConfigurationPath;
+
+ ConfigurationFileFormat configurationFileFormat = ConfigurationFileFormat.Load(localConfigurationPath);
+
+ ConfigurationState.Instance.Load(configurationFileFormat);
+ }
+ else if (File.Exists(globalConfigurationPath))
+ {
+ ConfigurationPath = globalConfigurationPath;
+
+ ConfigurationFileFormat configurationFileFormat = ConfigurationFileFormat.Load(globalConfigurationPath);
+
ConfigurationState.Instance.Load(configurationFileFormat);
}
else
{
// No configuration, we load the default values and save it on disk
+ ConfigurationPath = globalConfigurationPath;
+
ConfigurationState.Instance.LoadDefault();
- ConfigurationState.Instance.ToFileFormat().SaveConfig(configurationPath);
+ ConfigurationState.Instance.ToFileFormat().SaveConfig(globalConfigurationPath);
}
Profile.Initialize();
diff --git a/Ryujinx/Ryujinx.csproj b/Ryujinx/Ryujinx.csproj
index 9bd2de66..25eb8ff4 100644
--- a/Ryujinx/Ryujinx.csproj
+++ b/Ryujinx/Ryujinx.csproj
@@ -90,7 +90,7 @@
</ItemGroup>
<ItemGroup>
- <None Update="Config.json">
+ <None Update="Config.json" Condition="'$(Configuration)' == 'Debug' OR '$(Configuration)' == 'Profile Debug'">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="RPsupported.dat">
diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs
index e9e79d77..51b40b94 100644
--- a/Ryujinx/Ui/MainWindow.cs
+++ b/Ryujinx/Ui/MainWindow.cs
@@ -1116,7 +1116,7 @@ namespace Ryujinx.Ui
public static void SaveConfig()
{
- ConfigurationState.Instance.ToFileFormat().SaveConfig(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json"));
+ ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.ConfigurationPath);
}
}
}