Move MainForm.SupportedPlatforms to Emulation.Common.SystemLookup
This commit is contained in:
parent
66a9b8eb5a
commit
7e763408e2
|
@ -601,51 +601,6 @@ namespace BizHawk.Client.EmuHawk
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: SystemInfo should be able to do this
|
|
||||||
// Because we don't have enough places where we list SystemID's
|
|
||||||
public Dictionary<string, string> SupportedPlatforms
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var released = new Dictionary<string, string>
|
|
||||||
{
|
|
||||||
{ "A26", "Atari 2600" },
|
|
||||||
{ "A78", "Atari 7800" },
|
|
||||||
{ "Lynx", "Atari Lynx" },
|
|
||||||
|
|
||||||
{ "NES", "Nintendo Entertainment System/Famicom" },
|
|
||||||
{ "SNES", "Super Nintendo" },
|
|
||||||
{ "N64", "Nintendo 64" },
|
|
||||||
|
|
||||||
{ "GB", "Game Boy" },
|
|
||||||
{ "GBC", "Game Boy Color" },
|
|
||||||
{ "GBA", "Gameboy Advance" },
|
|
||||||
|
|
||||||
{ "PSX", "Playstation" },
|
|
||||||
|
|
||||||
{ "SMS", "Sega Master System" },
|
|
||||||
{ "GG", "Sega Game Gear" },
|
|
||||||
{ "SG", "SG-1000" },
|
|
||||||
{ "GEN", "Sega Genesis/Megadrive" },
|
|
||||||
{ "SAT", "Sega Saturn" },
|
|
||||||
|
|
||||||
{ "PCE", "PC Engine/TurboGrafx 16" },
|
|
||||||
|
|
||||||
{ "Coleco", "Colecovision" },
|
|
||||||
{ "TI83", "TI-83 Calculator" },
|
|
||||||
|
|
||||||
{ "WSWAN", "WonderSwan" },
|
|
||||||
};
|
|
||||||
|
|
||||||
if (VersionInfo.DeveloperBuild)
|
|
||||||
{
|
|
||||||
released.Add("C64", "Commodore 64");
|
|
||||||
}
|
|
||||||
|
|
||||||
return released;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Public Methods
|
#region Public Methods
|
||||||
|
|
|
@ -7,6 +7,7 @@ using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
using BizHawk.Emulation.Common;
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
|
@ -27,8 +28,11 @@ namespace BizHawk.Client.EmuHawk
|
||||||
public PlatformChooser()
|
public PlatformChooser()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
AvailableSystems = new SystemLookup().AllSystems.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private readonly List<SystemLookup.SystemInfo> AvailableSystems;
|
||||||
|
|
||||||
private void PlatformChooser_Load(object sender, EventArgs e)
|
private void PlatformChooser_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (RomGame.RomData.Length > 10 * 1024 * 1024) // If 10mb, show in megabytes
|
if (RomGame.RomData.Length > 10 * 1024 * 1024) // If 10mb, show in megabytes
|
||||||
|
@ -44,11 +48,11 @@ namespace BizHawk.Client.EmuHawk
|
||||||
HashBox.Text = RomGame.GameInfo.Hash;
|
HashBox.Text = RomGame.GameInfo.Hash;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
int spacing = 25;
|
int spacing = 25;
|
||||||
foreach (var platform in GlobalWin.MainForm.SupportedPlatforms)
|
foreach (var platform in AvailableSystems)
|
||||||
{
|
{
|
||||||
var radio = new RadioButton
|
var radio = new RadioButton
|
||||||
{
|
{
|
||||||
Text = platform.Value,
|
Text = platform.FullName,
|
||||||
Location = UIHelper.Scale(new Point(15, 15 + (count * spacing))),
|
Location = UIHelper.Scale(new Point(15, 15 + (count * spacing))),
|
||||||
Size = UIHelper.Scale(new Size(200, 23))
|
Size = UIHelper.Scale(new Size(200, 23))
|
||||||
};
|
};
|
||||||
|
@ -71,7 +75,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
private void OkBtn_Click(object sender, EventArgs e)
|
private void OkBtn_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var selectedValue = SelectedRadio != null ? SelectedRadio.Text : string.Empty;
|
var selectedValue = SelectedRadio != null ? SelectedRadio.Text : string.Empty;
|
||||||
PlatformChoice = GlobalWin.MainForm.SupportedPlatforms.FirstOrDefault(x => x.Value == selectedValue).Key;
|
PlatformChoice = AvailableSystems.FirstOrDefault(x => x.FullName == selectedValue).SystemId;
|
||||||
|
|
||||||
if (AlwaysCheckbox.Checked)
|
if (AlwaysCheckbox.Checked)
|
||||||
{
|
{
|
||||||
|
|
|
@ -7,6 +7,7 @@ using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
using BizHawk.Emulation.Common;
|
||||||
using BizHawk.Client.Common;
|
using BizHawk.Client.Common;
|
||||||
|
|
||||||
namespace BizHawk.Client.EmuHawk
|
namespace BizHawk.Client.EmuHawk
|
||||||
|
@ -16,8 +17,11 @@ namespace BizHawk.Client.EmuHawk
|
||||||
public FileExtensionPreferencesPicker()
|
public FileExtensionPreferencesPicker()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
AvailableSystems = new SystemLookup().AllSystems.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private readonly List<SystemLookup.SystemInfo> AvailableSystems;
|
||||||
|
|
||||||
public string FileExtension { get; set; }
|
public string FileExtension { get; set; }
|
||||||
public string OriginalPreference { get; set; }
|
public string OriginalPreference { get; set; }
|
||||||
|
|
||||||
|
@ -27,8 +31,8 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
if (PlatformDropdown.SelectedIndex > 0)
|
if (PlatformDropdown.SelectedIndex > 0)
|
||||||
{
|
{
|
||||||
return GlobalWin.MainForm.SupportedPlatforms
|
return AvailableSystems
|
||||||
.FirstOrDefault(x => x.Value == PlatformDropdown.SelectedItem.ToString()).Key;
|
.FirstOrDefault(x => x.SystemId == PlatformDropdown.SelectedItem.ToString()).FullName;
|
||||||
}
|
}
|
||||||
|
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
|
@ -38,9 +42,9 @@ namespace BizHawk.Client.EmuHawk
|
||||||
private void PopulatePlatforms()
|
private void PopulatePlatforms()
|
||||||
{
|
{
|
||||||
PlatformDropdown.Items.Add("Ask me on load");
|
PlatformDropdown.Items.Add("Ask me on load");
|
||||||
foreach (var platform in GlobalWin.MainForm.SupportedPlatforms)
|
foreach (var platform in AvailableSystems)
|
||||||
{
|
{
|
||||||
PlatformDropdown.Items.Add(platform.Value);
|
PlatformDropdown.Items.Add(platform.FullName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +56,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
|
|
||||||
foreach (var val in dispVals)
|
foreach (var val in dispVals)
|
||||||
{
|
{
|
||||||
yield return GlobalWin.MainForm.SupportedPlatforms.FirstOrDefault(x => x.Value == val).Key ?? string.Empty;
|
yield return AvailableSystems.FirstOrDefault(x => x.FullName == val).SystemId ?? string.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,11 +68,11 @@ namespace BizHawk.Client.EmuHawk
|
||||||
var selectedSystemId = Global.Config.PreferredPlatformsForExtensions[FileExtension];
|
var selectedSystemId = Global.Config.PreferredPlatformsForExtensions[FileExtension];
|
||||||
if (!string.IsNullOrEmpty(selectedSystemId))
|
if (!string.IsNullOrEmpty(selectedSystemId))
|
||||||
{
|
{
|
||||||
var selectedDispString = GlobalWin.MainForm.SupportedPlatforms[selectedSystemId];
|
var selectedSystem = AvailableSystems.FirstOrDefault(s => s.SystemId == selectedSystemId);
|
||||||
|
|
||||||
var selectedItem = PlatformDropdown.Items
|
var selectedItem = PlatformDropdown.Items
|
||||||
.OfType<string>()
|
.OfType<string>()
|
||||||
.FirstOrDefault(item => item == selectedDispString);
|
.FirstOrDefault(item => item == (selectedSystem != null ? selectedSystem.FullName : string.Empty));
|
||||||
|
|
||||||
if (selectedItem != null)
|
if (selectedItem != null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -109,6 +109,7 @@
|
||||||
<Compile Include="Sound\VRC6Alt.cs" />
|
<Compile Include="Sound\VRC6Alt.cs" />
|
||||||
<Compile Include="Sound\YM2413.cs" />
|
<Compile Include="Sound\YM2413.cs" />
|
||||||
<Compile Include="Sound\YM2612.cs" />
|
<Compile Include="Sound\YM2612.cs" />
|
||||||
|
<Compile Include="SystemLookup.cs" />
|
||||||
<Compile Include="TextState.cs" />
|
<Compile Include="TextState.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
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<SystemInfo> Systems = new List<SystemInfo>
|
||||||
|
{
|
||||||
|
new SystemInfo { SystemId = "A26", FullName = "Atari 2600" },
|
||||||
|
new SystemInfo { SystemId = "A78", FullName = "Atari 7800" },
|
||||||
|
new SystemInfo { SystemId = "Lynx", FullName = "Atari Lynx" },
|
||||||
|
|
||||||
|
new SystemInfo { SystemId = "NES", FullName = "NES" },
|
||||||
|
new SystemInfo { SystemId = "SNES", FullName = "Super NES" },
|
||||||
|
new SystemInfo { SystemId = "N64", FullName = "Nintendo 64" },
|
||||||
|
|
||||||
|
new SystemInfo { SystemId = "GB", FullName = "Gameboy" },
|
||||||
|
new SystemInfo { SystemId = "GBA", FullName = "Gameboy Advance" },
|
||||||
|
|
||||||
|
new SystemInfo { SystemId = "PSX", FullName = "Playstation" },
|
||||||
|
|
||||||
|
new SystemInfo { SystemId = "SMS", FullName = "Sega Master System" },
|
||||||
|
new SystemInfo { SystemId = "GEN", FullName = "Sega Genesis/Megadrive" },
|
||||||
|
new SystemInfo { SystemId = "SAT", FullName = "Sega Saturn" },
|
||||||
|
|
||||||
|
new SystemInfo { SystemId = "PCE", FullName = "PC Engine/TurboGrafx 16" },
|
||||||
|
new SystemInfo { SystemId = "Coleco", FullName = "Colecovision" },
|
||||||
|
new SystemInfo { SystemId = "TI83", FullName = "TI-83 Calculator" },
|
||||||
|
new SystemInfo { SystemId = "WSWAN", FullName = "WonderSwan" },
|
||||||
|
|
||||||
|
new SystemInfo { SystemId = "C64", FullName = "Commodore 64" }
|
||||||
|
};
|
||||||
|
|
||||||
|
public SystemInfo this[string systemId]
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var system = Systems.FirstOrDefault(s => s.SystemId == systemId);
|
||||||
|
|
||||||
|
if (system != null)
|
||||||
|
{
|
||||||
|
return system;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new SystemInfo { SystemId = "Unknown", FullName = "Unknown" };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<SystemInfo> AllSystems
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (VersionInfo.DeveloperBuild)
|
||||||
|
{
|
||||||
|
return Systems;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Systems.Where(s => s.SystemId != "C64");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SystemInfo
|
||||||
|
{
|
||||||
|
public string SystemId { get; set; }
|
||||||
|
public string FullName { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue