diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
index 9a7aa2f8b2..ba4645f2f1 100644
--- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
+++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
@@ -498,6 +498,7 @@
+
diff --git a/BizHawk.Client.EmuHawk/Extensions/CoreExtensions.cs b/BizHawk.Client.EmuHawk/Extensions/CoreExtensions.cs
new file mode 100644
index 0000000000..3b88af5018
--- /dev/null
+++ b/BizHawk.Client.EmuHawk/Extensions/CoreExtensions.cs
@@ -0,0 +1,88 @@
+using System.Drawing;
+
+using BizHawk.Emulation.Common;
+using BizHawk.Emulation.Common.IEmulatorExtensions;
+
+using BizHawk.Emulation.Cores.Atari.Atari7800;
+using BizHawk.Emulation.Cores.Nintendo.GBA;
+using BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES;
+using BizHawk.Emulation.Cores.Nintendo.SNES;
+using BizHawk.Emulation.Cores.Nintendo.Gameboy;
+using BizHawk.Emulation.Cores.Nintendo.SNES9X;
+using BizHawk.Emulation.Cores.Sega.Saturn;
+using BizHawk.Emulation.Cores.Consoles.Sega.gpgx;
+using BizHawk.Emulation.Cores.Sony.PSP;
+
+using BizHawk.Client.Common;
+
+namespace BizHawk.Client.EmuHawk.CoreExtensions
+{
+ public static class CoreExtensions
+ {
+ public static Bitmap Icon(this IEmulator core)
+ {
+ var attributes = Global.Emulator.Attributes();
+
+ if (!attributes.Ported)
+ {
+ return Properties.Resources.CorpHawkSmall;
+ }
+
+ if (Global.Emulator is QuickNES)
+ {
+ return Properties.Resources.QuickNes;
+ }
+ else if (Global.Emulator is LibsnesCore)
+ {
+ return Properties.Resources.bsnes;
+ }
+ else if (Global.Emulator is Yabause)
+ {
+ return Properties.Resources.yabause;
+ }
+ else if (Global.Emulator is Atari7800)
+ {
+ return Properties.Resources.emu7800;
+ }
+ else if (Global.Emulator is GBA)
+ {
+ return Properties.Resources.meteor;
+ }
+ else if (Global.Emulator is GPGX)
+ {
+ return Properties.Resources.genplus;
+ }
+ else if (Global.Emulator is PSP)
+ {
+ return Properties.Resources.ppsspp;
+ }
+ else if (Global.Emulator is Gameboy)
+ {
+ return Properties.Resources.gambatte;
+ }
+ else if (Global.Emulator is Snes9x)
+ {
+ return Properties.Resources.snes9x;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ public static string DisplayName(this IEmulator core)
+ {
+ var attributes = Global.Emulator.Attributes();
+
+ var str = (!attributes.Released ? "(Experimental) " : string.Empty) +
+ attributes.CoreName;
+
+ if (Global.Emulator is LibsnesCore)
+ {
+ str += " (" + ((LibsnesCore.SnesSyncSettings)Global.Emulator.GetSyncSettings()).Profile + ")";
+ }
+
+ return str;
+ }
+ }
+}
diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs
index cac70f210c..195fa65bc6 100644
--- a/BizHawk.Client.EmuHawk/MainForm.cs
+++ b/BizHawk.Client.EmuHawk/MainForm.cs
@@ -18,7 +18,6 @@ using BizHawk.Bizware.BizwareGL;
using BizHawk.Emulation.Common;
using BizHawk.Emulation.Common.IEmulatorExtensions;
using BizHawk.Emulation.Cores.Atari.Atari2600;
-using BizHawk.Emulation.Cores.Atari.Atari7800;
using BizHawk.Emulation.Cores.Calculators;
using BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES;
using BizHawk.Emulation.Cores.Consoles.Sega.gpgx;
@@ -28,14 +27,12 @@ using BizHawk.Emulation.Cores.Nintendo.NES;
using BizHawk.Emulation.Cores.Nintendo.SNES;
using BizHawk.Emulation.Cores.PCEngine;
using BizHawk.Emulation.Cores.Sega.MasterSystem;
-using BizHawk.Emulation.Cores.Sega.Saturn;
-using BizHawk.Emulation.Cores.Sony.PSP;
using BizHawk.Emulation.DiscSystem;
using BizHawk.Emulation.Cores.Nintendo.N64;
using BizHawk.Client.EmuHawk.WinFormExtensions;
using BizHawk.Client.EmuHawk.ToolExtensions;
-using BizHawk.Emulation.Cores.Nintendo.SNES9X;
+using BizHawk.Client.EmuHawk.CoreExtensions;
namespace BizHawk.Client.EmuHawk
{
@@ -2450,62 +2447,11 @@ namespace BizHawk.Client.EmuHawk
}
CoreNameStatusBarButton.Visible = true;
- CoreAttributes attributes = Global.Emulator.Attributes();
-
- CoreNameStatusBarButton.Text =
- (!attributes.Released ? "(Experimental) " : string.Empty) +
- attributes.CoreName;
+ var attributes = Global.Emulator.Attributes();
+ CoreNameStatusBarButton.Text = Global.Emulator.DisplayName();
+ CoreNameStatusBarButton.Image = Global.Emulator.Icon();
CoreNameStatusBarButton.ToolTipText = attributes.Ported ? "(ported) " : string.Empty;
-
- if (!attributes.Ported)
- {
- CoreNameStatusBarButton.Image = Properties.Resources.CorpHawkSmall;
- }
- else
- {
- if (Global.Emulator is QuickNES)
- {
- CoreNameStatusBarButton.Image = Properties.Resources.QuickNes;
- }
- else if (Global.Emulator is LibsnesCore)
- {
- CoreNameStatusBarButton.Image = Properties.Resources.bsnes;
- CoreNameStatusBarButton.Text += " (" + ((LibsnesCore.SnesSyncSettings)Global.Emulator.GetSyncSettings()).Profile + ")";
- }
- else if (Global.Emulator is Yabause)
- {
- CoreNameStatusBarButton.Image = Properties.Resources.yabause;
- }
- else if (Global.Emulator is Atari7800)
- {
- CoreNameStatusBarButton.Image = Properties.Resources.emu7800;
- }
- else if (Global.Emulator is GBA)
- {
- CoreNameStatusBarButton.Image = Properties.Resources.meteor;
- }
- else if (Global.Emulator is GPGX)
- {
- CoreNameStatusBarButton.Image = Properties.Resources.genplus;
- }
- else if (Global.Emulator is PSP)
- {
- CoreNameStatusBarButton.Image = Properties.Resources.ppsspp;
- }
- else if (Global.Emulator is Gameboy)
- {
- CoreNameStatusBarButton.Image = Properties.Resources.gambatte;
- }
- else if (Global.Emulator is Snes9x)
- {
- CoreNameStatusBarButton.Image = Properties.Resources.snes9x;
- }
- else
- {
- CoreNameStatusBarButton.Image = null;
- }
- }
}
#endregion