forked from Mirror/Ryujinx
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:
parent
dbe3f938c7
commit
a73fd9e9bd
3 changed files with 22 additions and 6 deletions
|
@ -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();
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue