From 9b1cbaf4abc87ecf3da3ecc7aa406fb4707d0031 Mon Sep 17 00:00:00 2001 From: nattthebear Date: Fri, 29 May 2020 21:19:54 -0400 Subject: [PATCH] faust - some settings cleanup --- .../Consoles/Nintendo/Faust/Faust.cs | 14 ++++++++++++++ .../NymaCore.Settings.ComponentModel.cs | 17 ++++++++++++++--- .../Waterbox/NymaCore.Settings.cs | 4 ++-- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/Faust/Faust.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/Faust/Faust.cs index e99957056f..d74813896c 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/Faust/Faust.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/Faust/Faust.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using BizHawk.Emulation.Common; using BizHawk.Emulation.Cores.Waterbox; @@ -13,5 +14,18 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Faust { DoInit(game, rom, null, "faust.wbx", extension, deterministic); } + + protected override IDictionary SettingsOverrides { get; } = new Dictionary + { + { "snes_faust.renderer", null }, + { "snes_faust.affinity.ppu", null }, + { "snes_faust.affinity.msu1.audio", null }, + { "snes_faust.affinity.msu1.data", null }, + { "snes_faust.frame_begin_vblank", null }, + { "snes_faust.msu1.resamp_quality", null }, + { "snes_faust.correct_aspect", null }, + { "nyma.rtcinitialtime", null }, + { "nyma.rtcrealtime", null }, + }; } } diff --git a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.ComponentModel.cs b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.ComponentModel.cs index 69f3883f69..93b56771fd 100644 --- a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.ComponentModel.cs +++ b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.ComponentModel.cs @@ -242,15 +242,26 @@ namespace BizHawk.Emulation.Cores.Waterbox public override Type PropertyType => typeof(ulong); protected override object ConvertFromString(string s) { - var ret = ulong.Parse(s); - if (Setting.Min != null && ret < ulong.Parse(Setting.Min) || Setting.Max != null && ret > ulong.Parse(Setting.Max)) - ret = ulong.Parse(Setting.DefaultValue); + var ret = Parse(s); + if (Setting.Min != null && ret < Parse(Setting.Min) || Setting.Max != null && ret > Parse(Setting.Max)) + ret = Parse(Setting.DefaultValue); return ret; } protected override string ConvertToString(object o) { return o.ToString(); } + private static ulong Parse(string s) + { + if (s.StartsWith("0x")) + { + return ulong.Parse(s.Substring(2), NumberStyles.HexNumber); + } + else + { + return ulong.Parse(s); + } + } } public class MednaDoubleDescriptor : MednaPropertyDescriptor { diff --git a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.cs b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.cs index a22c6a5d75..a520be6fc0 100644 --- a/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.cs +++ b/src/BizHawk.Emulation.Cores/Waterbox/NymaCore.Settings.cs @@ -100,10 +100,10 @@ namespace BizHawk.Emulation.Cores.Waterbox protected string SettingsQuery(string name) { - SettingsOverrides.TryGetValue(name, out var val); + var forced = SettingsOverrides.TryGetValue(name, out var val); if (val == null) { - if (!_syncSettingsActual.MednafenValues.TryGetValue(name, out val)) + if (forced || !_syncSettingsActual.MednafenValues.TryGetValue(name, out val)) { if (SettingsInfo.SettingsByKey.TryGetValue(name, out var info)) {