allow neshawk/subneshawk/quicknes/octoshock settings to be edited without the core loaded
this makes all cores (except MAME) able to have their settings edited without the core loaded
This commit is contained in:
parent
6b90737813
commit
c1ff3072e0
|
@ -1477,10 +1477,11 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
|
|
||||||
private DialogResult OpenQuickNesGamepadSettingsDialog()
|
private DialogResult OpenQuickNesGamepadSettingsDialog()
|
||||||
=> GenericCoreConfig.DoDialog(
|
=> GenericCoreConfig.DoDialogFor(
|
||||||
this,
|
this,
|
||||||
|
GetSettingsAdapterFor<QuickNES>(),
|
||||||
"QuickNES Controller Settings",
|
"QuickNES Controller Settings",
|
||||||
isMovieActive: MovieSession.Movie.IsActive(),
|
MovieSession.Movie.IsActive(),
|
||||||
hideSettings: true,
|
hideSettings: true,
|
||||||
hideSyncSettings: false);
|
hideSyncSettings: false);
|
||||||
|
|
||||||
|
@ -1671,14 +1672,14 @@ namespace BizHawk.Client.EmuHawk
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private DialogResult OpenOctoshockSettingsDialog(ISettingsAdapter settable, Octoshock octoshock)
|
private DialogResult OpenOctoshockSettingsDialog(OctoshockDll.eVidStandard vidStandard, Size vidSize)
|
||||||
=> PSXOptions.DoSettingsDialog(Config, this, settable, octoshock);
|
=> PSXOptions.DoSettingsDialog(Config, this, GetSettingsAdapterFor<Octoshock>(), vidStandard, vidSize);
|
||||||
|
|
||||||
private void PsxOptionsMenuItem_Click(object sender, EventArgs e)
|
private void PsxOptionsMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var result = Emulator switch
|
var result = Emulator switch
|
||||||
{
|
{
|
||||||
Octoshock octoshock => OpenOctoshockSettingsDialog(GetSettingsAdapterForLoadedCore<Octoshock>(), octoshock),
|
Octoshock octoshock => OpenOctoshockSettingsDialog(octoshock.SystemVidStandard, octoshock.CurrentVideoSize),
|
||||||
_ => DialogResult.None
|
_ => DialogResult.None
|
||||||
};
|
};
|
||||||
if (result.IsOk()) FrameBufferResized();
|
if (result.IsOk()) FrameBufferResized();
|
||||||
|
@ -2939,7 +2940,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
// NesHawk
|
// NesHawk
|
||||||
var nesHawkGamepadSettingsItem = CreateSettingsItem("Controller Settings...", (_, _) => OpenNesHawkGamepadSettingsDialog(GetSettingsAdapterFor<NES>()));
|
var nesHawkGamepadSettingsItem = CreateSettingsItem("Controller Settings...", (_, _) => OpenNesHawkGamepadSettingsDialog(GetSettingsAdapterFor<NES>()));
|
||||||
var nesHawkVSSettingsItem = CreateSettingsItem("VS Settings...", (_, _) => OpenNesHawkVSSettingsDialog(GetSettingsAdapterFor<NES>()));
|
var nesHawkVSSettingsItem = CreateSettingsItem("VS Settings...", (_, _) => OpenNesHawkVSSettingsDialog(GetSettingsAdapterFor<NES>()));
|
||||||
var nesHawkAdvancedSettingsItem = CreateSettingsItem("Advanced Settings...", MovieSettingsMenuItem_Click);
|
var nesHawkAdvancedSettingsItem = CreateSettingsItem("Advanced Settings...", (_, _) => OpenNesHawkAdvancedSettingsDialog(GetSettingsAdapterFor<NES>(), Emulator is not NES nesHawk || nesHawk.HasMapperProperties));
|
||||||
var nesHawkSubmenu = CreateCoreSubmenu(
|
var nesHawkSubmenu = CreateCoreSubmenu(
|
||||||
VSystemCategory.Consoles,
|
VSystemCategory.Consoles,
|
||||||
CoreNames.NesHawk,
|
CoreNames.NesHawk,
|
||||||
|
@ -2952,9 +2953,9 @@ namespace BizHawk.Client.EmuHawk
|
||||||
var isMovieActive = MovieSession.Movie.IsActive();
|
var isMovieActive = MovieSession.Movie.IsActive();
|
||||||
var nesHawk = Emulator as NES;
|
var nesHawk = Emulator as NES;
|
||||||
var loadedCoreIsNesHawk = nesHawk is not null;
|
var loadedCoreIsNesHawk = nesHawk is not null;
|
||||||
nesHawkGamepadSettingsItem.Enabled = !isMovieActive && Tools.IsAvailable<NesControllerSettings>();
|
nesHawkGamepadSettingsItem.Enabled = (!loadedCoreIsNesHawk || !isMovieActive) && Tools.IsAvailable<NesControllerSettings>();
|
||||||
nesHawkVSSettingsItem.Enabled = nesHawk?.IsVS is true;
|
nesHawkVSSettingsItem.Enabled = !loadedCoreIsNesHawk || nesHawk.IsVS is true;
|
||||||
nesHawkAdvancedSettingsItem.Enabled = loadedCoreIsNesHawk && !isMovieActive;
|
nesHawkAdvancedSettingsItem.Enabled = !loadedCoreIsNesHawk || !isMovieActive;
|
||||||
};
|
};
|
||||||
items.Add(nesHawkSubmenu);
|
items.Add(nesHawkSubmenu);
|
||||||
|
|
||||||
|
@ -2969,12 +2970,22 @@ namespace BizHawk.Client.EmuHawk
|
||||||
// Octoshock
|
// Octoshock
|
||||||
var octoshockGamepadSettingsItem = CreateSettingsItem("Controller / Memcard Settings...", (_, _) => OpenOctoshockGamepadSettingsDialog(GetSettingsAdapterFor<Octoshock>()));
|
var octoshockGamepadSettingsItem = CreateSettingsItem("Controller / Memcard Settings...", (_, _) => OpenOctoshockGamepadSettingsDialog(GetSettingsAdapterFor<Octoshock>()));
|
||||||
var octoshockSettingsItem = CreateSettingsItem("Options...", PsxOptionsMenuItem_Click);
|
var octoshockSettingsItem = CreateSettingsItem("Options...", PsxOptionsMenuItem_Click);
|
||||||
var octoshockSubmenu = CreateCoreSubmenu(VSystemCategory.Consoles, CoreNames.Octoshock, octoshockGamepadSettingsItem, octoshockSettingsItem);
|
// using init buffer sizes here (in practice, they don't matter here, but might as well)
|
||||||
|
var octoshockNtscSettingsItem = CreateSettingsItem("Options (as NTSC)...", (_, _) => OpenOctoshockSettingsDialog(OctoshockDll.eVidStandard.NTSC, new(280, 240)));
|
||||||
|
var octoshockPalSettingsItem = CreateSettingsItem("Options (as PAL)...", (_, _) => OpenOctoshockSettingsDialog(OctoshockDll.eVidStandard.PAL, new(280, 288)));
|
||||||
|
var octoshockSubmenu = CreateCoreSubmenu(
|
||||||
|
VSystemCategory.Consoles,
|
||||||
|
CoreNames.Octoshock,
|
||||||
|
octoshockGamepadSettingsItem,
|
||||||
|
octoshockSettingsItem,
|
||||||
|
octoshockNtscSettingsItem,
|
||||||
|
octoshockPalSettingsItem);
|
||||||
octoshockSubmenu.DropDownOpened += (_, _) =>
|
octoshockSubmenu.DropDownOpened += (_, _) =>
|
||||||
{
|
{
|
||||||
var loadedCoreIsOctoshock = Emulator is Octoshock;
|
var loadedCoreIsOctoshock = Emulator is Octoshock;
|
||||||
octoshockGamepadSettingsItem.Enabled = !loadedCoreIsOctoshock || MovieSession.Movie.NotActive();
|
octoshockGamepadSettingsItem.Enabled = !loadedCoreIsOctoshock || MovieSession.Movie.NotActive();
|
||||||
octoshockSettingsItem.Enabled = loadedCoreIsOctoshock;
|
octoshockSettingsItem.Visible = loadedCoreIsOctoshock;
|
||||||
|
octoshockNtscSettingsItem.Visible = octoshockPalSettingsItem.Visible = !loadedCoreIsOctoshock;
|
||||||
};
|
};
|
||||||
items.Add(octoshockSubmenu);
|
items.Add(octoshockSubmenu);
|
||||||
|
|
||||||
|
@ -2991,7 +3002,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
CoreNames.QuickNes,
|
CoreNames.QuickNes,
|
||||||
quickNesGamepadSettingsItem,
|
quickNesGamepadSettingsItem,
|
||||||
CreateSettingsItem("Graphics Settings...", (_, _) => OpenQuickNesGraphicsSettingsDialog(GetSettingsAdapterFor<QuickNES>())));
|
CreateSettingsItem("Graphics Settings...", (_, _) => OpenQuickNesGraphicsSettingsDialog(GetSettingsAdapterFor<QuickNES>())));
|
||||||
quickNesSubmenu.DropDownOpened += (_, _) => quickNesGamepadSettingsItem.Enabled = !MovieSession.Movie.IsActive() && Emulator is QuickNES && Tools.IsAvailable<NesControllerSettings>();
|
quickNesSubmenu.DropDownOpened += (_, _) =>
|
||||||
|
{
|
||||||
|
var isMovieActive = MovieSession.Movie.IsActive();
|
||||||
|
var loadedCoreIsQuickNes = Emulator is QuickNES;
|
||||||
|
quickNesGamepadSettingsItem.Enabled = (!loadedCoreIsQuickNes || !isMovieActive) && Tools.IsAvailable<NesControllerSettings>();
|
||||||
|
};
|
||||||
items.Add(quickNesSubmenu);
|
items.Add(quickNesSubmenu);
|
||||||
|
|
||||||
// SameBoy
|
// SameBoy
|
||||||
|
@ -3021,7 +3037,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
// SubNESHawk
|
// SubNESHawk
|
||||||
var subNESHawkGamepadSettingsItem = CreateSettingsItem("Controller Settings...", (_, _) => OpenNesHawkGamepadSettingsDialog(GetSettingsAdapterFor<SubNESHawk>()));
|
var subNESHawkGamepadSettingsItem = CreateSettingsItem("Controller Settings...", (_, _) => OpenNesHawkGamepadSettingsDialog(GetSettingsAdapterFor<SubNESHawk>()));
|
||||||
var subNESHawkVSSettingsItem = CreateSettingsItem("VS Settings...", (_, _) => OpenNesHawkVSSettingsDialog(GetSettingsAdapterFor<SubNESHawk>()));
|
var subNESHawkVSSettingsItem = CreateSettingsItem("VS Settings...", (_, _) => OpenNesHawkVSSettingsDialog(GetSettingsAdapterFor<SubNESHawk>()));
|
||||||
var subNESHawkAdvancedSettingsItem = CreateSettingsItem("Advanced Settings...", MovieSettingsMenuItem_Click);
|
var subNESHawkAdvancedSettingsItem = CreateSettingsItem("Advanced Settings...", (_, _) => OpenNesHawkAdvancedSettingsDialog(GetSettingsAdapterFor<SubNESHawk>(), Emulator is not SubNESHawk subNESHawk || subNESHawk.HasMapperProperties));
|
||||||
var subNESHawkSubmenu = CreateCoreSubmenu(
|
var subNESHawkSubmenu = CreateCoreSubmenu(
|
||||||
VSystemCategory.Consoles,
|
VSystemCategory.Consoles,
|
||||||
CoreNames.SubNesHawk,
|
CoreNames.SubNesHawk,
|
||||||
|
@ -3035,8 +3051,8 @@ namespace BizHawk.Client.EmuHawk
|
||||||
var subNESHawk = Emulator as SubNESHawk;
|
var subNESHawk = Emulator as SubNESHawk;
|
||||||
var loadedCoreIsSubNESHawk = subNESHawk is not null;
|
var loadedCoreIsSubNESHawk = subNESHawk is not null;
|
||||||
subNESHawkGamepadSettingsItem.Enabled = !isMovieActive && Tools.IsAvailable<NesControllerSettings>();
|
subNESHawkGamepadSettingsItem.Enabled = !isMovieActive && Tools.IsAvailable<NesControllerSettings>();
|
||||||
subNESHawkVSSettingsItem.Enabled = subNESHawk?.IsVs is true;
|
subNESHawkVSSettingsItem.Enabled = !loadedCoreIsSubNESHawk || subNESHawk.IsVs is true;
|
||||||
subNESHawkAdvancedSettingsItem.Enabled = loadedCoreIsSubNESHawk && !isMovieActive;
|
subNESHawkAdvancedSettingsItem.Enabled = !loadedCoreIsSubNESHawk || !isMovieActive;
|
||||||
};
|
};
|
||||||
items.Add(subNESHawkSubmenu);
|
items.Add(subNESHawkSubmenu);
|
||||||
|
|
||||||
|
|
|
@ -131,9 +131,11 @@ namespace BizHawk.Client.EmuHawk
|
||||||
IDialogParent owner,
|
IDialogParent owner,
|
||||||
ISettingsAdapter settable,
|
ISettingsAdapter settable,
|
||||||
string title,
|
string title,
|
||||||
bool isMovieActive)
|
bool isMovieActive,
|
||||||
|
bool hideSettings = false,
|
||||||
|
bool hideSyncSettings = false)
|
||||||
{
|
{
|
||||||
using GenericCoreConfig dlg = new(settable, isMovieActive) { Text = title };
|
using GenericCoreConfig dlg = new(settable, isMovieActive, hideSettings, hideSyncSettings) { Text = title };
|
||||||
return owner.ShowDialogAsChild(dlg);
|
return owner.ShowDialogAsChild(dlg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -82,18 +82,16 @@ namespace BizHawk.Client.EmuHawk
|
||||||
DialogController.ShowMessageBox("Finetuned Display Options will take effect if you OK from PSX Options");
|
DialogController.ShowMessageBox("Finetuned Display Options will take effect if you OK from PSX Options");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks>TODO only use <paramref name="settable"/></remarks>
|
|
||||||
public static DialogResult DoSettingsDialog(
|
public static DialogResult DoSettingsDialog(
|
||||||
Config config,
|
Config config,
|
||||||
IDialogParent dialogParent,
|
IDialogParent dialogParent,
|
||||||
ISettingsAdapter settable,
|
ISettingsAdapter settable,
|
||||||
Octoshock psx)
|
OctoshockDll.eVidStandard vidStandard,
|
||||||
|
Size vidSize)
|
||||||
{
|
{
|
||||||
var s = psx.GetSettings();
|
var s = settable.GetSettings() as Octoshock.Settings;
|
||||||
var ss = psx.GetSyncSettings();
|
var ss = settable.GetSyncSettings() as Octoshock.SyncSettings;
|
||||||
var vid = psx.SystemVidStandard;
|
using var dlg = new PSXOptions(config, dialogParent.DialogController, settable, s, ss, vidStandard, vidSize);
|
||||||
var size = psx.CurrentVideoSize;
|
|
||||||
using var dlg = new PSXOptions(config, dialogParent.DialogController, settable, s, ss, vid, size);
|
|
||||||
return dialogParent.ShowDialogAsChild(dlg);
|
return dialogParent.ShowDialogAsChild(dlg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue