Changes to configuration (#811)

* config loading changes

- load config from either ryufs or ryujinx.exe parent folder with parent folder taking priority
- config file in repo is only copied to parent directory if built in debug mode

* AcK's requested changes

* add "Profile Debug" as a condition to copy the default config to output
This commit is contained in:
Xpl0itR 2020-02-14 19:19:13 +00:00 committed by GitHub
parent dbe3f938c7
commit a73fd9e9bd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 6 deletions

View file

@ -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();