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 Version { get; private set; }
|
||||||
|
|
||||||
|
public static string ConfigurationPath { get; set; }
|
||||||
|
|
||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
{
|
{
|
||||||
Toolkit.Init(new ToolkitOptions
|
Toolkit.Init(new ToolkitOptions
|
||||||
|
@ -40,19 +42,33 @@ namespace Ryujinx
|
||||||
// Initialize Discord integration
|
// Initialize Discord integration
|
||||||
DiscordIntegrationModule.Initialize();
|
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
|
// 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);
|
ConfigurationState.Instance.Load(configurationFileFormat);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// No configuration, we load the default values and save it on disk
|
// No configuration, we load the default values and save it on disk
|
||||||
|
ConfigurationPath = globalConfigurationPath;
|
||||||
|
|
||||||
ConfigurationState.Instance.LoadDefault();
|
ConfigurationState.Instance.LoadDefault();
|
||||||
ConfigurationState.Instance.ToFileFormat().SaveConfig(configurationPath);
|
ConfigurationState.Instance.ToFileFormat().SaveConfig(globalConfigurationPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
Profile.Initialize();
|
Profile.Initialize();
|
||||||
|
|
|
@ -90,7 +90,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Update="Config.json">
|
<None Update="Config.json" Condition="'$(Configuration)' == 'Debug' OR '$(Configuration)' == 'Profile Debug'">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Update="RPsupported.dat">
|
<None Update="RPsupported.dat">
|
||||||
|
|
|
@ -1116,7 +1116,7 @@ namespace Ryujinx.Ui
|
||||||
|
|
||||||
public static void SaveConfig()
|
public static void SaveConfig()
|
||||||
{
|
{
|
||||||
ConfigurationState.Instance.ToFileFormat().SaveConfig(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json"));
|
ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.ConfigurationPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue