Create a generic core menu (#2155)

* poc - have a default core menu that provides a generic settings menu item, wire up some cores to this generic menu that only have settings to begin wtih

* vectrex - remove strong type for settings, if there are no settings the convention is to use object, which allows GenericCoreConfig to be smart

* convert saturn menu to default core menu

* fixups

* convert PCFX menu to generic core menu

* convert snes9x and faust to generic core menu

* convert GBLink to generic core menus

* convert MAME to generic core menu

* convert NGP to generic core menu

* convert GGLink to generic core menu

* convert wonderswan to generic core menu

* convert virtualboy to generic core menu
This commit is contained in:
adelikat 2020-06-20 11:28:23 -05:00 committed by GitHub
parent e6858c702b
commit f1131b1907
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 80 additions and 422 deletions

View File

@ -243,8 +243,6 @@
this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator();
this.AutoloadKeypadMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.paletteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.AtariSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.AtariSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.A7800SubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.A7800ControllerSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.A7800FilterSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -279,20 +277,12 @@
this.N64CircularAnalogRangeMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.MupenStyleLagMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.N64ExpansionSlotMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SaturnSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.SaturnPreferencesMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.DGBSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.DGBsettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.DGBHawkSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.DGBHawksettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.GGLSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.GGLsettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.GenesisSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.vDPViewerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator26 = new System.Windows.Forms.ToolStripSeparator();
this.GenesisSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.wonderSwanToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.AppleSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.AppleDisksSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator31 = new System.Windows.Forms.ToolStripSeparator();
@ -303,14 +293,6 @@
this.C64SettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.IntvSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.IntVControllerSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.sNESToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.preferencesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.pCFXToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.preferencesToolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
this.virtualBoyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.preferencesToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.neoGeoPocketToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.preferencesToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.zXSpectrumToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ZXSpectrumCoreEmulationSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ZXSpectrumControllerConfigurationMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -323,12 +305,8 @@
this.ZXSpectrumDisksSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.zxt2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ZXSpectrumExportSnapshotMenuItemMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.VectrexSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.VectrexsettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.MSXSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.MSXsettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.O2HawkSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.O2HawksettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.GenericCoreSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.GenericCoreSettingsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.HelpSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.OnlineHelpMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ForumsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -344,8 +322,6 @@
this.cpct1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.AmstradCPCDisksSubMenu = new System.Windows.Forms.ToolStripMenuItem();
this.cpcd1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.arcadeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.settingsToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.Atari7800HawkCoreMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.MainStatusBar = new StatusStripEx();
this.DumpStatusButton = new System.Windows.Forms.ToolStripDropDownButton();
@ -434,8 +410,7 @@
this.PCESubMenu,
this.SMSSubMenu,
this.TI83SubMenu,
this.AtariSubMenu,
this.A7800SubMenu,
this.A7800SubMenu,
this.GBSubMenu,
this.GBASubMenu,
this.NDSSubMenu,
@ -443,25 +418,14 @@
this.SNESSubMenu,
this.ColecoSubMenu,
this.N64SubMenu,
this.SaturnSubMenu,
this.DGBSubMenu,
this.DGBHawkSubMenu,
this.GGLSubMenu,
this.GenesisSubMenu,
this.wonderSwanToolStripMenuItem,
this.AppleSubMenu,
this.C64SubMenu,
this.IntvSubMenu,
this.sNESToolStripMenuItem,
this.pCFXToolStripMenuItem,
this.virtualBoyToolStripMenuItem,
this.neoGeoPocketToolStripMenuItem,
this.zXSpectrumToolStripMenuItem,
this.VectrexSubMenu,
this.MSXSubMenu,
this.O2HawkSubMenu,
this.GenericCoreSubMenu,
this.amstradCPCToolStripMenuItem,
this.arcadeToolStripMenuItem,
this.HelpSubMenu});
this.MainformMenu.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow;
this.MainformMenu.Location = new System.Drawing.Point(0, 0);
@ -2222,21 +2186,6 @@
this.paletteToolStripMenuItem.Text = "Palette...";
this.paletteToolStripMenuItem.Click += new System.EventHandler(this.Ti83PaletteMenuItem_Click);
//
// AtariSubMenu
//
this.AtariSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.AtariSettingsToolStripMenuItem});
this.AtariSubMenu.Name = "AtariSubMenu";
this.AtariSubMenu.Size = new System.Drawing.Size(42, 17);
this.AtariSubMenu.Text = "&Atari";
//
// AtariSettingsToolStripMenuItem
//
this.AtariSettingsToolStripMenuItem.Name = "AtariSettingsToolStripMenuItem";
this.AtariSettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
this.AtariSettingsToolStripMenuItem.Text = "Settings...";
this.AtariSettingsToolStripMenuItem.Click += new System.EventHandler(this.AtariSettingsMenuItem_Click);
//
// A7800SubMenu
//
this.A7800SubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -2499,21 +2448,6 @@
this.N64ExpansionSlotMenuItem.Text = "&Use Expansion Slot";
this.N64ExpansionSlotMenuItem.Click += new System.EventHandler(this.N64ExpansionSlotMenuItem_Click);
//
// SaturnSubMenu
//
this.SaturnSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.SaturnPreferencesMenuItem});
this.SaturnSubMenu.Name = "SaturnSubMenu";
this.SaturnSubMenu.Size = new System.Drawing.Size(51, 17);
this.SaturnSubMenu.Text = "&Saturn";
//
// SaturnPreferencesMenuItem
//
this.SaturnPreferencesMenuItem.Name = "SaturnPreferencesMenuItem";
this.SaturnPreferencesMenuItem.Size = new System.Drawing.Size(144, 22);
this.SaturnPreferencesMenuItem.Text = "Preferences...";
this.SaturnPreferencesMenuItem.Click += new System.EventHandler(this.SaturnPreferencesMenuItem_Click);
//
// DGBSubMenu
//
this.DGBSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -2529,36 +2463,6 @@
this.DGBsettingsToolStripMenuItem.Text = "Settings...";
this.DGBsettingsToolStripMenuItem.Click += new System.EventHandler(this.DgbSettingsMenuItem_Click);
//
// DGBHawkSubMenu
//
this.DGBHawkSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.DGBHawksettingsToolStripMenuItem});
this.DGBHawkSubMenu.Name = "DGBHawkSubMenu";
this.DGBHawkSubMenu.Size = new System.Drawing.Size(53, 17);
this.DGBHawkSubMenu.Text = "&GB Link";
//
// DGBHawksettingsToolStripMenuItem
//
this.DGBHawksettingsToolStripMenuItem.Name = "DGBHawksettingsToolStripMenuItem";
this.DGBHawksettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
this.DGBHawksettingsToolStripMenuItem.Text = "Settings...";
this.DGBHawksettingsToolStripMenuItem.Click += new System.EventHandler(this.DgbHawkSettingsMenuItem_Click);
//
// GGLSubMenu
//
this.GGLSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.GGLsettingsToolStripMenuItem});
this.GGLSubMenu.Name = "GGLSubMenu";
this.GGLSubMenu.Size = new System.Drawing.Size(54, 17);
this.GGLSubMenu.Text = "&GG Link";
//
// GGLsettingsToolStripMenuItem
//
this.GGLsettingsToolStripMenuItem.Name = "GGLsettingsToolStripMenuItem";
this.GGLsettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
this.GGLsettingsToolStripMenuItem.Text = "Settings...";
this.GGLsettingsToolStripMenuItem.Click += new System.EventHandler(this.GgSettingsMenuItem_Click);
//
// GenesisSubMenu
//
this.GenesisSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -2588,21 +2492,6 @@
this.GenesisSettingsToolStripMenuItem.Text = "&Settings...";
this.GenesisSettingsToolStripMenuItem.Click += new System.EventHandler(this.GenesisSettingsMenuItem_Click);
//
// wonderSwanToolStripMenuItem
//
this.wonderSwanToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.settingsToolStripMenuItem});
this.wonderSwanToolStripMenuItem.Name = "wonderSwanToolStripMenuItem";
this.wonderSwanToolStripMenuItem.Size = new System.Drawing.Size(83, 17);
this.wonderSwanToolStripMenuItem.Text = "&WonderSwan";
//
// settingsToolStripMenuItem
//
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
this.settingsToolStripMenuItem.Text = "&Settings...";
this.settingsToolStripMenuItem.Click += new System.EventHandler(this.WonderSwanSettingsMenuItem_Click);
//
// AppleSubMenu
//
this.AppleSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -2681,66 +2570,6 @@
this.IntVControllerSettingsMenuItem.Text = "Controller Settings...";
this.IntVControllerSettingsMenuItem.Click += new System.EventHandler(this.IntVControllerSettingsMenuItem_Click);
//
// sNESToolStripMenuItem
//
this.sNESToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.preferencesToolStripMenuItem});
this.sNESToolStripMenuItem.Name = "sNESToolStripMenuItem";
this.sNESToolStripMenuItem.Size = new System.Drawing.Size(44, 17);
this.sNESToolStripMenuItem.Text = "&SNES";
//
// preferencesToolStripMenuItem
//
this.preferencesToolStripMenuItem.Name = "preferencesToolStripMenuItem";
this.preferencesToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
this.preferencesToolStripMenuItem.Text = "Preferences...";
this.preferencesToolStripMenuItem.Click += new System.EventHandler(this.Snes9xSettingsMenuItem_Click);
//
// pCFXToolStripMenuItem
//
this.pCFXToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.preferencesToolStripMenuItem3});
this.pCFXToolStripMenuItem.Name = "pCFXToolStripMenuItem";
this.pCFXToolStripMenuItem.Size = new System.Drawing.Size(48, 17);
this.pCFXToolStripMenuItem.Text = "&PC-FX";
//
// preferencesToolStripMenuItem3
//
this.preferencesToolStripMenuItem3.Name = "preferencesToolStripMenuItem3";
this.preferencesToolStripMenuItem3.Size = new System.Drawing.Size(144, 22);
this.preferencesToolStripMenuItem3.Text = "Preferences...";
this.preferencesToolStripMenuItem3.Click += new System.EventHandler(this.PCFXSettingsMenuItem_Click);
//
// virtualBoyToolStripMenuItem
//
this.virtualBoyToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.preferencesToolStripMenuItem1});
this.virtualBoyToolStripMenuItem.Name = "virtualBoyToolStripMenuItem";
this.virtualBoyToolStripMenuItem.Size = new System.Drawing.Size(67, 17);
this.virtualBoyToolStripMenuItem.Text = "&VirtualBoy";
//
// preferencesToolStripMenuItem1
//
this.preferencesToolStripMenuItem1.Name = "preferencesToolStripMenuItem1";
this.preferencesToolStripMenuItem1.Size = new System.Drawing.Size(144, 22);
this.preferencesToolStripMenuItem1.Text = "Preferences...";
this.preferencesToolStripMenuItem1.Click += new System.EventHandler(this.VirtualBoySettingsMenuItem_Click);
//
// neoGeoPocketToolStripMenuItem
//
this.neoGeoPocketToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.preferencesToolStripMenuItem2});
this.neoGeoPocketToolStripMenuItem.Name = "neoGeoPocketToolStripMenuItem";
this.neoGeoPocketToolStripMenuItem.Size = new System.Drawing.Size(92, 17);
this.neoGeoPocketToolStripMenuItem.Text = "&NeoGeo Pocket";
//
// preferencesToolStripMenuItem2
//
this.preferencesToolStripMenuItem2.Name = "preferencesToolStripMenuItem2";
this.preferencesToolStripMenuItem2.Size = new System.Drawing.Size(144, 22);
this.preferencesToolStripMenuItem2.Text = "Preferences...";
this.preferencesToolStripMenuItem2.Click += new System.EventHandler(this.NeoGeoSettingsMenuItem_Click);
//
// zXSpectrumToolStripMenuItem
//
this.zXSpectrumToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -2837,50 +2666,20 @@
this.ZXSpectrumExportSnapshotMenuItemMenuItem.Text = "Export Snapshot";
this.ZXSpectrumExportSnapshotMenuItemMenuItem.Click += new System.EventHandler(this.ZXSpectrumExportSnapshotMenuItemMenuItem_Click);
//
// VectrexSubMenu
// GenericCoreSubMenu
//
this.VectrexSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.VectrexsettingsToolStripMenuItem});
this.VectrexSubMenu.Name = "VectrexSubMenu";
this.VectrexSubMenu.Size = new System.Drawing.Size(56, 17);
this.VectrexSubMenu.Text = "&Vectrex";
this.GenericCoreSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.GenericCoreSettingsMenuItem});
this.GenericCoreSubMenu.Name = "GenericCoreSubMenu";
this.GenericCoreSubMenu.Size = new System.Drawing.Size(56, 17);
this.GenericCoreSubMenu.Text = "&Core";
//
// VectrexsettingsToolStripMenuItem
// GenericCoreSettingsMenuItem
//
this.VectrexsettingsToolStripMenuItem.Name = "VectrexsettingsToolStripMenuItem";
this.VectrexsettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
this.VectrexsettingsToolStripMenuItem.Text = "Settings...";
this.VectrexsettingsToolStripMenuItem.Click += new System.EventHandler(this.VectrexSettingsMenuItem_Click);
//
// MSXSubMenu
//
this.MSXSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.MSXsettingsToolStripMenuItem});
this.MSXSubMenu.Name = "MSXSubMenu";
this.MSXSubMenu.Size = new System.Drawing.Size(56, 17);
this.MSXSubMenu.Text = "&MSX";
//
// MSXsettingsToolStripMenuItem
//
this.MSXsettingsToolStripMenuItem.Name = "MSXsettingsToolStripMenuItem";
this.MSXsettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
this.MSXsettingsToolStripMenuItem.Text = "Settings...";
this.MSXsettingsToolStripMenuItem.Click += new System.EventHandler(this.MsxSettingsMenuItem_Click);
//
// O2HawkSubMenu
//
this.O2HawkSubMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.O2HawksettingsToolStripMenuItem});
this.O2HawkSubMenu.Name = "O2HawkSubMenu";
this.O2HawkSubMenu.Size = new System.Drawing.Size(59, 17);
this.O2HawkSubMenu.Text = "&Odyssey 2";
//
// O2HawksettingsToolStripMenuItem
//
this.O2HawksettingsToolStripMenuItem.Name = "O2HawksettingsToolStripMenuItem";
this.O2HawksettingsToolStripMenuItem.Size = new System.Drawing.Size(125, 22);
this.O2HawksettingsToolStripMenuItem.Text = "Settings...";
this.O2HawksettingsToolStripMenuItem.Click += new System.EventHandler(this.O2HawkSettingsMenuItem_Click);
this.GenericCoreSettingsMenuItem.Name = "GenericCoreSettingsMenuItem";
this.GenericCoreSettingsMenuItem.Size = new System.Drawing.Size(125, 22);
this.GenericCoreSettingsMenuItem.Text = "Settings...";
this.GenericCoreSettingsMenuItem.Click += new System.EventHandler(this.GenericCoreSettingsMenuItem_Click);
//
// HelpSubMenu
//
@ -3002,21 +2801,6 @@
this.cpcd1ToolStripMenuItem.Size = new System.Drawing.Size(102, 22);
this.cpcd1ToolStripMenuItem.Text = "cpcd1";
//
// arcadeToolStripMenuItem
//
this.arcadeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.settingsToolStripMenuItem2});
this.arcadeToolStripMenuItem.Name = "arcadeToolStripMenuItem";
this.arcadeToolStripMenuItem.Size = new System.Drawing.Size(53, 17);
this.arcadeToolStripMenuItem.Text = "Arcade";
//
// settingsToolStripMenuItem2
//
this.settingsToolStripMenuItem2.Name = "settingsToolStripMenuItem2";
this.settingsToolStripMenuItem2.Size = new System.Drawing.Size(125, 22);
this.settingsToolStripMenuItem2.Text = "Settings...";
this.settingsToolStripMenuItem2.Click += new System.EventHandler(this.ArcadeSettingsMenuItem_Click);
//
// Atari7800HawkCoreMenuItem
//
this.Atari7800HawkCoreMenuItem.Name = "Atari7800HawkCoreMenuItem";
@ -3812,7 +3596,6 @@
private System.Windows.Forms.ToolStripMenuItem SMSSubMenu;
private System.Windows.Forms.ToolStripMenuItem PCEBGViewerMenuItem;
private System.Windows.Forms.ToolStripMenuItem ScreenshotContextMenuItem;
private System.Windows.Forms.ToolStripMenuItem AtariSubMenu;
private System.Windows.Forms.ToolStripMenuItem A7800SubMenu;
private System.Windows.Forms.ToolStripMenuItem NESSoundChannelsMenuItem;
private System.Windows.Forms.ToolStripMenuItem SNESSubMenu;
@ -3855,8 +3638,6 @@
private System.Windows.Forms.ToolStripSeparator toolStripSeparator29;
private System.Windows.Forms.ToolStripMenuItem N64SubMenu;
private System.Windows.Forms.ToolStripMenuItem N64PluginSettingsMenuItem;
private System.Windows.Forms.ToolStripMenuItem SaturnSubMenu;
private System.Windows.Forms.ToolStripMenuItem SaturnPreferencesMenuItem;
private System.Windows.Forms.ToolStripMenuItem ConfigContextMenuItem;
private System.Windows.Forms.ToolStripMenuItem RewindOptionsMenuItem;
private System.Windows.Forms.ToolStripMenuItem FirmwaresMenuItem;
@ -3867,19 +3648,10 @@
private System.Windows.Forms.ToolStripMenuItem FdsEjectDiskMenuItem;
private System.Windows.Forms.ToolStripMenuItem DGBSubMenu;
private System.Windows.Forms.ToolStripMenuItem DGBsettingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem DGBHawkSubMenu;
private System.Windows.Forms.ToolStripMenuItem DGBHawksettingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem GGLSubMenu;
private System.Windows.Forms.ToolStripMenuItem GGLsettingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem VectrexSubMenu;
private System.Windows.Forms.ToolStripMenuItem VectrexsettingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem MSXSubMenu;
private System.Windows.Forms.ToolStripMenuItem MSXsettingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem O2HawkSubMenu;
private System.Windows.Forms.ToolStripMenuItem O2HawksettingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem GenericCoreSubMenu;
private System.Windows.Forms.ToolStripMenuItem GenericCoreSettingsMenuItem;
private System.Windows.Forms.ToolStripMenuItem GenesisSubMenu;
private System.Windows.Forms.ToolStripMenuItem GenesisSettingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem AtariSettingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem A7800ControllerSettingsMenuItem;
private System.Windows.Forms.ToolStripMenuItem A7800FilterSettingsMenuItem;
private System.Windows.Forms.ToolStripMenuItem MovieSettingsMenuItem;
@ -3915,8 +3687,6 @@
private System.Windows.Forms.ToolStripSeparator toolStripSeparator23;
private System.Windows.Forms.ToolStripMenuItem N64CircularAnalogRangeMenuItem;
private System.Windows.Forms.ToolStripMenuItem paletteToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem wonderSwanToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ProfilesMenuItem;
private System.Windows.Forms.ToolStripMenuItem PceSoundDebuggerToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem SynclessRecordingMenuItem;
@ -3990,15 +3760,7 @@
private System.Windows.Forms.ToolStripMenuItem SNESControllerConfigurationMenuItem;
private System.Windows.Forms.ToolStripMenuItem C64DisksSubMenu;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator36;
private System.Windows.Forms.ToolStripMenuItem sNESToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem preferencesToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem virtualBoyToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem preferencesToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem neoGeoPocketToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem preferencesToolStripMenuItem2;
private System.Windows.Forms.ToolStripMenuItem Atari7800HawkCoreMenuItem;
private System.Windows.Forms.ToolStripMenuItem pCFXToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem preferencesToolStripMenuItem3;
private System.Windows.Forms.ToolStripMenuItem zXSpectrumToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumControllerConfigurationMenuItem;
private System.Windows.Forms.ToolStripMenuItem ZXSpectrumCoreEmulationSettingsMenuItem;
@ -4024,7 +3786,5 @@
private System.Windows.Forms.ToolStripMenuItem NDSSubMenu;
private System.Windows.Forms.ToolStripMenuItem NdsSyncSettingsMenuItem;
private System.Windows.Forms.ToolStripMenuItem NdsSettingsMenuItem;
private System.Windows.Forms.ToolStripMenuItem arcadeToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem2;
}
}

View File

@ -1642,11 +1642,6 @@ namespace BizHawk.Client.EmuHawk
}
}
private void AtariSettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "Atari 2600 Settings");
}
private void A7800SubMenu_DropDownOpened(object sender, EventArgs e)
{
A7800ControllerSettingsMenuItem.Enabled
@ -1801,11 +1796,6 @@ namespace BizHawk.Client.EmuHawk
}
}
private void Snes9xSettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "Snes9x Settings");
}
private void ColecoSubMenu_DropDownOpened(object sender, EventArgs e)
{
if (Emulator is ColecoVision coleco)
@ -1915,11 +1905,6 @@ namespace BizHawk.Client.EmuHawk
}
}
private void SaturnPreferencesMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "Saturn Settings");
}
private void DgbSettingsMenuItem_Click(object sender, EventArgs e)
{
if (Emulator is GambatteLink gambatte)
@ -1928,29 +1913,9 @@ namespace BizHawk.Client.EmuHawk
}
}
private void DgbHawkSettingsMenuItem_Click(object sender, EventArgs e)
private void GenericCoreSettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "Gameboy Settings");
}
private void GgSettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "Game Gear Settings");
}
private void VectrexSettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "Vectrex Settings", true, false);
}
private void MsxSettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "MSX Settings");
}
private void O2HawkSettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "Odyssey Settings");
GenericCoreConfig.DoDialog(this, $"{Emulator.DisplayName()} Settings");
}
private void GenVdpViewerMenuItem_Click(object sender, EventArgs e)
@ -1963,11 +1928,6 @@ namespace BizHawk.Client.EmuHawk
GenericCoreConfig.DoDialog(this, "Genesis Settings");
}
private void WonderSwanSettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "WonderSwan Settings");
}
private void AppleIISettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "Apple II Settings");
@ -2060,21 +2020,6 @@ namespace BizHawk.Client.EmuHawk
}
}
private void VirtualBoySettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "VirtualBoy Settings");
}
private void NeoGeoSettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "NeoPop Settings");
}
private void PCFXSettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "PC-FX Settings");
}
private void ZXSpectrumControllerConfigurationMenuItem_Click(object sender, EventArgs e)
{
if (Emulator is ZXSpectrum zxs)
@ -2337,11 +2282,6 @@ namespace BizHawk.Client.EmuHawk
}
private void ArcadeSettingsMenuItem_Click(object sender, EventArgs e)
{
GenericCoreConfig.DoDialog(this, "Arcade Settings");
}
private void HelpSubMenu_DropDownOpened(object sender, EventArgs e)
{
FeaturesMenuItem.Visible = VersionInfo.DeveloperBuild;

View File

@ -1803,12 +1803,7 @@ namespace BizHawk.Client.EmuHawk
private void HandlePlatformMenus()
{
var system = "";
if (!Game.IsNullInstance())
{
system = Emulator.SystemId;
}
GenericCoreSubMenu.Visible = false;
TI83SubMenu.Visible = false;
NESSubMenu.Visible = false;
PCESubMenu.Visible = false;
@ -1816,34 +1811,26 @@ namespace BizHawk.Client.EmuHawk
GBSubMenu.Visible = false;
GBASubMenu.Visible = false;
NDSSubMenu.Visible = false;
AtariSubMenu.Visible = false;
A7800SubMenu.Visible = false;
SNESSubMenu.Visible = false;
PSXSubMenu.Visible = false;
ColecoSubMenu.Visible = false;
N64SubMenu.Visible = false;
SaturnSubMenu.Visible = false;
DGBSubMenu.Visible = false;
DGBHawkSubMenu.Visible = false;
GGLSubMenu.Visible = false;
GenesisSubMenu.Visible = false;
wonderSwanToolStripMenuItem.Visible = false;
AppleSubMenu.Visible = false;
C64SubMenu.Visible = false;
IntvSubMenu.Visible = false;
virtualBoyToolStripMenuItem.Visible = false;
sNESToolStripMenuItem.Visible = false;
neoGeoPocketToolStripMenuItem.Visible = false;
pCFXToolStripMenuItem.Visible = false;
zXSpectrumToolStripMenuItem.Visible = false;
amstradCPCToolStripMenuItem.Visible = false;
VectrexSubMenu.Visible = false;
MSXSubMenu.Visible = false;
O2HawkSubMenu.Visible = false;
arcadeToolStripMenuItem.Visible = false;
switch (system)
switch (Emulator.SystemId)
{
default:
DisplayDefaultCoreMenu();
break;
case "NULL":
break;
case "GEN":
GenesisSubMenu.Visible = true;
break;
@ -1880,9 +1867,6 @@ namespace BizHawk.Client.EmuHawk
case "NDS":
NDSSubMenu.Visible = true;
break;
case "A26":
AtariSubMenu.Visible = true;
break;
case "A78":
A7800SubMenu.Visible = true;
break;
@ -1898,7 +1882,7 @@ namespace BizHawk.Client.EmuHawk
}
else if (Emulator is Snes9x || Emulator is Faust)
{
sNESToolStripMenuItem.Visible = true;
DisplayDefaultCoreMenu();
}
else if (Emulator is Sameboy)
{
@ -1911,22 +1895,16 @@ namespace BizHawk.Client.EmuHawk
case "N64":
N64SubMenu.Visible = true;
break;
case "SAT":
SaturnSubMenu.Visible = true;
break;
case "DGB":
if (Emulator is GBHawkLink)
{
DGBHawkSubMenu.Visible = true;
DisplayDefaultCoreMenu();
}
else
{
DGBSubMenu.Visible = true;
}
break;
case "WSWAN":
wonderSwanToolStripMenuItem.Visible = true;
break;
case "AppleII":
AppleSubMenu.Visible = true;
break;
@ -1936,15 +1914,6 @@ namespace BizHawk.Client.EmuHawk
case "INTV":
IntvSubMenu.Visible = true;
break;
case "VB":
virtualBoyToolStripMenuItem.Visible = true;
break;
case "NGP":
neoGeoPocketToolStripMenuItem.Visible = true;
break;
case "PCFX":
pCFXToolStripMenuItem.Visible = true;
break;
case "ZXSpectrum":
zXSpectrumToolStripMenuItem.Visible = true;
#if DEBUG
@ -1956,28 +1925,15 @@ namespace BizHawk.Client.EmuHawk
case "AmstradCPC":
amstradCPCToolStripMenuItem.Visible = true;
break;
case "GGL":
GGLSubMenu.Visible = true;
break;
case "VEC":
VectrexSubMenu.Visible = true;
break;
case "MSX":
MSXSubMenu.Visible = true;
break;
case "O2":
O2HawkSubMenu.Visible = true;
break;
case "GB3x":
case "GB4x":
DGBHawkSubMenu.Visible = true;
break;
case "MAME":
arcadeToolStripMenuItem.Visible = true;
break;
}
}
private void DisplayDefaultCoreMenu()
{
GenericCoreSubMenu.Visible = true;
GenericCoreSubMenu.Text = "&" + EmulatorExtensions.DisplayName(Emulator);
}
private void InitControls()
{
var controls = new Controller(
@ -2723,7 +2679,7 @@ namespace BizHawk.Client.EmuHawk
CoreNameStatusBarButton.Visible = true;
var attributes = Emulator.Attributes();
CoreNameStatusBarButton.Text = Emulator.DisplayName();
CoreNameStatusBarButton.Text = CoreExtensions.CoreExtensions.DisplayName(Emulator);
CoreNameStatusBarButton.Image = Emulator.Icon();
CoreNameStatusBarButton.ToolTipText = attributes.Ported ? "(ported) " : "";

View File

@ -714,7 +714,7 @@ namespace BizHawk.Client.EmuHawk
return true; // no ToolAttribute on given type -> assumed all supported
}
var displayName = _emulator.DisplayName();
var displayName = CoreExtensions.CoreExtensions.DisplayName(_emulator);
var systemId = _emulator.SystemId;
return !attr.UnsupportedCores.Contains(displayName) // not unsupported
&& (!attr.SupportedSystems.Any() || attr.SupportedSystems.Contains(systemId)); // supported (no supported list -> assumed all supported)

View File

@ -5,7 +5,7 @@ namespace BizHawk.Emulation.Common
[AttributeUsage(AttributeTargets.Class)]
public sealed class CoreAttribute : Attribute
{
public CoreAttribute(string name, string author, bool isPorted, bool isReleased, string portedVersion, string portedUrl, bool singleInstance)
public CoreAttribute(string name, string author, bool isPorted, bool isReleased, string portedVersion = null, string portedUrl = null, bool singleInstance = false, string displayName = null)
{
CoreName = name;
Author = author;
@ -14,12 +14,11 @@ namespace BizHawk.Emulation.Common
PortedVersion = portedVersion ?? string.Empty;
PortedUrl = portedUrl ?? string.Empty;
SingleInstance = singleInstance;
DisplayName = displayName;
}
public CoreAttribute(string name, string author, bool isPorted, bool isReleased)
: this(name, author, isPorted, isReleased, null, null, false) {}
public string CoreName { get; }
public string DisplayName { get; }
public string Author { get; }
public bool Ported { get; }
public bool Released { get; }

View File

@ -19,6 +19,17 @@ namespace BizHawk.Emulation.Common
return (CoreAttribute)Attribute.GetCustomAttribute(core.GetType(), typeof(CoreAttribute));
}
public static string DisplayName(this IEmulator core)
{
var attr = (CoreAttribute)Attribute.GetCustomAttribute(core.GetType(), typeof(CoreAttribute));
if (attr == null)
{
return core.GetType().Name;
}
return attr.DisplayName ?? attr.CoreName;
}
// todo: most of the special cases involving the NullEmulator should probably go away
public static bool IsNull(this IEmulator core)
{

View File

@ -92,7 +92,8 @@ namespace BizHawk.Emulation.Cores.Arcades.MAME
isReleased: false,
portedVersion: "0.221",
portedUrl: "https://github.com/mamedev/mame.git",
singleInstance: false)]
singleInstance: false,
displayName: "Arcade")]
public partial class MAME : IEmulator, IVideoProvider, ISoundProvider, ISettable<object, MAME.SyncSettings>, IStatable, IInputPollable
{
public MAME(string dir, string file, object syncSettings, out string gamename)

View File

@ -8,7 +8,8 @@ namespace BizHawk.Emulation.Cores.Computers.MSX
"MSXHawk",
"",
isPorted: false,
isReleased: false)]
isReleased: false,
displayName: "MSX")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class MSX : IEmulator, IVideoProvider, ISoundProvider, ISaveRam, IInputPollable, IRegionable, ISettable<MSX.MSXSettings, MSX.MSXSyncSettings>
{

View File

@ -10,7 +10,8 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
"Atari2600Hawk",
"Micro500, Alyosha, adelikat, natt",
isPorted: false,
isReleased: true)]
isReleased: true,
displayName: "Atari 2600")]
[ServiceNotApplicable(new[] { typeof(IDriveLight), typeof(ISaveRam) })]
public partial class Atari2600 : IEmulator, IDebuggable, IInputPollable, IBoardInfo, IRomInfo,
IRegionable, ICreateGameDBEntries, ISettable<Atari2600.A2600Settings, Atari2600.A2600SyncSettings>

View File

@ -7,19 +7,16 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Consoles.Vectrex
{
public partial class VectrexHawk : IEmulator, ISettable<VectrexHawk.VectrexSettings, VectrexHawk.VectrexSyncSettings>
public partial class VectrexHawk : IEmulator, ISettable<object, VectrexHawk.VectrexSyncSettings>
{
public VectrexSettings GetSettings()
{
return _settings.Clone();
}
public object GetSettings() => _settings;
public VectrexSyncSettings GetSyncSettings()
{
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(VectrexSettings o)
public PutSettingsDirtyBits PutSettings(object o)
{
_settings = o;
return PutSettingsDirtyBits.None;
@ -32,23 +29,9 @@ namespace BizHawk.Emulation.Cores.Consoles.Vectrex
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
}
private VectrexSettings _settings = new VectrexSettings();
private object _settings = new object();
public VectrexSyncSettings _syncSettings = new VectrexSyncSettings();
public class VectrexSettings
{
public VectrexSettings Clone()
{
return (VectrexSettings)MemberwiseClone();
}
public VectrexSettings()
{
SettingsUtil.SetDefaultValues(this);
}
}
public class VectrexSyncSettings
{
[JsonIgnore]

View File

@ -10,10 +10,11 @@ namespace BizHawk.Emulation.Cores.Consoles.Vectrex
"VectrexHawk",
"",
isPorted: false,
isReleased: true)]
isReleased: true,
displayName: "Vectrex")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class VectrexHawk : IEmulator, ISaveRam, IDebuggable, IInputPollable, IRegionable,
ISettable<VectrexHawk.VectrexSettings, VectrexHawk.VectrexSyncSettings>
ISettable<object, VectrexHawk.VectrexSyncSettings>
{
public byte[] RAM = new byte[0x400];
@ -49,7 +50,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Vectrex
ppu = new PPU();
serialport = new SerialPort();
_settings = (VectrexSettings)settings ?? new VectrexSettings();
_settings = settings ?? new object();
_syncSettings = (VectrexSyncSettings)syncSettings ?? new VectrexSyncSettings();
_controllerDeck = new VectrexHawkControllerDeck(_syncSettings.Port1, _syncSettings.Port2);
@ -109,7 +110,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Vectrex
ser.Register<ISoundProvider>(audio);
ServiceProvider = ser;
_settings = (VectrexSettings)settings ?? new VectrexSettings();
_settings = settings ?? new object();
_syncSettings = (VectrexSyncSettings)syncSettings ?? new VectrexSyncSettings();
_tracer = new TraceBuffer { Header = cpu.TraceHeader };

View File

@ -10,7 +10,8 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
"O2Hawk",
"",
isPorted: false,
isReleased: false)]
isReleased: false,
displayName: "Odyssey 2")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class O2Hawk : IEmulator, ISaveRam, IDebuggable, IInputPollable, IRegionable, ISettable<O2Hawk.O2Settings, O2Hawk.O2SyncSettings>, IBoardInfo
{

View File

@ -14,7 +14,7 @@ using BizHawk.Common;
namespace BizHawk.Emulation.Cores.Consoles.NEC.PCFX
{
[Core("T. S. T.", "Mednafen Team", true, true, "1.24.3",
"https://mednafen.github.io/releases/", false)]
"https://mednafen.github.io/releases/", false, "PC-FX")]
public class Tst : NymaCore
{
[CoreConstructor("PCFX")]

View File

@ -6,7 +6,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink
"GBHawkLink",
"",
isPorted: false,
isReleased: true)]
isReleased: true,
displayName: "Gameboy")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class GBHawkLink : IEmulator, ISaveRam, IDebuggable, IStatable, IInputPollable, IRegionable, ILinkable,
ISettable<GBHawkLink.GBLinkSettings, GBHawkLink.GBLinkSyncSettings>

View File

@ -6,7 +6,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink3x
"GBHawkLink3x",
"",
isPorted: false,
isReleased: true)]
isReleased: true,
displayName: "Gameboy")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class GBHawkLink3x : IEmulator, ISaveRam, IDebuggable, IStatable, IInputPollable, IRegionable,
ISettable<GBHawkLink3x.GBLink3xSettings, GBHawkLink3x.GBLink3xSyncSettings>

View File

@ -6,7 +6,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink4x
"GBHawkLink4x",
"",
isPorted: false,
isReleased: true)]
isReleased: true,
displayName: "Gameboy")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class GBHawkLink4x : IEmulator, ISaveRam, IDebuggable, IStatable, IInputPollable, IRegionable,
ISettable<GBHawkLink4x.GBLink4xSettings, GBHawkLink4x.GBLink4xSyncSettings>

View File

@ -11,7 +11,7 @@ using System.Linq;
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB
{
[Core("Virtual Boyee", "Mednafen Team", true, true, "0.9.44.1",
"https://mednafen.github.io/releases/", false)]
"https://mednafen.github.io/releases/", false, "VirtualBoy")]
public class VirtualBoyee : WaterboxCore, ISettable<VirtualBoyee.Settings, VirtualBoyee.SyncSettings>
{
private LibVirtualBoyee _boyee;

View File

@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
namespace BizHawk.Emulation.Cores.Consoles.SNK
{
[Core("NeoPop", "Thomas Klausner, Mednafen Team", true, true, "1.24.3",
"https://mednafen.github.io/releases/", false)]
"https://mednafen.github.io/releases/", false, "NeoPop")]
public class NeoGeoPort : NymaCore,
ISaveRam // NGP provides its own saveram interface
{

View File

@ -7,7 +7,8 @@ namespace BizHawk.Emulation.Cores.Sega.GGHawkLink
"GGHawkLink",
"",
isPorted: false,
isReleased: false)]
isReleased: false,
displayName: "Game Gear")]
[ServiceNotApplicable(new[] { typeof(IDriveLight) })]
public partial class GGHawkLink : IEmulator, ISaveRam, IDebuggable, IStatable, IInputPollable, IRegionable, ILinkable,
ISettable<GGHawkLink.GGLinkSettings, GGHawkLink.GGLinkSyncSettings>

View File

@ -16,7 +16,7 @@ using System.Text;
namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
{
[Core("Saturnus", "Mednafen Team", true, true, "1.24.3",
"https://mednafen.github.io/releases/", false)]
"https://mednafen.github.io/releases/", false, "Saturn")]
public class Saturnus : NymaCore, IRegionable
{
[CoreConstructor("SAT")]

View File

@ -6,7 +6,7 @@ using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.WonderSwan
{
[Core("Cygne/Mednafen", "Dox, Mednafen Team", true, true, "1.24.3", "https://mednafen.github.io/releases/", false)]
[Core("Cygne/Mednafen", "Dox, Mednafen Team", true, true, "1.24.3", "https://mednafen.github.io/releases/", false, "WonderSwan")]
[ServiceNotApplicable(new[] { typeof(IDriveLight), typeof(IRegionable) })]
public partial class WonderSwan : IEmulator, IVideoProvider, ISoundProvider,
IInputPollable, IDebuggable