diff --git a/src/BizHawk.Client.EmuHawk/PlatformChooser.cs b/src/BizHawk.Client.EmuHawk/PlatformChooser.cs index 5a47d7b5eb..09b4bb6611 100644 --- a/src/BizHawk.Client.EmuHawk/PlatformChooser.cs +++ b/src/BizHawk.Client.EmuHawk/PlatformChooser.cs @@ -1,18 +1,16 @@ -using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Windows.Forms; using BizHawk.Emulation.Common; using BizHawk.Client.Common; +using BizHawk.Common; namespace BizHawk.Client.EmuHawk { public partial class PlatformChooser : Form { private readonly Config _config; - private readonly List _availableSystems = new SystemLookup().AllSystems.ToList(); - public PlatformChooser(Config config) { @@ -35,11 +33,11 @@ namespace BizHawk.Client.EmuHawk HashBox.Text = RomGame.GameInfo.Hash; int count = 0; int spacing = 25; - foreach (var platform in _availableSystems) + foreach (var (systemId, fullName) in EmulatorExtensions.SystemIDDisplayNames) { var radio = new RadioButton { - Text = platform.FullName, + Text = fullName, Location = UIHelper.Scale(new Point(15, 15 + (count * spacing))), Size = UIHelper.Scale(new Size(200, 23)) }; @@ -62,7 +60,7 @@ namespace BizHawk.Client.EmuHawk private void OkBtn_Click(object sender, EventArgs e) { var selectedValue = SelectedRadio != null ? SelectedRadio.Text : ""; - PlatformChoice = _availableSystems.First(x => x.FullName == selectedValue).SystemId; + PlatformChoice = EmulatorExtensions.SystemIDDisplayNames.First(x => x.Value == selectedValue).Key; if (AlwaysCheckbox.Checked) { diff --git a/src/BizHawk.Client.EmuHawk/config/FileExtensionPreferencesPicker.cs b/src/BizHawk.Client.EmuHawk/config/FileExtensionPreferencesPicker.cs index f4d31cec3b..d1032bce46 100644 --- a/src/BizHawk.Client.EmuHawk/config/FileExtensionPreferencesPicker.cs +++ b/src/BizHawk.Client.EmuHawk/config/FileExtensionPreferencesPicker.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Windows.Forms; +using BizHawk.Common; using BizHawk.Emulation.Common; namespace BizHawk.Client.EmuHawk @@ -13,12 +14,9 @@ namespace BizHawk.Client.EmuHawk public FileExtensionPreferencesPicker(IDictionary preferredPlatformsForExtensions) { _preferredPlatformsForExtensions = preferredPlatformsForExtensions; - _availableSystems = new SystemLookup().AllSystems.ToList(); InitializeComponent(); } - private readonly List _availableSystems; - public string FileExtension { get; set; } public string OriginalPreference { get; set; } @@ -28,8 +26,8 @@ namespace BizHawk.Client.EmuHawk { if (PlatformDropdown.SelectedIndex > 0) { - return _availableSystems - .First(x => x.FullName == PlatformDropdown.SelectedItem.ToString()).SystemId; + return EmulatorExtensions.SystemIDDisplayNames + .First(x => x.Value == PlatformDropdown.SelectedItem.ToString()).Key; } return ""; @@ -39,9 +37,9 @@ namespace BizHawk.Client.EmuHawk private void PopulatePlatforms() { PlatformDropdown.Items.Add("Ask me on load"); - foreach (var platform in _availableSystems) + foreach (var (systemId, fullName) in EmulatorExtensions.SystemIDDisplayNames) { - PlatformDropdown.Items.Add(platform.FullName); + PlatformDropdown.Items.Add(fullName); } } @@ -52,8 +50,8 @@ namespace BizHawk.Client.EmuHawk var selectedSystemId = _preferredPlatformsForExtensions[FileExtension]; if (!string.IsNullOrEmpty(selectedSystemId)) { - var selectedSystem = _availableSystems.Find(s => s.SystemId == selectedSystemId)?.FullName ?? string.Empty; - if (PlatformDropdown.Items.Contains(selectedSystem)) + if (EmulatorExtensions.SystemIDDisplayNames.TryGetValue(selectedSystemId, out string selectedSystem) + && PlatformDropdown.Items.Contains(selectedSystem)) { PlatformDropdown.SelectedItem = selectedSystem; } diff --git a/src/BizHawk.Emulation.Common/SystemLookup.cs b/src/BizHawk.Emulation.Common/SystemLookup.cs deleted file mode 100644 index 5332a73c3d..0000000000 --- a/src/BizHawk.Emulation.Common/SystemLookup.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System.Collections.Generic; - -namespace BizHawk.Emulation.Common -{ - // TODO: This should build itself from the Cores assembly, we don't want to maintain this - public class SystemLookup - { - private readonly List _systems = new List - { - new(VSystemID.Raw.A26, "Atari 2600"), - new(VSystemID.Raw.A78, "Atari 7800"), - new(VSystemID.Raw.Jaguar, "Atari Jaguar"), - new(VSystemID.Raw.Lynx, "Atari Lynx"), - new(VSystemID.Raw.NES, "NES"), - new(VSystemID.Raw.SNES, "Super NES"), - new(VSystemID.Raw.N64, "Nintendo 64"), - new(VSystemID.Raw.GB, "Gameboy"), - new(VSystemID.Raw.GBA, "Gameboy Advance"), - new(VSystemID.Raw.PSX, "Playstation"), - new(VSystemID.Raw.SMS, "Sega Master System"), - new(VSystemID.Raw.GEN, "Sega Genesis/Mega Drive"), - new(VSystemID.Raw.Sega32X, "Sega Genesis 32X/Mega Drive 32X"), - new(VSystemID.Raw.SAT, "Sega Saturn"), - new(VSystemID.Raw.PCE, "PC Engine/TurboGrafx 16"), - new(VSystemID.Raw.Coleco, "ColecoVision"), - new(VSystemID.Raw.TI83, "TI-83 Calculator"), - new(VSystemID.Raw.WSWAN, "WonderSwan"), - new(VSystemID.Raw.C64, "Commodore 64"), - new(VSystemID.Raw.AppleII, "Apple II"), - new(VSystemID.Raw.INTV, "IntelliVision"), - new(VSystemID.Raw.ZXSpectrum, "Sinclair ZX Spectrum"), - new(VSystemID.Raw.AmstradCPC, "Amstrad CPC"), - new(VSystemID.Raw.ChannelF, "Fairchild Channel F"), - new(VSystemID.Raw.O2, "Odyssey2"), - new(VSystemID.Raw.VEC, "Vectrex"), - new(VSystemID.Raw.MSX, "MSX"), - new(VSystemID.Raw.NDS, "Nintendo DS") - }; - - public SystemInfo this[string systemId] - => _systems.Find(s => s.SystemId == systemId) ?? new("Unknown", "Unknown"); - - public IEnumerable AllSystems => _systems; - - public class SystemInfo - { - public SystemInfo(string systemId, string fullName) - { - SystemId = systemId; - FullName = fullName; - } - - public string SystemId { get; } - public string FullName { get; } - } - } -}