protected string SettingsQuery(string name) { if (SettingsOverrides.TryGetValue(name, out var val)) { // use override } else { // try to get actual value from settings if (NonSyncSettingNames.Contains(name)) { _settings.MednafenValues.TryGetValue(name, out val); } else { _syncSettings.MednafenValues.TryGetValue(name, out val); } } // in either case, might need defaults if (val == null) { SettingsInfo.AllSettingsByKey.TryGetValue(name, out var info); val = info?.DefaultValue; } if (val == null) { throw new InvalidOperationException($"Core asked for setting {name} which was not found in the defaults"); } return(val); }
public Faust(GameInfo game, byte[] rom, CoreComm comm, string extension, NymaSettings settings, NymaSyncSettings syncSettings, bool deterministic) : base(comm, "SNES", "I don't think anything uses this parameter", settings, syncSettings) { if (deterministic) { // force ST renderer SettingsOverrides.Add("snes_faust.renderer", "0"); } DoInit <LibNymaCore>(game, rom, null, "faust.wbx", extension, deterministic); }
protected T ValueForTargetEnvironment <T>(T?[] values, [CallerMemberName] string propertyName = null) where T : struct { values = SettingsOverrides.ValuesForProperty(propertyName, values); var value = values[TargetEnvironmentIndex] ?? values[0]; if (value == null) { throw new InvalidOperationException( string.Format( "'{0}' does not have a defined value neither for '{1}' or default target environment.", propertyName, BindingGenerationContext.TargetEnvironment)); } return(value.Value); }
protected string SettingsQuery(string name) { SettingsOverrides.TryGetValue(name, out var val); if (val == null) { if (!_syncSettingsActual.MednafenValues.TryGetValue(name, out val)) { if (SettingsInfo.SettingsByKey.TryGetValue(name, out var info)) { val = info.DefaultValue; } else { throw new InvalidOperationException($"Core asked for setting {name} which was not found in the defaults"); } } } return(val); }
private void InitSyncSettingsInfo(List <NPortInfoT> allPorts) { var s = new NymaSettingsInfo(); foreach (var portInfo in allPorts) { s.Ports.Add(new NymaSettingsInfo.Port { Name = portInfo.FullName, DefaultSettingsValue = portInfo.DefaultDeviceShortName, AllowedDevices = portInfo.Devices.Select(dev => new NymaSettingsInfo.Device { Name = dev.FullName, Description = dev.Description, SettingValue = dev.ShortName }).ToList() }); } foreach (var setting in GetSettingsData().Concat(ExtraSettings)) { s.AllSettingsByKey.Add(setting.SettingsKey, setting); if (!SettingsOverrides.ContainsKey(setting.SettingsKey)) { if (NonSyncSettingNames.Contains(setting.SettingsKey)) { s.Settings.Add(setting); } else { s.SyncSettings.Add(setting); } } } SettingsInfo = s; }