.
This commit is contained in:
parent
edbd4c73e2
commit
07c5ab9894
@ -83,7 +83,7 @@ namespace Ryujinx.BuildValidationTasks
|
|||||||
if (isGitRunner && encounteredIssue)
|
if (isGitRunner && encounteredIssue)
|
||||||
throw new JsonException("1 or more locales are invalid!");
|
throw new JsonException("1 or more locales are invalid!");
|
||||||
|
|
||||||
JsonSerializerOptions jsonOptions = new JsonSerializerOptions()
|
JsonSerializerOptions jsonOptions = new()
|
||||||
{
|
{
|
||||||
WriteIndented = true,
|
WriteIndented = true,
|
||||||
NewLine = "\n",
|
NewLine = "\n",
|
||||||
|
@ -24,7 +24,7 @@ namespace Ryujinx.Headless
|
|||||||
|
|
||||||
if (NeedsOverride(nameof(EnableKeyboard)))
|
if (NeedsOverride(nameof(EnableKeyboard)))
|
||||||
EnableKeyboard = configurationState.Hid.EnableKeyboard;
|
EnableKeyboard = configurationState.Hid.EnableKeyboard;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(EnableMouse)))
|
if (NeedsOverride(nameof(EnableMouse)))
|
||||||
EnableMouse = configurationState.Hid.EnableMouse;
|
EnableMouse = configurationState.Hid.EnableMouse;
|
||||||
|
|
||||||
@ -39,40 +39,40 @@ namespace Ryujinx.Headless
|
|||||||
|
|
||||||
if (NeedsOverride(nameof(DisableFsIntegrityChecks)))
|
if (NeedsOverride(nameof(DisableFsIntegrityChecks)))
|
||||||
DisableFsIntegrityChecks = configurationState.System.EnableFsIntegrityChecks;
|
DisableFsIntegrityChecks = configurationState.System.EnableFsIntegrityChecks;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(FsGlobalAccessLogMode)))
|
if (NeedsOverride(nameof(FsGlobalAccessLogMode)))
|
||||||
FsGlobalAccessLogMode = configurationState.System.FsGlobalAccessLogMode;
|
FsGlobalAccessLogMode = configurationState.System.FsGlobalAccessLogMode;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(VSyncMode)))
|
if (NeedsOverride(nameof(VSyncMode)))
|
||||||
VSyncMode = configurationState.Graphics.VSyncMode;
|
VSyncMode = configurationState.Graphics.VSyncMode;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(CustomVSyncInterval)))
|
if (NeedsOverride(nameof(CustomVSyncInterval)))
|
||||||
CustomVSyncInterval = configurationState.Graphics.CustomVSyncInterval;
|
CustomVSyncInterval = configurationState.Graphics.CustomVSyncInterval;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(DisableShaderCache)))
|
if (NeedsOverride(nameof(DisableShaderCache)))
|
||||||
DisableShaderCache = !configurationState.Graphics.EnableShaderCache;
|
DisableShaderCache = !configurationState.Graphics.EnableShaderCache;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(EnableTextureRecompression)))
|
if (NeedsOverride(nameof(EnableTextureRecompression)))
|
||||||
EnableTextureRecompression = configurationState.Graphics.EnableTextureRecompression;
|
EnableTextureRecompression = configurationState.Graphics.EnableTextureRecompression;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(DisableDockedMode)))
|
if (NeedsOverride(nameof(DisableDockedMode)))
|
||||||
DisableDockedMode = !configurationState.System.EnableDockedMode;
|
DisableDockedMode = !configurationState.System.EnableDockedMode;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(SystemLanguage)))
|
if (NeedsOverride(nameof(SystemLanguage)))
|
||||||
SystemLanguage = (SystemLanguage)(int)configurationState.System.Language.Value;
|
SystemLanguage = (SystemLanguage)(int)configurationState.System.Language.Value;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(SystemRegion)))
|
if (NeedsOverride(nameof(SystemRegion)))
|
||||||
SystemRegion = (RegionCode)(int)configurationState.System.Region.Value;
|
SystemRegion = (RegionCode)(int)configurationState.System.Region.Value;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(SystemTimeZone)))
|
if (NeedsOverride(nameof(SystemTimeZone)))
|
||||||
SystemTimeZone = configurationState.System.TimeZone;
|
SystemTimeZone = configurationState.System.TimeZone;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(SystemTimeOffset)))
|
if (NeedsOverride(nameof(SystemTimeOffset)))
|
||||||
SystemTimeOffset = configurationState.System.SystemTimeOffset;
|
SystemTimeOffset = configurationState.System.SystemTimeOffset;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(MemoryManagerMode)))
|
if (NeedsOverride(nameof(MemoryManagerMode)))
|
||||||
MemoryManagerMode = configurationState.System.MemoryManagerMode;
|
MemoryManagerMode = configurationState.System.MemoryManagerMode;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(AudioVolume)))
|
if (NeedsOverride(nameof(AudioVolume)))
|
||||||
AudioVolume = configurationState.System.AudioVolume;
|
AudioVolume = configurationState.System.AudioVolume;
|
||||||
|
|
||||||
@ -81,28 +81,28 @@ namespace Ryujinx.Headless
|
|||||||
|
|
||||||
if (NeedsOverride(nameof(MultiplayerLanInterfaceId)))
|
if (NeedsOverride(nameof(MultiplayerLanInterfaceId)))
|
||||||
MultiplayerLanInterfaceId = configurationState.Multiplayer.LanInterfaceId;
|
MultiplayerLanInterfaceId = configurationState.Multiplayer.LanInterfaceId;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(DisableFileLog)))
|
if (NeedsOverride(nameof(DisableFileLog)))
|
||||||
DisableFileLog = !configurationState.Logger.EnableFileLog;
|
DisableFileLog = !configurationState.Logger.EnableFileLog;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(LoggingEnableDebug)))
|
if (NeedsOverride(nameof(LoggingEnableDebug)))
|
||||||
LoggingEnableDebug = configurationState.Logger.EnableDebug;
|
LoggingEnableDebug = configurationState.Logger.EnableDebug;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(LoggingDisableStub)))
|
if (NeedsOverride(nameof(LoggingDisableStub)))
|
||||||
LoggingDisableStub = !configurationState.Logger.EnableStub;
|
LoggingDisableStub = !configurationState.Logger.EnableStub;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(LoggingDisableInfo)))
|
if (NeedsOverride(nameof(LoggingDisableInfo)))
|
||||||
LoggingDisableInfo = !configurationState.Logger.EnableInfo;
|
LoggingDisableInfo = !configurationState.Logger.EnableInfo;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(LoggingDisableWarning)))
|
if (NeedsOverride(nameof(LoggingDisableWarning)))
|
||||||
LoggingDisableWarning = !configurationState.Logger.EnableWarn;
|
LoggingDisableWarning = !configurationState.Logger.EnableWarn;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(LoggingDisableError)))
|
if (NeedsOverride(nameof(LoggingDisableError)))
|
||||||
LoggingDisableError = !configurationState.Logger.EnableError;
|
LoggingDisableError = !configurationState.Logger.EnableError;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(LoggingEnableTrace)))
|
if (NeedsOverride(nameof(LoggingEnableTrace)))
|
||||||
LoggingEnableTrace = configurationState.Logger.EnableTrace;
|
LoggingEnableTrace = configurationState.Logger.EnableTrace;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(LoggingDisableGuest)))
|
if (NeedsOverride(nameof(LoggingDisableGuest)))
|
||||||
LoggingDisableGuest = !configurationState.Logger.EnableGuest;
|
LoggingDisableGuest = !configurationState.Logger.EnableGuest;
|
||||||
|
|
||||||
@ -114,45 +114,45 @@ namespace Ryujinx.Headless
|
|||||||
|
|
||||||
if (NeedsOverride(nameof(ResScale)))
|
if (NeedsOverride(nameof(ResScale)))
|
||||||
ResScale = configurationState.Graphics.ResScale;
|
ResScale = configurationState.Graphics.ResScale;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(MaxAnisotropy)))
|
if (NeedsOverride(nameof(MaxAnisotropy)))
|
||||||
MaxAnisotropy = configurationState.Graphics.MaxAnisotropy;
|
MaxAnisotropy = configurationState.Graphics.MaxAnisotropy;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(AspectRatio)))
|
if (NeedsOverride(nameof(AspectRatio)))
|
||||||
AspectRatio = configurationState.Graphics.AspectRatio;
|
AspectRatio = configurationState.Graphics.AspectRatio;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(BackendThreading)))
|
if (NeedsOverride(nameof(BackendThreading)))
|
||||||
BackendThreading = configurationState.Graphics.BackendThreading;
|
BackendThreading = configurationState.Graphics.BackendThreading;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(DisableMacroHLE)))
|
if (NeedsOverride(nameof(DisableMacroHLE)))
|
||||||
DisableMacroHLE = !configurationState.Graphics.EnableMacroHLE;
|
DisableMacroHLE = !configurationState.Graphics.EnableMacroHLE;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(GraphicsShadersDumpPath)))
|
if (NeedsOverride(nameof(GraphicsShadersDumpPath)))
|
||||||
GraphicsShadersDumpPath = configurationState.Graphics.ShadersDumpPath;
|
GraphicsShadersDumpPath = configurationState.Graphics.ShadersDumpPath;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(GraphicsBackend)))
|
if (NeedsOverride(nameof(GraphicsBackend)))
|
||||||
GraphicsBackend = configurationState.Graphics.GraphicsBackend;
|
GraphicsBackend = configurationState.Graphics.GraphicsBackend;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(AntiAliasing)))
|
if (NeedsOverride(nameof(AntiAliasing)))
|
||||||
AntiAliasing = configurationState.Graphics.AntiAliasing;
|
AntiAliasing = configurationState.Graphics.AntiAliasing;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(ScalingFilter)))
|
if (NeedsOverride(nameof(ScalingFilter)))
|
||||||
ScalingFilter = configurationState.Graphics.ScalingFilter;
|
ScalingFilter = configurationState.Graphics.ScalingFilter;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(ScalingFilterLevel)))
|
if (NeedsOverride(nameof(ScalingFilterLevel)))
|
||||||
ScalingFilterLevel = configurationState.Graphics.ScalingFilterLevel;
|
ScalingFilterLevel = configurationState.Graphics.ScalingFilterLevel;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(DramSize)))
|
if (NeedsOverride(nameof(DramSize)))
|
||||||
DramSize = configurationState.System.DramSize;
|
DramSize = configurationState.System.DramSize;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(IgnoreMissingServices)))
|
if (NeedsOverride(nameof(IgnoreMissingServices)))
|
||||||
IgnoreMissingServices = configurationState.System.IgnoreMissingServices;
|
IgnoreMissingServices = configurationState.System.IgnoreMissingServices;
|
||||||
|
|
||||||
if (NeedsOverride(nameof(IgnoreControllerApplet)))
|
if (NeedsOverride(nameof(IgnoreControllerApplet)))
|
||||||
IgnoreControllerApplet = configurationState.IgnoreApplet;
|
IgnoreControllerApplet = configurationState.IgnoreApplet;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool NeedsOverride(string argKey) => originalArgs.None(arg => arg.TrimStart('-').EqualsIgnoreCase(OptionName(argKey)));
|
bool NeedsOverride(string argKey) => originalArgs.None(arg => arg.TrimStart('-').EqualsIgnoreCase(OptionName(argKey)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -179,15 +179,15 @@ namespace Ryujinx.Headless
|
|||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool NeedsOverride(string argKey) => originalArgs.None(arg => arg.TrimStart('-').EqualsIgnoreCase(OptionName(argKey)));
|
bool NeedsOverride(string argKey) => originalArgs.None(arg => arg.TrimStart('-').EqualsIgnoreCase(OptionName(argKey)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string OptionName(string propertyName) =>
|
private static string OptionName(string propertyName) =>
|
||||||
typeof(Options)!.GetProperty(propertyName)!.GetCustomAttribute<OptionAttribute>()!.LongName;
|
typeof(Options)!.GetProperty(propertyName)!.GetCustomAttribute<OptionAttribute>()!.LongName;
|
||||||
|
|
||||||
// General
|
// General
|
||||||
|
|
||||||
[Option("use-main-config", Required = false, Default = false, HelpText = "Use the settings from what was configured via the UI.")]
|
[Option("use-main-config", Required = false, Default = false, HelpText = "Use the settings from what was configured via the UI.")]
|
||||||
public bool InheritConfig { get; set; }
|
public bool InheritConfig { get; set; }
|
||||||
|
|
||||||
@ -410,7 +410,7 @@ namespace Ryujinx.Headless
|
|||||||
|
|
||||||
[Option("ignore-missing-services", Required = false, Default = false, HelpText = "Enable ignoring missing services.")]
|
[Option("ignore-missing-services", Required = false, Default = false, HelpText = "Enable ignoring missing services.")]
|
||||||
public bool IgnoreMissingServices { get; set; }
|
public bool IgnoreMissingServices { get; set; }
|
||||||
|
|
||||||
[Option("ignore-controller-applet", Required = false, Default = false, HelpText = "Enable ignoring the controller applet when your game loses connection to your controller.")]
|
[Option("ignore-controller-applet", Required = false, Default = false, HelpText = "Enable ignoring the controller applet when your game loses connection to your controller.")]
|
||||||
public bool IgnoreControllerApplet { get; set; }
|
public bool IgnoreControllerApplet { get; set; }
|
||||||
|
|
||||||
@ -419,6 +419,6 @@ namespace Ryujinx.Headless
|
|||||||
[Value(0, MetaName = "input", HelpText = "Input to load.", Required = true)]
|
[Value(0, MetaName = "input", HelpText = "Input to load.", Required = true)]
|
||||||
public string InputPath { get; set; }
|
public string InputPath { get; set; }
|
||||||
|
|
||||||
public SafeDictionary<PlayerIndex, InputConfig> InheritedInputConfigs = new();
|
public SafeDictionary<PlayerIndex, InputConfig> InheritedInputConfigs = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -382,7 +382,7 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
EnablePtc.LogChangesToValue(nameof(EnablePtc));
|
EnablePtc.LogChangesToValue(nameof(EnablePtc));
|
||||||
EnableLowPowerPtc = new ReactiveObject<bool>();
|
EnableLowPowerPtc = new ReactiveObject<bool>();
|
||||||
EnableLowPowerPtc.LogChangesToValue(nameof(EnableLowPowerPtc));
|
EnableLowPowerPtc.LogChangesToValue(nameof(EnableLowPowerPtc));
|
||||||
EnableLowPowerPtc.Event += (_, evnt)
|
EnableLowPowerPtc.Event += (_, evnt)
|
||||||
=> Optimizations.LowPower = evnt.NewValue;
|
=> Optimizations.LowPower = evnt.NewValue;
|
||||||
EnableInternetAccess = new ReactiveObject<bool>();
|
EnableInternetAccess = new ReactiveObject<bool>();
|
||||||
EnableInternetAccess.LogChangesToValue(nameof(EnableInternetAccess));
|
EnableInternetAccess.LogChangesToValue(nameof(EnableInternetAccess));
|
||||||
@ -626,11 +626,11 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
/// Show toggles for dirty hacks in the UI.
|
/// Show toggles for dirty hacks in the UI.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ReactiveObject<bool> ShowDirtyHacks { get; private set; }
|
public ReactiveObject<bool> ShowDirtyHacks { get; private set; }
|
||||||
|
|
||||||
public ReactiveObject<bool> Xc2MenuSoftlockFix { get; private set; }
|
public ReactiveObject<bool> Xc2MenuSoftlockFix { get; private set; }
|
||||||
|
|
||||||
public ReactiveObject<bool> EnableShaderTranslationDelay { get; private set; }
|
public ReactiveObject<bool> EnableShaderTranslationDelay { get; private set; }
|
||||||
|
|
||||||
public ReactiveObject<int> ShaderTranslationDelay { get; private set; }
|
public ReactiveObject<int> ShaderTranslationDelay { get; private set; }
|
||||||
|
|
||||||
public HacksSection()
|
public HacksSection()
|
||||||
@ -645,15 +645,15 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
|
|
||||||
private void HackChanged(object sender, ReactiveEventArgs<bool> rxe)
|
private void HackChanged(object sender, ReactiveEventArgs<bool> rxe)
|
||||||
{
|
{
|
||||||
if (!ShowDirtyHacks)
|
if (!ShowDirtyHacks)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var newHacks = EnabledHacks.Select(x => x.Hack)
|
var newHacks = EnabledHacks.Select(x => x.Hack)
|
||||||
.JoinToString(", ");
|
.JoinToString(", ");
|
||||||
|
|
||||||
if (newHacks != _lastHackCollection)
|
if (newHacks != _lastHackCollection)
|
||||||
{
|
{
|
||||||
RyuLogger.Info?.Print(LogClass.Configuration,
|
RyuLogger.Info?.Print(LogClass.Configuration,
|
||||||
$"EnabledDirtyHacks set to: [{newHacks}]", "LogValueChange");
|
$"EnabledDirtyHacks set to: [{newHacks}]", "LogValueChange");
|
||||||
|
|
||||||
_lastHackCollection = newHacks;
|
_lastHackCollection = newHacks;
|
||||||
@ -667,14 +667,14 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
get
|
get
|
||||||
{
|
{
|
||||||
List<EnabledDirtyHack> enabledHacks = [];
|
List<EnabledDirtyHack> enabledHacks = [];
|
||||||
|
|
||||||
if (Xc2MenuSoftlockFix)
|
if (Xc2MenuSoftlockFix)
|
||||||
Apply(DirtyHack.Xc2MenuSoftlockFix);
|
Apply(DirtyHack.Xc2MenuSoftlockFix);
|
||||||
|
|
||||||
if (EnableShaderTranslationDelay)
|
if (EnableShaderTranslationDelay)
|
||||||
Apply(DirtyHack.ShaderTranslationDelay, ShaderTranslationDelay);
|
Apply(DirtyHack.ShaderTranslationDelay, ShaderTranslationDelay);
|
||||||
|
|
||||||
return enabledHacks.ToArray();
|
return [.. enabledHacks];
|
||||||
|
|
||||||
void Apply(DirtyHack hack, int value = 0)
|
void Apply(DirtyHack hack, int value = 0)
|
||||||
{
|
{
|
||||||
@ -718,7 +718,7 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
/// The Multiplayer section
|
/// The Multiplayer section
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public MultiplayerSection Multiplayer { get; private set; }
|
public MultiplayerSection Multiplayer { get; private set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The Dirty Hacks section
|
/// The Dirty Hacks section
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user