diff --git a/MPF.Check/Program.cs b/MPF.Check/Program.cs
index bc0adb8b..f5a32839 100644
--- a/MPF.Check/Program.cs
+++ b/MPF.Check/Program.cs
@@ -1,9 +1,11 @@
using System;
using System.IO;
+using System.Linq;
using BurnOutSharp;
using MPF.Converters;
using MPF.Data;
using MPF.Utilities;
+using RedumpLib.Data;
using RedumpLib.Web;
namespace MPF.Check
@@ -34,7 +36,7 @@ namespace MPF.Check
}
else if (args[0] == "-ls" || args[0] == "--listsystems")
{
- ListKnownSystems();
+ ListSystems();
Console.ReadLine();
return;
}
@@ -54,9 +56,9 @@ namespace MPF.Check
return;
}
- // Check the KnownSystem
- var knownSystem = EnumConverter.ToKnownSystem(args[1].Trim('"'));
- if (knownSystem == KnownSystem.NONE)
+ // Check the RedumpSystem
+ var knownSystem = Extensions.ToRedumpSystem(args[1].Trim('"'));
+ if (knownSystem == null)
{
DisplayHelp($"{args[1]} is not a recognized system");
return;
@@ -244,17 +246,19 @@ namespace MPF.Check
}
///
- /// List all known systems with their short usable names
+ /// List all systems with their short usable names
///
- private static void ListKnownSystems()
+ private static void ListSystems()
{
Console.WriteLine("Supported Known Systems:");
- foreach (var val in Enum.GetValues(typeof(KnownSystem)))
- {
- if (((KnownSystem)val) == KnownSystem.NONE)
- continue;
+ var knownSystems = Enum.GetValues(typeof(RedumpSystem))
+ .OfType()
+ .Where(s => s != null && !s.IsMarker() && s.GetCategory() != SystemCategory.NONE)
+ .OrderBy(s => s.LongName() ?? string.Empty);
- Console.WriteLine($"{((KnownSystem?)val).ShortName()} - {((KnownSystem?)val).LongName()}");
+ foreach (var val in knownSystems)
+ {
+ Console.WriteLine($"{val.ShortName()} - {val.LongName()}");
}
}
diff --git a/MPF.Library/Aaru/Parameters.cs b/MPF.Library/Aaru/Parameters.cs
index 7133cec2..84579398 100644
--- a/MPF.Library/Aaru/Parameters.cs
+++ b/MPF.Library/Aaru/Parameters.cs
@@ -128,7 +128,7 @@ namespace MPF.Aaru
public Parameters(string parameters) : base(parameters) { }
///
- public Parameters(KnownSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
+ public Parameters(RedumpSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
: base(system, type, driveLetter, filename, driveSpeed, options)
{
}
@@ -263,12 +263,12 @@ namespace MPF.Aaru
// TODO: Can we get PS1 EDC status?
// TODO: Can we get PS1 LibCrypt status?
- case KnownSystem.DVDAudio:
- case KnownSystem.DVDVideo:
+ case RedumpSystem.DVDAudio:
+ case RedumpSystem.DVDVideo:
info.CopyProtection.Protection = GetDVDProtection(sidecar) ?? "";
break;
- case KnownSystem.KonamiPython2:
+ case RedumpSystem.KonamiPython2:
if (GetPlayStationExecutableInfo(drive?.Letter, out string pythonTwoSerial, out Region? pythonTwoRegion, out string pythonTwoDate))
{
info.CommonDiscInfo.Comments += $"Internal Disc Serial: {pythonTwoSerial}\n";
@@ -279,7 +279,7 @@ namespace MPF.Aaru
info.VersionAndEditions.Version = GetPlayStation2Version(drive?.Letter) ?? "";
break;
- case KnownSystem.MicrosoftXBOX:
+ case RedumpSystem.MicrosoftXbox:
if (GetXgdAuxInfo(sidecar, out string dmihash, out string pfihash, out string sshash, out string ss, out string ssver))
{
info.CommonDiscInfo.Comments += $"{Template.XBOXDMIHash}: {dmihash ?? ""}\n" +
@@ -298,7 +298,7 @@ namespace MPF.Aaru
break;
- case KnownSystem.MicrosoftXBOX360:
+ case RedumpSystem.MicrosoftXbox360:
if (GetXgdAuxInfo(sidecar, out string dmi360hash, out string pfi360hash, out string ss360hash, out string ss360, out string ssver360))
{
info.CommonDiscInfo.Comments += $"{Template.XBOXDMIHash}: {dmi360hash ?? ""}\n" +
@@ -316,7 +316,7 @@ namespace MPF.Aaru
}
break;
- case KnownSystem.SonyPlayStation:
+ case RedumpSystem.SonyPlayStation:
if (GetPlayStationExecutableInfo(drive?.Letter, out string playstationSerial, out Region? playstationRegion, out string playstationDate))
{
info.CommonDiscInfo.Comments += $"Internal Disc Serial: {playstationSerial}\n";
@@ -327,7 +327,7 @@ namespace MPF.Aaru
info.CopyProtection.AntiModchip = GetPlayStationAntiModchipDetected(drive?.Letter) ? YesNo.Yes : YesNo.No;
break;
- case KnownSystem.SonyPlayStation2:
+ case RedumpSystem.SonyPlayStation2:
if (GetPlayStationExecutableInfo(drive?.Letter, out string playstationTwoSerial, out Region? playstationTwoRegion, out string playstationTwoDate))
{
info.CommonDiscInfo.Comments += $"Internal Disc Serial: {playstationTwoSerial}\n";
@@ -338,11 +338,11 @@ namespace MPF.Aaru
info.VersionAndEditions.Version = GetPlayStation2Version(drive?.Letter) ?? "";
break;
- case KnownSystem.SonyPlayStation4:
+ case RedumpSystem.SonyPlayStation4:
info.VersionAndEditions.Version = GetPlayStation4Version(drive?.Letter) ?? "";
break;
- case KnownSystem.SonyPlayStation5:
+ case RedumpSystem.SonyPlayStation5:
info.VersionAndEditions.Version = GetPlayStation5Version(drive?.Letter) ?? "";
break;
}
diff --git a/MPF.Library/CleanRIp/Parameters.cs b/MPF.Library/CleanRIp/Parameters.cs
index 79768e9a..f9cda276 100644
--- a/MPF.Library/CleanRIp/Parameters.cs
+++ b/MPF.Library/CleanRIp/Parameters.cs
@@ -23,7 +23,7 @@ namespace MPF.CleanRip
public Parameters(string parameters) : base(parameters) { }
///
- public Parameters(KnownSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
+ public Parameters(RedumpSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
: base(system, type, driveLetter, filename, driveSpeed, options)
{
}
diff --git a/MPF.Library/Converters/EnumConverter.cs b/MPF.Library/Converters/EnumConverter.cs
index d8f2fd97..0e4b0207 100644
--- a/MPF.Library/Converters/EnumConverter.cs
+++ b/MPF.Library/Converters/EnumConverter.cs
@@ -16,6 +16,40 @@ namespace MPF.Converters
{
#region Cross-enumeration conversions
+ ///
+ /// Convert master list of all media types to currently known Redump disc types
+ ///
+ /// MediaType value to check
+ /// DiscType if possible, null on error
+ public static DiscType? ToDiscType(this MediaType? mediaType)
+ {
+ switch (mediaType)
+ {
+ case MediaType.BluRay:
+ return DiscType.BD50;
+ case MediaType.CDROM:
+ return DiscType.CD;
+ case MediaType.DVD:
+ return DiscType.DVD9;
+ case MediaType.GDROM:
+ return DiscType.GDROM;
+ case MediaType.HDDVD:
+ return DiscType.HDDVDSL;
+ // case MediaType.MILCD: // TODO: Support this?
+ // return DiscType.MILCD;
+ case MediaType.NintendoGameCubeGameDisc:
+ return DiscType.NintendoGameCubeGameDisc;
+ case MediaType.NintendoWiiOpticalDisc:
+ return DiscType.NintendoWiiOpticalDiscDL;
+ case MediaType.NintendoWiiUOpticalDisc:
+ return DiscType.NintendoWiiUOpticalDiscSL;
+ case MediaType.UMD:
+ return DiscType.UMDDL;
+ default:
+ return null;
+ }
+ }
+
///
/// Convert drive type to internal version, if possible
///
@@ -36,181 +70,6 @@ namespace MPF.Converters
}
}
- ///
- /// Convert currently known Redump systems to the master list of systems
- ///
- /// Redump system value to check
- /// KnownSystem if possible, null on error
- public static KnownSystem? ToKnownSystem(this RedumpSystem? system)
- {
- switch (system)
- {
- // Special BIOS sets
- case RedumpSystem.MicrosoftXboxBIOS:
- return KnownSystem.MicrosoftXBOX;
- case RedumpSystem.NintendoGameCubeBIOS:
- return KnownSystem.NintendoGameCube;
- case RedumpSystem.SonyPlayStationBIOS:
- return KnownSystem.SonyPlayStation;
- case RedumpSystem.SonyPlayStation2BIOS:
- return KnownSystem.SonyPlayStation2;
-
- // Regular systems
- case RedumpSystem.AcornArchimedes:
- return KnownSystem.AcornArchimedes;
- case RedumpSystem.AppleMacintosh:
- return KnownSystem.AppleMacintosh;
- case RedumpSystem.AudioCD:
- return KnownSystem.AudioCD;
- case RedumpSystem.BandaiPippin:
- return KnownSystem.BandaiApplePippin;
- case RedumpSystem.BandaiPlaydiaQuickInteractiveSystem:
- return KnownSystem.BandaiPlaydiaQuickInteractiveSystem;
- case RedumpSystem.BDVideo:
- return KnownSystem.BDVideo;
- case RedumpSystem.CommodoreAmigaCD:
- return KnownSystem.CommodoreAmiga;
- case RedumpSystem.CommodoreAmigaCD32:
- return KnownSystem.CommodoreAmigaCD32;
- case RedumpSystem.CommodoreAmigaCDTV:
- return KnownSystem.CommodoreAmigaCDTV;
- case RedumpSystem.DVDVideo:
- return KnownSystem.DVDVideo;
- case RedumpSystem.EnhancedCD:
- return KnownSystem.EnhancedCD;
- case RedumpSystem.FujitsuFMTownsseries:
- return KnownSystem.FujitsuFMTowns;
- case RedumpSystem.funworldPhotoPlay:
- return KnownSystem.funworldPhotoPlay;
- case RedumpSystem.HasbroVideoNow:
- return KnownSystem.HasbroVideoNow;
- case RedumpSystem.HasbroVideoNowColor:
- return KnownSystem.HasbroVideoNowColor;
- case RedumpSystem.HasbroVideoNowJr:
- return KnownSystem.HasbroVideoNowJr;
- case RedumpSystem.HasbroVideoNowXP:
- return KnownSystem.HasbroVideoNowXP;
- case RedumpSystem.HDDVDVideo:
- return KnownSystem.HDDVDVideo;
- case RedumpSystem.IBMPCcompatible:
- return KnownSystem.IBMPCCompatible;
- case RedumpSystem.IncredibleTechnologiesEagle:
- return KnownSystem.IncredibleTechnologiesEagle;
- case RedumpSystem.KonamieAmusement:
- return KnownSystem.KonamieAmusement;
- case RedumpSystem.KonamiFireBeat:
- return KnownSystem.KonamiFirebeat;
- case RedumpSystem.KonamiM2:
- return KnownSystem.KonamiM2;
- case RedumpSystem.KonamiSystem573:
- return KnownSystem.KonamiSystem573;
- case RedumpSystem.KonamiSystemGV:
- return KnownSystem.KonamiGVSystem;
- case RedumpSystem.KonamiTwinkle:
- return KnownSystem.KonamiTwinkle;
- case RedumpSystem.MattelFisherPriceiXL:
- return KnownSystem.MattelFisherPriceiXL;
- case RedumpSystem.MattelHyperScan:
- return KnownSystem.MattelHyperscan;
- case RedumpSystem.MemorexVisualInformationSystem:
- return KnownSystem.TandyMemorexVisualInformationSystem;
- case RedumpSystem.MicrosoftXbox:
- return KnownSystem.MicrosoftXBOX;
- case RedumpSystem.MicrosoftXbox360:
- return KnownSystem.MicrosoftXBOX360;
- case RedumpSystem.MicrosoftXboxOne:
- return KnownSystem.MicrosoftXBOXOne;
- case RedumpSystem.NECPC88series:
- return KnownSystem.NECPC88;
- case RedumpSystem.NECPC98series:
- return KnownSystem.NECPC98;
- case RedumpSystem.NECPCEngineCDTurboGrafxCD:
- return KnownSystem.NECPCEngineTurboGrafxCD;
- case RedumpSystem.NECPCFXPCFXGA:
- return KnownSystem.NECPCFX;
- case RedumpSystem.NamcoSegaNintendoTriforce:
- return KnownSystem.NamcoSegaNintendoTriforce;
- case RedumpSystem.NamcoSystem12:
- return KnownSystem.NamcoSystem12;
- case RedumpSystem.NamcoSystem246:
- return KnownSystem.NamcoCapcomTaitoSystem246;
- case RedumpSystem.NavisoftNaviken21:
- return KnownSystem.NavisoftNaviken21;
- case RedumpSystem.NintendoGameCube:
- return KnownSystem.NintendoGameCube;
- case RedumpSystem.NintendoWii:
- return KnownSystem.NintendoWii;
- case RedumpSystem.NintendoWiiU:
- return KnownSystem.NintendoWiiU;
- case RedumpSystem.PalmOS:
- return KnownSystem.PalmOS;
- case RedumpSystem.Panasonic3DOInteractiveMultiplayer:
- return KnownSystem.Panasonic3DOInteractiveMultiplayer;
- case RedumpSystem.PanasonicM2:
- return KnownSystem.PanasonicM2;
- case RedumpSystem.PhilipsCDi:
- return KnownSystem.PhilipsCDi;
- case RedumpSystem.PhotoCD:
- return KnownSystem.PhotoCD;
- case RedumpSystem.PlayStationGameSharkUpdates:
- return KnownSystem.PlayStationGameSharkUpdates;
- case RedumpSystem.PocketPC:
- return KnownSystem.PocketPC;
- case RedumpSystem.SegaChihiro:
- return KnownSystem.SegaChihiro;
- case RedumpSystem.SegaDreamcast:
- return KnownSystem.SegaDreamcast;
- case RedumpSystem.SegaLindbergh:
- return KnownSystem.SegaLindbergh;
- case RedumpSystem.SegaMegaCDSegaCD:
- return KnownSystem.SegaCDMegaCD;
- case RedumpSystem.SegaNaomi:
- return KnownSystem.SegaNaomi;
- case RedumpSystem.SegaNaomi2:
- return KnownSystem.SegaNaomi2;
- case RedumpSystem.SegaPrologue21MultimediaKaraokeSystem:
- return KnownSystem.SegaPrologue21;
- case RedumpSystem.SegaRingEdge:
- return KnownSystem.SegaRingEdge;
- case RedumpSystem.SegaRingEdge2:
- return KnownSystem.SegaRingEdge2;
- case RedumpSystem.SegaSaturn:
- return KnownSystem.SegaSaturn;
- case RedumpSystem.SegaTitanVideo:
- return KnownSystem.SegaTitanVideo;
- case RedumpSystem.SharpX68000:
- return KnownSystem.SharpX68000;
- case RedumpSystem.SNKNeoGeoCD:
- return KnownSystem.SNKNeoGeoCD;
- case RedumpSystem.SonyPlayStation:
- return KnownSystem.SonyPlayStation;
- case RedumpSystem.SonyPlayStation2:
- return KnownSystem.SonyPlayStation2;
- case RedumpSystem.SonyPlayStation3:
- return KnownSystem.SonyPlayStation3;
- case RedumpSystem.SonyPlayStation4:
- return KnownSystem.SonyPlayStation4;
- case RedumpSystem.SonyPlayStationPortable:
- return KnownSystem.SonyPlayStationPortable;
- case RedumpSystem.TABAustriaQuizard:
- return KnownSystem.TABAustriaQuizard;
- case RedumpSystem.TaoiKTV:
- return KnownSystem.TaoiKTV;
- case RedumpSystem.TomyKissSite:
- return KnownSystem.TomyKissSite;
- case RedumpSystem.VideoCD:
- return KnownSystem.VideoCD;
- case RedumpSystem.VMLabsNUON:
- return KnownSystem.VMLabsNuon;
- case RedumpSystem.VTechVFlashVSmilePro:
- return KnownSystem.VTechVFlashVSmilePro;
- case RedumpSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem:
- return KnownSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem;
- default:
- return null;
- }
- }
-
#if NET_FRAMEWORK
///
/// Convert IMAPI physical media type to a MediaType
@@ -252,6 +111,44 @@ namespace MPF.Converters
}
#endif
+ ///
+ /// Convert currently known Redump disc types to master list of all media types
+ ///
+ /// DiscType value to check
+ /// MediaType if possible, null on error
+ public static MediaType? ToMediaType(this DiscType? discType)
+ {
+ switch (discType)
+ {
+ case DiscType.BD25:
+ case DiscType.BD50:
+ return MediaType.BluRay;
+ case DiscType.CD:
+ return MediaType.CDROM;
+ case DiscType.DVD5:
+ case DiscType.DVD9:
+ return MediaType.DVD;
+ case DiscType.GDROM:
+ return MediaType.GDROM;
+ case DiscType.HDDVDSL:
+ return MediaType.HDDVD;
+ // case DiscType.MILCD: // TODO: Support this?
+ // return MediaType.MILCD;
+ case DiscType.NintendoGameCubeGameDisc:
+ return MediaType.NintendoGameCubeGameDisc;
+ case DiscType.NintendoWiiOpticalDiscSL:
+ case DiscType.NintendoWiiOpticalDiscDL:
+ return MediaType.NintendoWiiOpticalDisc;
+ case DiscType.NintendoWiiUOpticalDiscSL:
+ return MediaType.NintendoWiiUOpticalDisc;
+ case DiscType.UMDSL:
+ case DiscType.UMDDL:
+ return MediaType.UMD;
+ default:
+ return null;
+ }
+ }
+
///
/// Convert physical media type to a MediaType
///
@@ -294,170 +191,6 @@ namespace MPF.Converters
}
}
- ///
- /// Convert master list of all systems to currently known Redump systems
- ///
- /// KnownSystem value to check
- /// RedumpSystem if possible, null on error
- public static RedumpSystem? ToRedumpSystem(this KnownSystem? system)
- {
- switch (system)
- {
- case KnownSystem.AcornArchimedes:
- return RedumpSystem.AcornArchimedes;
- case KnownSystem.AppleMacintosh:
- return RedumpSystem.AppleMacintosh;
- case KnownSystem.AudioCD:
- return RedumpSystem.AudioCD;
- case KnownSystem.BandaiApplePippin:
- return RedumpSystem.BandaiPippin;
- case KnownSystem.BandaiPlaydiaQuickInteractiveSystem:
- return RedumpSystem.BandaiPlaydiaQuickInteractiveSystem;
- case KnownSystem.BDVideo:
- return RedumpSystem.BDVideo;
- case KnownSystem.CommodoreAmiga:
- return RedumpSystem.CommodoreAmigaCD;
- case KnownSystem.CommodoreAmigaCD32:
- return RedumpSystem.CommodoreAmigaCD32;
- case KnownSystem.CommodoreAmigaCDTV:
- return RedumpSystem.CommodoreAmigaCDTV;
- case KnownSystem.DVDVideo:
- return RedumpSystem.DVDVideo;
- case KnownSystem.EnhancedCD:
- return RedumpSystem.EnhancedCD;
- case KnownSystem.FujitsuFMTowns:
- return RedumpSystem.FujitsuFMTownsseries;
- case KnownSystem.funworldPhotoPlay:
- return RedumpSystem.funworldPhotoPlay;
- case KnownSystem.HasbroVideoNow:
- return RedumpSystem.HasbroVideoNow;
- case KnownSystem.HasbroVideoNowColor:
- return RedumpSystem.HasbroVideoNowColor;
- case KnownSystem.HasbroVideoNowJr:
- return RedumpSystem.HasbroVideoNowJr;
- case KnownSystem.HasbroVideoNowXP:
- return RedumpSystem.HasbroVideoNowXP;
- case KnownSystem.HDDVDVideo:
- return RedumpSystem.HDDVDVideo;
- case KnownSystem.IBMPCCompatible:
- return RedumpSystem.IBMPCcompatible;
- case KnownSystem.IncredibleTechnologiesEagle:
- return RedumpSystem.IncredibleTechnologiesEagle;
- case KnownSystem.KonamieAmusement:
- return RedumpSystem.KonamieAmusement;
- case KnownSystem.KonamiFirebeat:
- return RedumpSystem.KonamiFireBeat;
- case KnownSystem.KonamiM2:
- return RedumpSystem.KonamiM2;
- case KnownSystem.KonamiSystem573:
- return RedumpSystem.KonamiSystem573;
- case KnownSystem.KonamiGVSystem:
- return RedumpSystem.KonamiSystemGV;
- case KnownSystem.KonamiTwinkle:
- return RedumpSystem.KonamiTwinkle;
- case KnownSystem.MattelFisherPriceiXL:
- return RedumpSystem.MattelFisherPriceiXL;
- case KnownSystem.MattelHyperscan:
- return RedumpSystem.MattelHyperScan;
- case KnownSystem.TandyMemorexVisualInformationSystem:
- return RedumpSystem.MemorexVisualInformationSystem;
- case KnownSystem.MicrosoftXBOX:
- return RedumpSystem.MicrosoftXbox; // RedumpSystem.MicrosoftXboxBIOS
- case KnownSystem.MicrosoftXBOX360:
- return RedumpSystem.MicrosoftXbox360;
- case KnownSystem.MicrosoftXBOXOne:
- return RedumpSystem.MicrosoftXboxOne;
- case KnownSystem.NamcoSegaNintendoTriforce:
- return RedumpSystem.NamcoSegaNintendoTriforce;
- case KnownSystem.NamcoSystem12:
- return RedumpSystem.NamcoSystem12;
- case KnownSystem.NamcoCapcomTaitoSystem246:
- return RedumpSystem.NamcoSystem246;
- case KnownSystem.NavisoftNaviken21:
- return RedumpSystem.NavisoftNaviken21;
- case KnownSystem.NECPCEngineTurboGrafxCD:
- return RedumpSystem.NECPCEngineCDTurboGrafxCD;
- case KnownSystem.NECPC88:
- return RedumpSystem.NECPC88series;
- case KnownSystem.NECPC98:
- return RedumpSystem.NECPC98series;
- case KnownSystem.NECPCFX:
- return RedumpSystem.NECPCFXPCFXGA;
- case KnownSystem.NintendoGameCube:
- return RedumpSystem.NintendoGameCube; // RedumpSystem.NintendoGameCubeBIOS;
- case KnownSystem.NintendoWii:
- return RedumpSystem.NintendoWii;
- case KnownSystem.NintendoWiiU:
- return RedumpSystem.NintendoWiiU;
- case KnownSystem.PalmOS:
- return RedumpSystem.PalmOS;
- case KnownSystem.Panasonic3DOInteractiveMultiplayer:
- return RedumpSystem.Panasonic3DOInteractiveMultiplayer;
- case KnownSystem.PanasonicM2:
- return RedumpSystem.PanasonicM2;
- case KnownSystem.PhilipsCDi:
- return RedumpSystem.PhilipsCDi;
- case KnownSystem.PhotoCD:
- return RedumpSystem.PhotoCD;
- case KnownSystem.PlayStationGameSharkUpdates:
- return RedumpSystem.PlayStationGameSharkUpdates;
- case KnownSystem.PocketPC:
- return RedumpSystem.PocketPC;
- case KnownSystem.SegaChihiro:
- return RedumpSystem.SegaChihiro;
- case KnownSystem.SegaDreamcast:
- return RedumpSystem.SegaDreamcast;
- case KnownSystem.SegaLindbergh:
- return RedumpSystem.SegaLindbergh;
- case KnownSystem.SegaCDMegaCD:
- return RedumpSystem.SegaMegaCDSegaCD;
- case KnownSystem.SegaNaomi:
- return RedumpSystem.SegaNaomi;
- case KnownSystem.SegaNaomi2:
- return RedumpSystem.SegaNaomi2;
- case KnownSystem.SegaPrologue21:
- return RedumpSystem.SegaPrologue21MultimediaKaraokeSystem;
- case KnownSystem.SegaRingEdge:
- return RedumpSystem.SegaRingEdge;
- case KnownSystem.SegaRingEdge2:
- return RedumpSystem.SegaRingEdge2;
- case KnownSystem.SegaSaturn:
- return RedumpSystem.SegaSaturn;
- case KnownSystem.SegaTitanVideo:
- return RedumpSystem.SegaTitanVideo;
- case KnownSystem.SharpX68000:
- return RedumpSystem.SharpX68000;
- case KnownSystem.SNKNeoGeoCD:
- return RedumpSystem.SNKNeoGeoCD;
- case KnownSystem.SonyPlayStation:
- return RedumpSystem.SonyPlayStation; // RedumpSystem.SonyPlayStationBIOS;
- case KnownSystem.SonyPlayStation2:
- return RedumpSystem.SonyPlayStation2; // RedumpSystem.SonyPlayStation2BIOS;
- case KnownSystem.SonyPlayStation3:
- return RedumpSystem.SonyPlayStation3;
- case KnownSystem.SonyPlayStation4:
- return RedumpSystem.SonyPlayStation4;
- case KnownSystem.SonyPlayStationPortable:
- return RedumpSystem.SonyPlayStationPortable;
- case KnownSystem.TABAustriaQuizard:
- return RedumpSystem.TABAustriaQuizard;
- case KnownSystem.TaoiKTV:
- return RedumpSystem.TaoiKTV;
- case KnownSystem.TomyKissSite:
- return RedumpSystem.TomyKissSite;
- case KnownSystem.VideoCD:
- return RedumpSystem.VideoCD;
- case KnownSystem.VMLabsNuon:
- return RedumpSystem.VMLabsNUON;
- case KnownSystem.VTechVFlashVSmilePro:
- return RedumpSystem.VTechVFlashVSmilePro;
- case KnownSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem:
- return RedumpSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem;
- default:
- return null;
- }
- }
-
#endregion
#region Convert to Long Name
@@ -536,305 +269,6 @@ namespace MPF.Converters
}
}
- ///
- /// Get the string representation of the KnownSystem enum values
- ///
- /// KnownSystem value to convert
- /// String representing the value, if possible
- public static string LongName(this KnownSystem? sys)
- {
- switch (sys)
- {
- #region Consoles
-
- case KnownSystem.AtariJaguarCD:
- return "Atari Jaguar CD";
- case KnownSystem.BandaiPlaydiaQuickInteractiveSystem:
- return "Bandai Playdia Quick Interactive System";
- case KnownSystem.BandaiApplePippin:
- return "Bandai / Apple Pippin";
- case KnownSystem.CommodoreAmigaCD32:
- return "Commodore Amiga CD32";
- case KnownSystem.CommodoreAmigaCDTV:
- return "Commodore Amiga CDTV";
- case KnownSystem.EnvizionsEVOSmartConsole:
- return "Envizions EVO Smart Console";
- case KnownSystem.FujitsuFMTownsMarty:
- return "Fujitsu FM Towns Marty";
- case KnownSystem.HasbroVideoNow:
- return "Hasbro VideoNow";
- case KnownSystem.HasbroVideoNowColor:
- return "Hasbro VideoNow Color";
- case KnownSystem.HasbroVideoNowJr:
- return "Hasbro VideoNow Jr.";
- case KnownSystem.HasbroVideoNowXP:
- return "Hasbro VideoNow XP";
- case KnownSystem.MattelFisherPriceiXL:
- return "Mattel Fisher-Price iXL";
- case KnownSystem.MattelHyperscan:
- return "Mattel HyperScan";
- case KnownSystem.MicrosoftXBOX:
- return "Microsoft XBOX";
- case KnownSystem.MicrosoftXBOX360:
- return "Microsoft XBOX 360";
- case KnownSystem.MicrosoftXBOXOne:
- return "Microsoft XBOX One";
- case KnownSystem.MicrosoftXboxSeriesXS:
- return "Microsoft XBOX Series X and S";
- case KnownSystem.NECPCEngineTurboGrafxCD:
- return "NEC PC-Engine / TurboGrafx CD";
- case KnownSystem.NECPCFX:
- return "NEC PC-FX / PC-FXGA";
- case KnownSystem.NintendoGameCube:
- return "Nintendo GameCube";
- case KnownSystem.NintendoSonySuperNESCDROMSystem:
- return "Nintendo-Sony Super NES CD-ROM System";
- case KnownSystem.NintendoWii:
- return "Nintendo Wii";
- case KnownSystem.NintendoWiiU:
- return "Nintendo Wii U";
- case KnownSystem.Panasonic3DOInteractiveMultiplayer:
- return "Panasonic 3DO Interactive Multiplayer";
- case KnownSystem.PhilipsCDi:
- return "Philips CD-i";
- case KnownSystem.PioneerLaserActive:
- return "Pioneer LaserActive";
- case KnownSystem.SegaCDMegaCD:
- return "Sega CD / Mega CD";
- case KnownSystem.SegaDreamcast:
- return "Sega Dreamcast";
- case KnownSystem.SegaSaturn:
- return "Sega Saturn";
- case KnownSystem.SNKNeoGeoCD:
- return "SNK Neo Geo CD";
- case KnownSystem.SonyPlayStation:
- return "Sony PlayStation";
- case KnownSystem.SonyPlayStation2:
- return "Sony PlayStation 2";
- case KnownSystem.SonyPlayStation3:
- return "Sony PlayStation 3";
- case KnownSystem.SonyPlayStation4:
- return "Sony PlayStation 4";
- case KnownSystem.SonyPlayStation5:
- return "Sony PlayStation 5";
- case KnownSystem.SonyPlayStationPortable:
- return "Sony PlayStation Portable";
- case KnownSystem.TandyMemorexVisualInformationSystem:
- return "Tandy / Memorex Visual Information System";
- case KnownSystem.VMLabsNuon:
- return "VM Labs NUON";
- case KnownSystem.VTechVFlashVSmilePro:
- return "VTech V.Flash - V.Smile Pro";
- case KnownSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem:
- return "ZAPiT Games Game Wave Family Entertainment System";
-
- #endregion
-
- #region Computers
-
- case KnownSystem.AcornArchimedes:
- return "Acorn Archimedes";
- case KnownSystem.AppleMacintosh:
- return "Apple Macintosh";
- case KnownSystem.CommodoreAmiga:
- return "Commodore Amiga";
- case KnownSystem.FujitsuFMTowns:
- return "Fujitsu FM Towns series";
- case KnownSystem.IBMPCCompatible:
- return "IBM PC Compatible";
- case KnownSystem.NECPC88:
- return "NEC PC-88";
- case KnownSystem.NECPC98:
- return "NEC PC-98";
- case KnownSystem.SharpX68000:
- return "Sharp X68000";
-
- #endregion
-
- #region Arcade
-
- case KnownSystem.AmigaCUBOCD32:
- return "Amiga CUBO CD32";
- case KnownSystem.AmericanLaserGames3DO:
- return "American Laser Games 3DO";
- case KnownSystem.Atari3DO:
- return "Atari 3DO";
- case KnownSystem.Atronic:
- return "Atronic";
- case KnownSystem.AUSCOMSystem1:
- return "AUSCOM System 1";
- case KnownSystem.BallyGameMagic:
- return "Bally Game Magic";
- case KnownSystem.CapcomCPSystemIII:
- return "Capcom CP System III";
- case KnownSystem.funworldPhotoPlay:
- return "funworld Photo Play";
- case KnownSystem.GlobalVRVarious:
- return "Global VR PC-based Systems";
- case KnownSystem.GlobalVRVortek:
- return "Global VR Vortek";
- case KnownSystem.GlobalVRVortekV3:
- return "Global VR Vortek V3";
- case KnownSystem.ICEPCHardware:
- return "ICE PC-based Hardware";
- case KnownSystem.IncredibleTechnologiesEagle:
- return "Incredible Technologies Eagle";
- case KnownSystem.IncredibleTechnologiesVarious:
- return "Incredible Technologies PC-based Systems";
- case KnownSystem.KonamieAmusement:
- return "Konami e-Amusement";
- case KnownSystem.KonamiFirebeat:
- return "Konami Firebeat";
- case KnownSystem.KonamiGVSystem:
- return "Konami GV System";
- case KnownSystem.KonamiM2:
- return "Konami M2";
- case KnownSystem.KonamiPython:
- return "Konami Python";
- case KnownSystem.KonamiPython2:
- return "Konami Python 2";
- case KnownSystem.KonamiSystem573:
- return "Konami System 573";
- case KnownSystem.KonamiTwinkle:
- return "Konami Twinkle";
- case KnownSystem.KonamiVarious:
- return "Konami PC-based Systems";
- case KnownSystem.MeritIndustriesBoardwalk:
- return "Merit Industries Boardwalk";
- case KnownSystem.MeritIndustriesMegaTouchForce:
- return "Merit Industries MegaTouch Force";
- case KnownSystem.MeritIndustriesMegaTouchION:
- return "Merit Industries MegaTouch ION";
- case KnownSystem.MeritIndustriesMegaTouchMaxx:
- return "Merit Industries MegaTouch Maxx";
- case KnownSystem.MeritIndustriesMegaTouchXL:
- return "Merit Industries MegaTouch XL";
- case KnownSystem.NamcoCapcomSystem256:
- return "Namco / Capcom System 256/Super System 256";
- case KnownSystem.NamcoCapcomTaitoSystem246:
- return "Namco / Capcom / Taito System 246";
- case KnownSystem.NamcoSegaNintendoTriforce:
- return "Namco / Sega / Nintendo Triforce";
- case KnownSystem.NamcoSystem12:
- return "Namco System 12";
- case KnownSystem.NamcoSystem357:
- return "Namco System 357";
- case KnownSystem.NewJatreCDi:
- return "New Jatre CD-i";
- case KnownSystem.NichibutsuHighRateSystem:
- return "Nichibutsu High Rate System";
- case KnownSystem.NichibutsuSuperCD:
- return "Nichibutsu Super CD";
- case KnownSystem.NichibutsuXRateSystem:
- return "Nichibutsu X-Rate System";
- case KnownSystem.PanasonicM2:
- return "Panasonic M2";
- case KnownSystem.PhotoPlayVarious:
- return "PhotoPlay PC-based Systems";
- case KnownSystem.RawThrillsVarious:
- return "Raw Thrills PC-based Systems";
- case KnownSystem.SegaChihiro:
- return "Sega Chihiro";
- case KnownSystem.SegaEuropaR:
- return "Sega Europa-R";
- case KnownSystem.SegaLindbergh:
- return "Sega Lindbergh";
- case KnownSystem.SegaNaomi:
- return "Sega Naomi";
- case KnownSystem.SegaNaomi2:
- return "Sega Naomi 2";
- case KnownSystem.SegaNu:
- return "Sega Nu";
- case KnownSystem.SegaRingEdge:
- return "Sega RingEdge";
- case KnownSystem.SegaRingEdge2:
- return "Sega RingEdge 2";
- case KnownSystem.SegaRingWide:
- return "Sega RingWide";
- case KnownSystem.SegaTitanVideo:
- return "Sega Titan Video";
- case KnownSystem.SegaSystem32:
- return "Sega System 32";
- case KnownSystem.SeibuCATSSystem:
- return "Seibu CATS System";
- case KnownSystem.TABAustriaQuizard:
- return "TAB-Austria Quizard";
- case KnownSystem.TsunamiTsuMoMultiGameMotionSystem:
- return "Tsunami TsuMo Multi-Game Motion System";
-
- #endregion
-
- #region Others
-
- case KnownSystem.AudioCD:
- return "Audio CD";
- case KnownSystem.BDVideo:
- return "BD-Video";
- case KnownSystem.DVDAudio:
- return "DVD-Audio";
- case KnownSystem.DVDVideo:
- return "DVD-Video";
- case KnownSystem.EnhancedCD:
- return "Enhanced CD";
- case KnownSystem.HDDVDVideo:
- return "HD-DVD-Video";
- case KnownSystem.NavisoftNaviken21:
- return "Navisoft Naviken 2.1";
- case KnownSystem.PalmOS:
- return "PalmOS";
- case KnownSystem.PhotoCD:
- return "Photo CD";
- case KnownSystem.PlayStationGameSharkUpdates:
- return "PlayStation GameShark Updates";
- case KnownSystem.PocketPC:
- return "Pocket PC";
- case KnownSystem.RainbowDisc:
- return "Rainbow Disc";
- case KnownSystem.SegaPrologue21:
- return "Sega Prologue 21";
- case KnownSystem.SuperAudioCD:
- return "Super Audio CD";
- case KnownSystem.TaoiKTV:
- return "Tao iKTV";
- case KnownSystem.TomyKissSite:
- return "Tomy Kiss-Site";
- case KnownSystem.VideoCD:
- return "Video CD";
-
- #endregion
-
- case KnownSystem.NONE:
- default:
- return "Unknown";
- }
- }
-
- ///
- /// Get the string representation of the KnownSystemCategory enum values
- ///
- /// KnownSystemCategory value to convert
- /// String representing the value, if possible
- public static string LongName(this KnownSystemCategory? category)
- {
- switch (category)
- {
- case KnownSystemCategory.Arcade:
- return "Arcade";
- case KnownSystemCategory.Computer:
- return "Computers";
- case KnownSystemCategory.DiscBasedConsole:
- return "Disc-Based Consoles";
- case KnownSystemCategory.OtherConsole:
- return "Other Consoles";
- case KnownSystemCategory.Other:
- return "Other";
- case KnownSystemCategory.Custom:
- return "Custom";
- default:
- return "";
- }
- }
-
///
/// Get the string representation of the MediaType enum values
///
@@ -925,25 +359,6 @@ namespace MPF.Converters
}
}
- ///
- /// Get the string representation of the YesNo enum values
- ///
- /// YesNo value to convert
- /// String representing the value, if possible
- public static string LongName(this YesNo yesno)
- {
- switch (yesno)
- {
- case YesNo.No:
- return "No";
- case YesNo.Yes:
- return "Yes";
- default:
- case YesNo.NULL:
- return "Yes/No";
- }
- }
-
#endregion
#region Convert to Short Name
@@ -983,279 +398,6 @@ namespace MPF.Converters
}
}
- ///
- /// Get the short string representation of the KnownSystem enum values
- ///
- /// KnownSystem value to convert
- /// Short string representing the value, if possible
- public static string ShortName(this KnownSystem? sys)
- {
- switch (sys)
- {
- #region Consoles
-
- case KnownSystem.AtariJaguarCD:
- return "jaguar";
- case KnownSystem.BandaiPlaydiaQuickInteractiveSystem:
- return "playdia";
- case KnownSystem.BandaiApplePippin:
- return "pippin";
- case KnownSystem.CommodoreAmigaCD32:
- return "cd32";
- case KnownSystem.EnvizionsEVOSmartConsole:
- return "evosc";
- case KnownSystem.FujitsuFMTownsMarty:
- return "fmtm";
- case KnownSystem.CommodoreAmigaCDTV:
- return "cdtv";
- case KnownSystem.HasbroVideoNow:
- return "videonow";
- case KnownSystem.HasbroVideoNowColor:
- return "videonowcolor";
- case KnownSystem.HasbroVideoNowJr:
- return "videonowjr";
- case KnownSystem.HasbroVideoNowXP:
- return "videonowxp";
- case KnownSystem.MattelFisherPriceiXL:
- return "ixl";
- case KnownSystem.MattelHyperscan:
- return "hyperscan";
- case KnownSystem.MicrosoftXBOX:
- return "xbox";
- case KnownSystem.MicrosoftXBOX360:
- return "x360";
- case KnownSystem.MicrosoftXBOXOne:
- return "xbone";
- case KnownSystem.MicrosoftXboxSeriesXS:
- return "xbseries";
- case KnownSystem.NECPCEngineTurboGrafxCD:
- return "pcecd";
- case KnownSystem.NECPCFX:
- return "pcfx";
- case KnownSystem.NintendoGameCube:
- return "gc";
- case KnownSystem.NintendoSonySuperNESCDROMSystem:
- return "snescd";
- case KnownSystem.NintendoWii:
- return "wii";
- case KnownSystem.NintendoWiiU:
- return "wiiu";
- case KnownSystem.Panasonic3DOInteractiveMultiplayer:
- return "3do";
- case KnownSystem.PhilipsCDi:
- return "cdi";
- case KnownSystem.PioneerLaserActive:
- return "laseractive";
- case KnownSystem.SegaCDMegaCD:
- return "mcd";
- case KnownSystem.SegaDreamcast:
- return "dc";
- case KnownSystem.SegaSaturn:
- return "saturn";
- case KnownSystem.SNKNeoGeoCD:
- return "ngcd";
- case KnownSystem.SonyPlayStation:
- return "psx";
- case KnownSystem.SonyPlayStation2:
- return "ps2";
- case KnownSystem.SonyPlayStation3:
- return "ps3";
- case KnownSystem.SonyPlayStation4:
- return "ps4";
- case KnownSystem.SonyPlayStation5:
- return "ps5";
- case KnownSystem.SonyPlayStationPortable:
- return "psp";
- case KnownSystem.TandyMemorexVisualInformationSystem:
- return "vis";
- case KnownSystem.VMLabsNuon:
- return "nuon";
- case KnownSystem.VTechVFlashVSmilePro:
- return "vflash";
- case KnownSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem:
- return "gamewave";
-
- #endregion
-
- #region Computers
-
- case KnownSystem.AcornArchimedes:
- return "archimedes";
- case KnownSystem.AppleMacintosh:
- return "mac";
- case KnownSystem.CommodoreAmiga:
- return "amiga";
- case KnownSystem.FujitsuFMTowns:
- return "fmtowns";
- case KnownSystem.IBMPCCompatible:
- return "ibm";
- case KnownSystem.NECPC88:
- return "pc88";
- case KnownSystem.NECPC98:
- return "pc98";
- case KnownSystem.SharpX68000:
- return "x68k";
-
- #endregion
-
- #region Arcade
-
- case KnownSystem.AmigaCUBOCD32:
- return "cubo";
- case KnownSystem.AmericanLaserGames3DO:
- return "alg 3do";
- case KnownSystem.Atari3DO:
- return "atari 3do";
- case KnownSystem.Atronic:
- return "atronic";
- case KnownSystem.AUSCOMSystem1:
- return "auscom";
- case KnownSystem.BallyGameMagic:
- return "game magic";
- case KnownSystem.CapcomCPSystemIII:
- return "cps3";
- case KnownSystem.funworldPhotoPlay:
- return "fpp";
- case KnownSystem.GlobalVRVarious:
- return "globalvr";
- case KnownSystem.GlobalVRVortek:
- return "vortek";
- case KnownSystem.GlobalVRVortekV3:
- return "vortek v3";
- case KnownSystem.ICEPCHardware:
- return "ice";
- case KnownSystem.IncredibleTechnologiesEagle:
- return "eagle";
- case KnownSystem.IncredibleTechnologiesVarious:
- return "itpc";
- case KnownSystem.KonamieAmusement:
- return "e-amusement";
- case KnownSystem.KonamiFirebeat:
- return "firebeat";
- case KnownSystem.KonamiGVSystem:
- return "gv system";
- case KnownSystem.KonamiM2:
- return "konami m2";
- case KnownSystem.KonamiPython:
- return "python";
- case KnownSystem.KonamiPython2:
- return "python 2";
- case KnownSystem.KonamiSystem573:
- return "system 573";
- case KnownSystem.KonamiTwinkle:
- return "twinkle";
- case KnownSystem.KonamiVarious:
- return "konami pc";
- case KnownSystem.MeritIndustriesBoardwalk:
- return "boardwalk";
- case KnownSystem.MeritIndustriesMegaTouchForce:
- return "megatouch force";
- case KnownSystem.MeritIndustriesMegaTouchION:
- return "megatouch ion";
- case KnownSystem.MeritIndustriesMegaTouchMaxx:
- return "megatouch maxx";
- case KnownSystem.MeritIndustriesMegaTouchXL:
- return "megatouch xl";
- case KnownSystem.NamcoCapcomSystem256:
- return "system 256";
- case KnownSystem.NamcoCapcomTaitoSystem246:
- return "system 246";
- case KnownSystem.NamcoSegaNintendoTriforce:
- return "triforce";
- case KnownSystem.NamcoSystem12:
- return "system 12";
- case KnownSystem.NamcoSystem357:
- return "system 357";
- case KnownSystem.NewJatreCDi:
- return "new jatre cdi";
- case KnownSystem.NichibutsuHighRateSystem:
- return "nichibutsu hrs";
- case KnownSystem.NichibutsuSuperCD:
- return "nichibutsu scd";
- case KnownSystem.NichibutsuXRateSystem:
- return "nichibutsu xrs";
- case KnownSystem.PanasonicM2:
- return "panasonic m2";
- case KnownSystem.PhotoPlayVarious:
- return "photoplay";
- case KnownSystem.RawThrillsVarious:
- return "raw thrills";
- case KnownSystem.SegaChihiro:
- return "chihiro";
- case KnownSystem.SegaEuropaR:
- return "europar";
- case KnownSystem.SegaLindbergh:
- return "lindbergh";
- case KnownSystem.SegaNaomi:
- return "naomi";
- case KnownSystem.SegaNaomi2:
- return "naomi 2";
- case KnownSystem.SegaNu:
- return "nu";
- case KnownSystem.SegaRingEdge:
- return "ringedge";
- case KnownSystem.SegaRingEdge2:
- return "ringedge 2";
- case KnownSystem.SegaRingWide:
- return "ringwide";
- case KnownSystem.SegaTitanVideo:
- return "stv";
- case KnownSystem.SegaSystem32:
- return "system 32";
- case KnownSystem.SeibuCATSSystem:
- return "seibu cats";
- case KnownSystem.TABAustriaQuizard:
- return "quizard";
- case KnownSystem.TsunamiTsuMoMultiGameMotionSystem:
- return "tsumo";
-
- #endregion
-
- #region Others
-
- case KnownSystem.AudioCD:
- return "audio";
- case KnownSystem.BDVideo:
- return "bd-video";
- case KnownSystem.DVDAudio:
- return "dvd-audio";
- case KnownSystem.DVDVideo:
- return "dvd-video";
- case KnownSystem.EnhancedCD:
- return "enhanced cd";
- case KnownSystem.HDDVDVideo:
- return "hddvd-video";
- case KnownSystem.NavisoftNaviken21:
- return "naviken";
- case KnownSystem.PalmOS:
- return "palmos";
- case KnownSystem.PhotoCD:
- return "photo cd";
- case KnownSystem.PlayStationGameSharkUpdates:
- return "gameshark";
- case KnownSystem.PocketPC:
- return "ppc";
- case KnownSystem.RainbowDisc:
- return "rainbow";
- case KnownSystem.SegaPrologue21:
- return "pl21";
- case KnownSystem.SuperAudioCD:
- return "sacd";
- case KnownSystem.TaoiKTV:
- return "iktv";
- case KnownSystem.TomyKissSite:
- return "kiss-site";
- case KnownSystem.VideoCD:
- return "vcd";
-
- #endregion
-
- case KnownSystem.NONE:
- default:
- return "unknown";
- }
- }
-
///
/// Get the short string representation of the MediaType enum values
///
@@ -1392,775 +534,6 @@ namespace MPF.Converters
}
}
- ///
- /// Get the KnownSystem enum value for a given string
- ///
- /// String value to convert
- /// KnownSystem represented by the string, if possible
- public static KnownSystem? ToKnownSystem(string sys)
- {
- switch (sys.ToLowerInvariant())
- {
- #region Consoles
-
- case "jaguar":
- case "jagcd":
- case "jaguarcd":
- case "jaguar cd":
- case "atarijaguar":
- case "atarijagcd":
- case "atarijaguarcd":
- case "atari jaguar cd":
- return KnownSystem.AtariJaguarCD;
- case "playdia":
- case "playdiaqis":
- case "playdiaquickinteractivesystem":
- case "bandaiplaydia":
- case "bandaiplaydiaquickinteractivesystem":
- case "bandai playdia quick interactive system":
- return KnownSystem.BandaiPlaydiaQuickInteractiveSystem;
- case "pippin":
- case "bandaipippin":
- case "bandai pippin":
- case "applepippin":
- case "apple pippin":
- case "bandaiapplepippin":
- case "bandai apple pippin":
- case "bandai / apple pippin":
- return KnownSystem.BandaiApplePippin;
- case "cd32":
- case "amigacd32":
- case "amiga cd32":
- case "commodoreamigacd32":
- case "commodore amiga cd32":
- return KnownSystem.CommodoreAmigaCD32;
- case "cdtv":
- case "amigacdtv":
- case "amiga cdtv":
- case "commodoreamigacdtv":
- case "commodore amiga cdtv":
- return KnownSystem.CommodoreAmigaCDTV;
- case "evosc":
- case "evo sc":
- case "evosmartconsole":
- case "evo smart console":
- case "envizionsevosc":
- case "envizion evo sc":
- case "envizionevosmartconsole":
- case "envizion evo smart console":
- return KnownSystem.EnvizionsEVOSmartConsole;
- case "fmtm":
- case "fmtownsmarty":
- case "fm towns marty":
- case "fujitsufmtownsmarty":
- case "fujitsu fm towns marty":
- return KnownSystem.FujitsuFMTownsMarty;
- case "videonow":
- case "hasbrovideonow":
- case "hasbro videonow":
- return KnownSystem.HasbroVideoNow;
- case "videonowcolor":
- case "videonow color":
- case "hasbrovideonowcolor":
- case "hasbro videonow color":
- return KnownSystem.HasbroVideoNowColor;
- case "videonowjr":
- case "videonow jr":
- case "hasbrovideonowjr":
- case "hasbro videonow jr":
- return KnownSystem.HasbroVideoNowJr;
- case "videonowxp":
- case "videonow xp":
- case "hasbrovideonowxp":
- case "hasbro videonow xp":
- return KnownSystem.HasbroVideoNowXP;
- case "ixl":
- case "mattelixl":
- case "mattel ixl":
- case "fisherpriceixl":
- case "fisher price ixl":
- case "fisher-price ixl":
- case "fisherprice ixl":
- case "mattelfisherpriceixl":
- case "mattel fisher price ixl":
- case "mattelfisherprice ixl":
- case "mattel fisherprice ixl":
- case "mattel fisher-price ixl":
- return KnownSystem.MattelFisherPriceiXL;
- case "hyperscan":
- case "mattelhyperscan":
- case "mattel hyperscan":
- return KnownSystem.MattelHyperscan;
- case "xbox":
- case "microsoftxbox":
- case "microsoft xbox":
- return KnownSystem.MicrosoftXBOX;
- case "x360":
- case "xbox360":
- case "microsoftx360":
- case "microsoftxbox360":
- case "microsoft x360":
- case "microsoft xbox 360":
- return KnownSystem.MicrosoftXBOX360;
- case "xb1":
- case "xbone":
- case "xboxone":
- case "microsoftxbone":
- case "microsoftxboxone":
- case "microsoft xbone":
- case "microsoft xbox one":
- return KnownSystem.MicrosoftXBOXOne;
- case "xbs":
- case "xbseries":
- case "xbseriess":
- case "xbseriesx":
- case "xbseriessx":
- case "xboxseries":
- case "xboxseriess":
- case "xboxseriesx":
- case "xboxseriesxs":
- case "microsoftxboxseries":
- case "microsoftxboxseriess":
- case "microsoftxboxseriesx":
- case "microsoftxboxseriesxs":
- case "microsoft xbox series":
- case "microsoft xbox series s":
- case "microsoft xbox series x":
- case "microsoft xbox series x and s":
- return KnownSystem.MicrosoftXboxSeriesXS;
- case "pcecd":
- case "pce-cd":
- case "tgcd":
- case "tg-cd":
- case "necpcecd":
- case "nectgcd":
- case "nec pc-engine cd":
- case "nec turbografx cd":
- case "nec pc-engine / turbografx cd":
- return KnownSystem.NECPCEngineTurboGrafxCD;
- case "pcfx":
- case "pc-fx":
- case "pcfxga":
- case "pc-fxga":
- case "necpcfx":
- case "necpcfxga":
- case "nec pc-fx":
- case "nec pc-fxga":
- case "nec pc-fx / pc-fxga":
- return KnownSystem.NECPCFX;
- case "gc":
- case "gamecube":
- case "ngc":
- case "nintendogamecube":
- case "nintendo gamecube":
- return KnownSystem.NintendoGameCube;
- case "snescd":
- case "snes cd":
- case "snes-cd":
- case "supernescd":
- case "super nes cd":
- case "super nes-cd":
- case "supernintendocd":
- case "super nintendo cd":
- case "super nintendo-cd":
- case "nintendosnescd":
- case "nintendo snes cd":
- case "nintendosnes-cd":
- case "nintendosupernescd":
- case "nintendo super nes cd":
- case "nintendo super nes-cd":
- case "nintendosupernintendocd":
- case "nintendo super nintendo cd":
- case "nintendo super nintendo-cd":
- case "sonysnescd":
- case "sony snes cd":
- case "sonysnes-cd":
- case "sonysupernescd":
- case "sony super nes cd":
- case "sony super nes-cd":
- case "sonysupernintendocd":
- case "sony super nintendo cd":
- case "sony super nintendo-cd":
- return KnownSystem.NintendoSonySuperNESCDROMSystem;
- case "wii":
- case "nintendowii":
- case "nintendo wii":
- return KnownSystem.NintendoWii;
- case "wiiu":
- case "wii u":
- case "nintendowiiu":
- case "nintendo wii u":
- return KnownSystem.NintendoWiiU;
- case "3do":
- case "3do interactive multiplayer":
- case "panasonic3do":
- case "panasonic 3do":
- case "panasonic 3do interactive multiplayer":
- return KnownSystem.Panasonic3DOInteractiveMultiplayer;
- case "cdi":
- case "cd-i":
- case "philipscdi":
- case "philips cdi":
- case "philips cd-i":
- return KnownSystem.PhilipsCDi;
- case "laseractive":
- case "pioneerlaseractive":
- case "pioneer laseractive":
- return KnownSystem.PioneerLaserActive;
- case "scd":
- case "mcd":
- case "smcd":
- case "segacd":
- case "megacd":
- case "segamegacd":
- case "sega cd":
- case "mega cd":
- case "sega cd / mega cd":
- return KnownSystem.SegaCDMegaCD;
- case "dc":
- case "sdc":
- case "dreamcast":
- case "segadreamcast":
- case "sega dreamcast":
- return KnownSystem.SegaDreamcast;
- case "saturn":
- case "segasaturn":
- case "sega saturn":
- return KnownSystem.SegaSaturn;
- case "ngcd":
- case "neogeocd":
- case "neogeo cd":
- case "neo geo cd":
- case "snk ngcd":
- case "snk neogeo cd":
- case "snk neo geo cd":
- return KnownSystem.SNKNeoGeoCD;
- case "ps1":
- case "psx":
- case "playstation":
- case "sonyps1":
- case "sony ps1":
- case "sonypsx":
- case "sony psx":
- case "sonyplaystation":
- case "sony playstation":
- return KnownSystem.SonyPlayStation;
- case "ps2":
- case "playstation2":
- case "playstation 2":
- case "sonyps2":
- case "sony ps2":
- case "sonyplaystation2":
- case "sony playstation 2":
- return KnownSystem.SonyPlayStation2;
- case "ps3":
- case "playstation3":
- case "playstation 3":
- case "sonyps3":
- case "sony ps3":
- case "sonyplaystation3":
- case "sony playstation 3":
- return KnownSystem.SonyPlayStation3;
- case "ps4":
- case "playstation4":
- case "playstation 4":
- case "sonyps4":
- case "sony ps4":
- case "sonyplaystation4":
- case "sony playstation 4":
- return KnownSystem.SonyPlayStation4;
- case "ps5":
- case "playstation5":
- case "playstation 5":
- case "sonyps5":
- case "sony ps5":
- case "sonyplaystation5":
- case "sony playstation 5":
- return KnownSystem.SonyPlayStation5;
- case "psp":
- case "playstationportable":
- case "playstation portable":
- case "sonypsp":
- case "sony psp":
- case "sonyplaystationportable":
- case "sony playstation portable":
- return KnownSystem.SonyPlayStationPortable;
- case "vis":
- case "tandyvis":
- case "tandy vis":
- case "tandyvisualinformationsystem":
- case "tandy visual information system":
- case "memorexvis":
- case "memorex vis":
- case "memorexvisualinformationsystem":
- case "memorex visual information sytem":
- case "tandy / memorex visual information system":
- return KnownSystem.TandyMemorexVisualInformationSystem;
- case "nuon":
- case "vmlabsnuon":
- case "vm labs nuon":
- return KnownSystem.VMLabsNuon;
- case "vflash":
- case "vsmile":
- case "vsmilepro":
- case "vsmile pro":
- case "v.flash":
- case "v.smile":
- case "v.smilepro":
- case "v.smile pro":
- case "vtechvflash":
- case "vtech vflash":
- case "vtech v.flash":
- case "vtechvsmile":
- case "vtech vsmile":
- case "vtech v.smile":
- case "vtechvsmilepro":
- case "vtech vsmile pro":
- case "vtech v.smile pro":
- case "vtech v.flash - v.smile pro":
- return KnownSystem.VTechVFlashVSmilePro;
- case "gamewave":
- case "game wave":
- case "zapit":
- case "zapitgamewave":
- case "zapit game wave":
- case "zapit games game wave family entertainment system":
- return KnownSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem;
-
- #endregion
-
- #region Computers
-
- case "acorn":
- case "archimedes":
- case "acornarchimedes":
- case "acorn archimedes":
- return KnownSystem.AcornArchimedes;
- case "apple":
- case "mac":
- case "applemac":
- case "macintosh":
- case "applemacintosh":
- case "apple mac":
- case "apple macintosh":
- return KnownSystem.AppleMacintosh;
- case "amiga":
- case "commodoreamiga":
- case "commodore amiga":
- return KnownSystem.CommodoreAmiga;
- case "fmtowns":
- case "fmt":
- case "fm towns":
- case "fujitsufmtowns":
- case "fujitsu fm towns":
- case "fujitsu fm towns series":
- return KnownSystem.FujitsuFMTowns;
- case "ibm":
- case "ibmpc":
- case "pc":
- case "ibm pc":
- case "ibm pc compatible":
- return KnownSystem.IBMPCCompatible;
- case "pc88":
- case "pc-88":
- case "necpc88":
- case "nec pc88":
- case "nec pc-88":
- return KnownSystem.NECPC88;
- case "pc98":
- case "pc-98":
- case "necpc98":
- case "nec pc98":
- case "nec pc-98":
- return KnownSystem.NECPC98;
- case "x68k":
- case "x68000":
- case "sharpx68k":
- case "sharp x68k":
- case "sharpx68000":
- case "sharp x68000":
- return KnownSystem.SharpX68000;
-
- #endregion
-
- #region Arcade
-
- case "cubo":
- case "cubocd32":
- case "cubo cd32":
- case "amigacubocd32":
- case "amiga cubo cd32":
- return KnownSystem.AmigaCUBOCD32;
- case "alg3do":
- case "alg 3do":
- case "americanlasergames3do":
- case "american laser games 3do":
- return KnownSystem.AmericanLaserGames3DO;
- case "atari3do":
- case "atari 3do":
- return KnownSystem.Atari3DO;
- case "atronic":
- return KnownSystem.Atronic;
- case "auscom":
- case "auscomsystem1":
- case "auscom system 1":
- return KnownSystem.AUSCOMSystem1;
- case "gamemagic":
- case "game magic":
- case "ballygamemagic":
- case "bally game magic":
- return KnownSystem.BallyGameMagic;
- case "cps3":
- case "cpsiii":
- case "cps 3":
- case "cp system 3":
- case "cp system iii":
- case "capcomcps3":
- case "capcomcpsiii":
- case "capcom cps 3":
- case "capcom cps iii":
- case "capcom cp system 3":
- case "capcom cp system iii":
- return KnownSystem.CapcomCPSystemIII;
- case "fpp":
- case "funworldphotoplay":
- case "funworld photoplay":
- case "funworld photo play":
- return KnownSystem.funworldPhotoPlay;
- case "globalvr":
- case "global vr":
- case "global vr pc-based systems":
- return KnownSystem.GlobalVRVarious;
- case "vortek":
- case "globalvrvortek":
- case "global vr vortek":
- return KnownSystem.GlobalVRVortek;
- case "vortekv3":
- case "vortek v3":
- case "globalvrvortekv3":
- case "global vr vortek v3":
- return KnownSystem.GlobalVRVortekV3;
- case "ice":
- case "icepc":
- case "ice pc":
- case "ice pc-based hardware":
- return KnownSystem.ICEPCHardware;
- case "iteagle":
- case "eagle":
- case "incredible technologies eagle":
- return KnownSystem.IncredibleTechnologiesEagle;
- case "itpc":
- case "incredible technologies pc-based systems":
- return KnownSystem.IncredibleTechnologiesVarious;
- case "eamusement":
- case "e-amusement":
- case "konamieamusement":
- case "konami eamusement":
- case "konamie-amusement":
- case "konami e-amusement":
- return KnownSystem.KonamieAmusement;
- case "firebeat":
- case "konamifirebeat":
- case "konami firebeat":
- return KnownSystem.KonamiFirebeat;
- case "gvsystem":
- case "gv system":
- case "konamigvsystem":
- case "konami gv system":
- return KnownSystem.KonamiGVSystem;
- case "konamim2":
- case "konami m2":
- return KnownSystem.KonamiM2;
- case "python":
- case "konamipython":
- case "konami python":
- return KnownSystem.KonamiPython;
- case "python2":
- case "python 2":
- case "konamipython2":
- case "konami python 2":
- return KnownSystem.KonamiPython2;
- case "system573":
- case "system 573":
- case "konamisystem573":
- case "konami system 573":
- return KnownSystem.KonamiSystem573;
- case "twinkle":
- case "konamitwinkle":
- case "konami twinkle":
- return KnownSystem.KonamiTwinkle;
- case "konamipc":
- case "konami pc":
- case "konami pc-based systems":
- return KnownSystem.KonamiVarious;
- case "boardwalk":
- case "meritindustriesboardwalk":
- case "merit industries boardwalk":
- return KnownSystem.MeritIndustriesBoardwalk;
- case "megatouchforce":
- case "megatouch force":
- case "meritindustriesmegatouchforce":
- case "merit industries megatouch force":
- return KnownSystem.MeritIndustriesMegaTouchForce;
- case "megatouchion":
- case "megatouch ion":
- case "meritindustriesmegatouchion":
- case "merit industries megatouch ion":
- return KnownSystem.MeritIndustriesMegaTouchION;
- case "megatouchmaxx":
- case "megatouch maxx":
- case "meritindustriesmegatouchmaxx":
- case "merit industries megatouch maxx":
- return KnownSystem.MeritIndustriesMegaTouchMaxx;
- case "megatouchxl":
- case "megatouch xl":
- case "meritindustriesmegatouchxl":
- case "merit industries megatouch xl":
- return KnownSystem.MeritIndustriesMegaTouchXL;
- case "system256":
- case "system 256":
- case "supersystem256":
- case "super system 256":
- case "namcosystem256":
- case "namco system 256":
- case "namcosupersystem256":
- case "namco super system 256":
- case "capcomsystem256":
- case "capcom system 256":
- case "capcomsupersystem256":
- case "capcom super system 256":
- case "namco / capcom system 256/super system 256":
- return KnownSystem.NamcoCapcomSystem256;
- case "system246":
- case "system 246":
- case "namcosystem246":
- case "namco system 246":
- case "capcomsystem246":
- case "capcom system 246":
- case "taitosystem246":
- case "taito system 246":
- case "namco / capcom / taito system 246":
- return KnownSystem.NamcoCapcomTaitoSystem246;
- case "triforce":
- case "namcotriforce":
- case "namco triforce":
- case "segatriforce":
- case "sega triforce":
- case "nintendotriforce":
- case "nintendo triforce":
- case "namco / sega / nintendo triforce":
- return KnownSystem.NamcoSegaNintendoTriforce;
- case "system12":
- case "system 12":
- case "namcosystem12":
- case "namco system 12":
- return KnownSystem.NamcoSystem12;
- case "system357":
- case "system 357":
- case "namcosystem357":
- case "namco system 357":
- return KnownSystem.NamcoSystem357;
- case "newjatrecdi":
- case "new jatre cdi":
- case "new jatre cd-i":
- return KnownSystem.NewJatreCDi;
- case "hrs":
- case "highratesytem":
- case "high rate system":
- case "nichibutsuhrs":
- case "nichibutsu hrs":
- case "nichibutsu high rate system":
- return KnownSystem.NichibutsuHighRateSystem;
- case "supercd":
- case "super cd":
- case "nichibutsuscd":
- case "nichibutsu scd":
- case "nichibutsusupercd":
- case "nichibutsu supercd":
- case "nichibutsu super cd":
- return KnownSystem.NichibutsuSuperCD;
- case "xrs":
- case "xratesystem":
- case "x-rate system":
- case "nichibutsuxrs":
- case "nichibutsu xrs":
- case "nichibutsu x-rate system":
- return KnownSystem.NichibutsuXRateSystem;
- case "panasonicm2":
- case "panasonic m2":
- return KnownSystem.PanasonicM2;
- case "photoplay":
- case "photoplaypc":
- case "photoplay pc":
- case "photoplay pc-based systems":
- return KnownSystem.PhotoPlayVarious;
- case "rawthrills":
- case "raw thrills":
- case "raw thrills pc-based systems":
- return KnownSystem.RawThrillsVarious;
- case "chihiro":
- case "segachihiro":
- case "sega chihiro":
- return KnownSystem.SegaChihiro;
- case "europar":
- case "europa-r":
- case "segaeuropar":
- case "sega europar":
- case "sega europa-r":
- return KnownSystem.SegaEuropaR;
- case "lindbergh":
- case "segalindbergh":
- case "sega lindbergh":
- return KnownSystem.SegaLindbergh;
- case "naomi":
- case "seganaomi":
- case "sega naomi":
- return KnownSystem.SegaNaomi;
- case "naomi2":
- case "naomi 2":
- case "seganaomi2":
- case "sega naomi 2":
- return KnownSystem.SegaNaomi2;
- case "nu":
- case "seganu":
- case "sega nu":
- return KnownSystem.SegaNu;
- case "ringedge":
- case "segaringedge":
- case "sega ringedge":
- return KnownSystem.SegaRingEdge;
- case "ringedge2":
- case "ringedge 2":
- case "segaringedge2":
- case "sega ringedge 2":
- return KnownSystem.SegaRingEdge2;
- case "ringwide":
- case "segaringwide":
- case "sega ringwide":
- return KnownSystem.SegaRingWide;
- case "stv":
- case "titanvideo":
- case "titan video":
- case "segatitanvideo":
- case "sega titan video":
- return KnownSystem.SegaTitanVideo;
- case "system32":
- case "system 32":
- case "segasystem32":
- case "sega system 32":
- return KnownSystem.SegaSystem32;
- case "cats":
- case "seibucats":
- case "seibu cats":
- case "seibu cats system":
- return KnownSystem.SeibuCATSSystem;
- case "quizard":
- case "tabaustriaquizard":
- case "tab-austria quizard":
- return KnownSystem.TABAustriaQuizard;
- case "tsumo":
- case "tsunamitsumo":
- case "tsunami tsumo":
- case "tsunami tsumo multi-game motion system":
- return KnownSystem.TsunamiTsuMoMultiGameMotionSystem;
-
- #endregion
-
- #region Others
-
- case "audio":
- case "audiocd":
- case "audio cd":
- return KnownSystem.AudioCD;
- case "bdvideo":
- case "bd-video":
- case "blurayvideo":
- case "bluray video":
- return KnownSystem.BDVideo;
- case "dvda":
- case "dvdaudio":
- case "dvd-audio":
- return KnownSystem.DVDAudio;
- case "dvd":
- case "dvdv":
- case "dvdvideo":
- case "dvd-video":
- return KnownSystem.DVDVideo;
- case "enhancedcd":
- case "enhanced cd":
- case "enhancedcdrom":
- case "enhanced cdrom":
- case "enhanced cd-rom":
- return KnownSystem.EnhancedCD;
- case "hddvd":
- case "hddvdv":
- case "hddvdvideo":
- case "hddvd-video":
- case "hd-dvd-video":
- return KnownSystem.HDDVDVideo;
- case "naviken":
- case "naviken21":
- case "naviken 2.1":
- case "navisoftnaviken":
- case "navisoft naviken":
- case "navisoftnaviken21":
- case "navisoft naviken 2.1":
- return KnownSystem.NavisoftNaviken21;
- case "palm":
- case "palmos":
- return KnownSystem.PalmOS;
- case "photo":
- case "photocd":
- case "photo cd":
- return KnownSystem.PhotoCD;
- case "gameshark":
- case "psgameshark":
- case "ps gameshark":
- case "playstationgameshark":
- case "playstation gameshark":
- case "playstation gameshark updates":
- return KnownSystem.PlayStationGameSharkUpdates;
- case "pocketpc":
- case "pocket pc":
- case "ppc":
- return KnownSystem.PocketPC;
- case "rainbow":
- case "rainbowdisc":
- case "rainbow disc":
- return KnownSystem.RainbowDisc;
- case "pl21":
- case "prologue21":
- case "prologue 21":
- case "segaprologue21":
- case "sega prologue21":
- case "sega prologue 21":
- return KnownSystem.SegaPrologue21;
- case "sacd":
- case "superaudiocd":
- case "super audio cd":
- return KnownSystem.SuperAudioCD;
- case "iktv":
- case "taoiktv":
- case "tao iktv":
- return KnownSystem.TaoiKTV;
- case "kisssite":
- case "kiss-site":
- case "tomykisssite":
- case "tomy kisssite":
- case "tomy kiss-site":
- return KnownSystem.TomyKissSite;
- case "vcd":
- case "videocd":
- case "video cd":
- return KnownSystem.VideoCD;
-
- #endregion
-
- default:
- return KnownSystem.NONE;
- }
- }
-
///
/// Get the MediaType enum value for a given string
///
diff --git a/MPF.Library/Converters/KnownSystemConverter.cs b/MPF.Library/Converters/KnownSystemConverter.cs
deleted file mode 100644
index db349a66..00000000
--- a/MPF.Library/Converters/KnownSystemConverter.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System;
-using MPF.Data;
-using MPF.Utilities;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
-using RedumpLib.Data;
-
-namespace MPF.Converters
-{
- ///
- /// Serialize KnownSystem enum values
- ///
- public class KnownSystemConverter : JsonConverter
- {
- public override bool CanRead { get { return false; } }
-
- public override KnownSystem? ReadJson(JsonReader reader, Type objectType, KnownSystem? existingValue, bool hasExistingValue, JsonSerializer serializer)
- {
- throw new NotImplementedException();
- }
-
- public override void WriteJson(JsonWriter writer, KnownSystem? value, JsonSerializer serializer)
- {
- JToken t = JToken.FromObject(value.ToRedumpSystem().ShortName() ?? value.ShortName() ?? string.Empty);
- t.WriteTo(writer);
- }
- }
-}
\ No newline at end of file
diff --git a/MPF.Library/DD/Parameters.cs b/MPF.Library/DD/Parameters.cs
index c818fd4a..d9d9d8b7 100644
--- a/MPF.Library/DD/Parameters.cs
+++ b/MPF.Library/DD/Parameters.cs
@@ -60,7 +60,7 @@ namespace MPF.DD
public Parameters(string parameters) : base(parameters) { }
///
- public Parameters(KnownSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
+ public Parameters(RedumpSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
: base(system, type, driveLetter, filename, driveSpeed, options)
{
}
@@ -87,7 +87,7 @@ namespace MPF.DD
switch (this.System)
{
- case KnownSystem.KonamiPython2:
+ case RedumpSystem.KonamiPython2:
if (GetPlayStationExecutableInfo(drive?.Letter, out string pythonTwoSerial, out Region? pythonTwoRegion, out string pythonTwoDate))
{
info.CommonDiscInfo.Comments += $"Internal Disc Serial: {pythonTwoSerial}\n";
@@ -98,7 +98,7 @@ namespace MPF.DD
info.VersionAndEditions.Version = GetPlayStation2Version(drive?.Letter) ?? "";
break;
- case KnownSystem.SonyPlayStation:
+ case RedumpSystem.SonyPlayStation:
if (GetPlayStationExecutableInfo(drive?.Letter, out string playstationSerial, out Region? playstationRegion, out string playstationDate))
{
info.CommonDiscInfo.Comments += $"Internal Disc Serial: {playstationSerial}\n";
@@ -109,7 +109,7 @@ namespace MPF.DD
info.CopyProtection.AntiModchip = GetPlayStationAntiModchipDetected(drive?.Letter) ? YesNo.Yes : YesNo.No;
break;
- case KnownSystem.SonyPlayStation2:
+ case RedumpSystem.SonyPlayStation2:
if (GetPlayStationExecutableInfo(drive?.Letter, out string playstationTwoSerial, out Region? playstationTwoRegion, out string playstationTwoDate))
{
info.CommonDiscInfo.Comments += $"Internal Disc Serial: {playstationTwoSerial}\n";
@@ -120,11 +120,11 @@ namespace MPF.DD
info.VersionAndEditions.Version = GetPlayStation2Version(drive?.Letter) ?? "";
break;
- case KnownSystem.SonyPlayStation4:
+ case RedumpSystem.SonyPlayStation4:
info.VersionAndEditions.Version = GetPlayStation4Version(drive?.Letter) ?? "";
break;
- case KnownSystem.SonyPlayStation5:
+ case RedumpSystem.SonyPlayStation5:
info.VersionAndEditions.Version = GetPlayStation5Version(drive?.Letter) ?? "";
break;
}
diff --git a/MPF.Library/Data/BaseParameters.cs b/MPF.Library/Data/BaseParameters.cs
index fb09a753..32f062a0 100644
--- a/MPF.Library/Data/BaseParameters.cs
+++ b/MPF.Library/Data/BaseParameters.cs
@@ -104,7 +104,7 @@ namespace MPF.Data
///
/// Currently represented system
///
- public KnownSystem? System { get; set; }
+ public RedumpSystem? System { get; set; }
///
/// Currently represented media type
@@ -127,13 +127,13 @@ namespace MPF.Data
///
/// Generate parameters based on a set of known inputs
///
- /// KnownSystem value to use
+ /// RedumpSystem value to use
/// MediaType value to use
/// Drive letter to use
/// Filename to use
/// Drive speed to use
/// Options object containing all settings that may be used for setting parameters
- public BaseParameters(KnownSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
+ public BaseParameters(RedumpSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
{
this.System = system;
this.Type = type;
diff --git a/MPF.Library/Data/DumpEnvironment.cs b/MPF.Library/Data/DumpEnvironment.cs
index adc6cc4a..9f137a14 100644
--- a/MPF.Library/Data/DumpEnvironment.cs
+++ b/MPF.Library/Data/DumpEnvironment.cs
@@ -13,6 +13,7 @@ using MPF.Converters;
using MPF.Utilities;
using Newtonsoft.Json;
using RedumpLib.Attributes;
+using RedumpLib.Converters;
using RedumpLib.Data;
using RedumpLib.Web;
@@ -47,7 +48,7 @@ namespace MPF.Data
///
/// Currently selected system
///
- public KnownSystem? System { get; private set; }
+ public RedumpSystem? System { get; private set; }
///
/// Currently selected media type
@@ -111,7 +112,7 @@ namespace MPF.Data
string outputDirectory,
string outputFilename,
Drive drive,
- KnownSystem? system,
+ RedumpSystem? system,
MediaType? type,
string parameters)
{
@@ -202,7 +203,7 @@ namespace MPF.Data
public string GetFullParameters(int? driveSpeed)
{
// Populate with the correct params for inputs (if we're not on the default option)
- if (System != KnownSystem.NONE && Type != MediaType.NONE)
+ if (System != null && Type != MediaType.NONE)
{
// If drive letter is invalid, skip this
if (Drive == null)
@@ -589,7 +590,7 @@ namespace MPF.Data
CommonDiscInfo = new CommonDiscInfoSection()
{
System = this.System,
- Media = this.Type,
+ Media = this.Type.ToDiscType(),
Title = (Options.AddPlaceholders ? Template.RequiredValue : ""),
ForeignTitleNonLatin = (Options.AddPlaceholders ? Template.OptionalValue : ""),
DiscNumberLetter = (Options.AddPlaceholders ? Template.OptionalValue : ""),
@@ -793,19 +794,19 @@ namespace MPF.Data
break;
}
- // Extract info based specifically on KnownSystem
+ // Extract info based specifically on RedumpSystem
switch (System)
{
- case KnownSystem.AcornArchimedes:
+ case RedumpSystem.AcornArchimedes:
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.UK;
break;
- case KnownSystem.AppleMacintosh:
- case KnownSystem.EnhancedCD:
- case KnownSystem.IBMPCCompatible:
- case KnownSystem.PalmOS:
- case KnownSystem.PocketPC:
- case KnownSystem.RainbowDisc:
+ case RedumpSystem.AppleMacintosh:
+ case RedumpSystem.EnhancedCD:
+ case RedumpSystem.IBMPCcompatible:
+ case RedumpSystem.PalmOS:
+ case RedumpSystem.PocketPC:
+ case RedumpSystem.RainbowDisc:
if (string.IsNullOrWhiteSpace(info.CommonDiscInfo.Comments))
info.CommonDiscInfo.Comments += $"[T:ISBN] {(Options.AddPlaceholders ? Template.OptionalValue : "")}";
@@ -815,141 +816,141 @@ namespace MPF.Data
break;
- case KnownSystem.AudioCD:
- case KnownSystem.DVDAudio:
- case KnownSystem.SuperAudioCD:
+ case RedumpSystem.AudioCD:
+ case RedumpSystem.DVDAudio:
+ case RedumpSystem.SuperAudioCD:
info.CommonDiscInfo.Category = info.CommonDiscInfo.Category ?? DiscCategory.Audio;
break;
- case KnownSystem.BandaiPlaydiaQuickInteractiveSystem:
+ case RedumpSystem.BandaiPlaydiaQuickInteractiveSystem:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.Japan;
break;
- case KnownSystem.BDVideo:
+ case RedumpSystem.BDVideo:
info.CommonDiscInfo.Category = info.CommonDiscInfo.Category ?? DiscCategory.BonusDiscs;
info.CopyProtection.Protection = (Options.AddPlaceholders ? Template.RequiredIfExistsValue : "");
break;
- case KnownSystem.CommodoreAmiga:
+ case RedumpSystem.CommodoreAmigaCD:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.CommodoreAmigaCD32:
+ case RedumpSystem.CommodoreAmigaCD32:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.Europe;
break;
- case KnownSystem.CommodoreAmigaCDTV:
+ case RedumpSystem.CommodoreAmigaCDTV:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.Europe;
break;
- case KnownSystem.DVDVideo:
+ case RedumpSystem.DVDVideo:
info.CommonDiscInfo.Category = info.CommonDiscInfo.Category ?? DiscCategory.BonusDiscs;
break;
- case KnownSystem.FujitsuFMTowns:
+ case RedumpSystem.FujitsuFMTownsseries:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.Japan;
break;
- case KnownSystem.FujitsuFMTownsMarty:
+ case RedumpSystem.FujitsuFMTownsMarty:
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.Japan;
break;
- case KnownSystem.IncredibleTechnologiesEagle:
+ case RedumpSystem.IncredibleTechnologiesEagle:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.KonamieAmusement:
+ case RedumpSystem.KonamieAmusement:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.KonamiFirebeat:
+ case RedumpSystem.KonamiFireBeat:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.KonamiGVSystem:
+ case RedumpSystem.KonamiSystemGV:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.KonamiSystem573:
+ case RedumpSystem.KonamiSystem573:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.KonamiTwinkle:
+ case RedumpSystem.KonamiTwinkle:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.MattelHyperscan:
+ case RedumpSystem.MattelHyperScan:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.NamcoSegaNintendoTriforce:
+ case RedumpSystem.NamcoSegaNintendoTriforce:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.NavisoftNaviken21:
+ case RedumpSystem.NavisoftNaviken21:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.Japan;
break;
- case KnownSystem.NECPC88:
+ case RedumpSystem.NECPC88series:
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.Japan;
break;
- case KnownSystem.NECPC98:
+ case RedumpSystem.NECPC98series:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.Japan;
break;
- case KnownSystem.NECPCFX:
+ case RedumpSystem.NECPCFXPCFXGA:
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.Japan;
break;
- case KnownSystem.SegaChihiro:
+ case RedumpSystem.SegaChihiro:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.SegaDreamcast:
+ case RedumpSystem.SegaDreamcast:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.SegaNaomi:
+ case RedumpSystem.SegaNaomi:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.SegaNaomi2:
+ case RedumpSystem.SegaNaomi2:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.SegaTitanVideo:
+ case RedumpSystem.SegaTitanVideo:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.SharpX68000:
+ case RedumpSystem.SharpX68000:
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.Japan;
break;
- case KnownSystem.SNKNeoGeoCD:
+ case RedumpSystem.SNKNeoGeoCD:
info.CommonDiscInfo.EXEDateBuildDate = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.SonyPlayStation2:
+ case RedumpSystem.SonyPlayStation2:
info.CommonDiscInfo.LanguageSelection = new LanguageSelection?[] { LanguageSelection.BiosSettings, LanguageSelection.LanguageSelector, LanguageSelection.OptionsMenu };
break;
- case KnownSystem.SonyPlayStation3:
+ case RedumpSystem.SonyPlayStation3:
info.Extras.DiscKey = (Options.AddPlaceholders ? Template.RequiredValue : "");
info.Extras.DiscID = (Options.AddPlaceholders ? Template.RequiredValue : "");
break;
- case KnownSystem.TomyKissSite:
+ case RedumpSystem.TomyKissSite:
info.CommonDiscInfo.Region = info.CommonDiscInfo.Region ?? Region.Japan;
break;
- case KnownSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem:
+ case RedumpSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem:
info.CopyProtection.Protection = (Options.AddPlaceholders ? Template.RequiredIfExistsValue : "");
break;
}
@@ -979,10 +980,9 @@ namespace MPF.Data
{
// Sony-printed discs have layers in the opposite order
var system = info.CommonDiscInfo.System;
- bool reverseOrder = (system == KnownSystem.SonyPlayStation2
- || system == KnownSystem.SonyPlayStation3
- || system == KnownSystem.SonyPlayStation4
- || system == KnownSystem.SonyPlayStation5);
+ bool reverseOrder = (system == RedumpSystem.SonyPlayStation2
+ || system == RedumpSystem.SonyPlayStation3
+ || system == RedumpSystem.SonyPlayStation4);
// Common Disc Info section
List output = new List { "Common Disc Info:" };
@@ -992,7 +992,7 @@ namespace MPF.Data
AddIfExists(output, Template.DiscTitleField, info.CommonDiscInfo.DiscTitle, 1);
AddIfExists(output, Template.SystemField, info.CommonDiscInfo.System.LongName(), 1);
AddIfExists(output, Template.MediaTypeField, GetFixedMediaType(
- info.CommonDiscInfo.Media,
+ info.CommonDiscInfo.Media.ToMediaType(),
info.SizeAndChecksums.Size,
info.SizeAndChecksums.Layerbreak,
info.SizeAndChecksums.Layerbreak2,
@@ -1090,7 +1090,7 @@ namespace MPF.Data
AddIfExists(output, Template.EditionField, info.VersionAndEditions.OtherEditions, 1);
// EDC section
- if (info.CommonDiscInfo.System == KnownSystem.SonyPlayStation)
+ if (info.CommonDiscInfo.System == RedumpSystem.SonyPlayStation)
{
output.Add(""); output.Add("EDC:");
AddIfExists(output, Template.PlayStationEDCField, info.EDC.EDC.LongName(), 1);
@@ -1120,7 +1120,7 @@ namespace MPF.Data
|| info.CopyProtection.LibCrypt != YesNo.NULL)
{
output.Add(""); output.Add("Copy Protection:");
- if (info.CommonDiscInfo.System == KnownSystem.SonyPlayStation)
+ if (info.CommonDiscInfo.System == RedumpSystem.SonyPlayStation)
{
AddIfExists(output, Template.PlayStationAntiModchipField, info.CopyProtection.AntiModchip.LongName(), 1);
AddIfExists(output, Template.PlayStationLibCryptField, info.CopyProtection.LibCrypt.LongName(), 1);
diff --git a/MPF.Library/Data/Enumerations.cs b/MPF.Library/Data/Enumerations.cs
index d14c4d9c..1f30f6c9 100644
--- a/MPF.Library/Data/Enumerations.cs
+++ b/MPF.Library/Data/Enumerations.cs
@@ -49,231 +49,6 @@ namespace MPF.Data
UmdImageCreator,
}
- ///
- /// Known systems
- ///
- public enum KnownSystem
- {
- NONE = 0,
-
- #region Disc-Based Consoles
-
- AtariJaguarCD,
- BandaiPlaydiaQuickInteractiveSystem,
- BandaiApplePippin,
- CommodoreAmigaCD32,
- CommodoreAmigaCDTV,
- EnvizionsEVOSmartConsole,
- FujitsuFMTownsMarty,
- HasbroVideoNow,
- HasbroVideoNowColor,
- HasbroVideoNowJr,
- HasbroVideoNowXP,
- MattelFisherPriceiXL,
- MattelHyperscan,
- MicrosoftXBOX,
- MicrosoftXBOX360,
- MicrosoftXBOXOne,
- MicrosoftXboxSeriesXS,
- NECPCEngineTurboGrafxCD,
- NECPCFX,
- NintendoGameCube,
- NintendoSonySuperNESCDROMSystem,
- NintendoWii,
- NintendoWiiU,
- Panasonic3DOInteractiveMultiplayer, // The 3DO Company 3DO Interactive Multiplayer
- PhilipsCDi,
- PioneerLaserActive,
- SegaCDMegaCD,
- SegaDreamcast,
- SegaSaturn,
- SNKNeoGeoCD,
- SonyPlayStation,
- SonyPlayStation2,
- SonyPlayStation3,
- SonyPlayStation4,
- SonyPlayStation5,
- SonyPlayStationPortable,
- TandyMemorexVisualInformationSystem,
- VMLabsNuon,
- VTechVFlashVSmilePro,
- ZAPiTGamesGameWaveFamilyEntertainmentSystem,
-
- MarkerDiscBasedConsoleEnd,
-
- #endregion
-
- #region Cartridge-Based and Other Consoles
-
- /*
- AmstradGX4000,
- APFMicrocomputerSystem,
- Atari2600VCS,
- Atari5200,
- Atari7800,
- AtariJaguar,
- AtariXEVideoGameSystem,
- Audiosonic1292AdvancedProgrammableVideoSystem,
- BallyAstrocade,
- BitCorporationDina,
- CasioLoopy,
- CasioPV1000,
- Commodore64GamesSystem,
- DaewooElectronicsZemmix,
- EmersonArcadia2001,
- EpochCassetteVision,
- EpochSuperCassetteVision,
- FairchildChannelF,
- FuntechSuperACan,
- GeneralConsumerElectricVectrex,
- HeberBBCBridgeCompanion,
- IntertonVC4000,
- JungleTacVii,
- LeapFrogClickStart,
- LJNVideoArt,
- MagnavoxOdyssey2,
- MattelIntellivision,
- NECPCEngineTurboGrafx16,
- NichibutsuMyVision,
- Nintendo64,
- Nintendo64DD,
- NintendoFamilyComputerNintendoEntertainmentSystem,
- NintendoFamilyComputerDiskSystem,
- NintendoSuperFamicomSuperNintendoEntertainmentSystem,
- NintendoSwitch,
- PhilipsVideopacPlusG7400,
- RCAStudioII,
- Sega32X,
- SegaMarkIIIMasterSystem,
- SegaMegaDriveGenesis,
- SegaSG1000,
- SNKNeoGeo,
- SSDCOMPANYLIMITEDXaviXPORT,
- ViewMasterInteractiveVision,
- VTechCreatiVision,
- VTechVSmile,
- VTechSocrates,
- WorldsOfWonderActionMax,
-
- MarkerOtherConsoleEnd,
- */
-
- #endregion
-
- #region Computers
-
- AcornArchimedes,
- AppleMacintosh,
- CommodoreAmiga,
- FujitsuFMTowns,
- IBMPCCompatible,
- NECPC88,
- NECPC98,
- SharpX68000,
-
- MarkerComputerEnd,
-
- #endregion
-
- #region Arcade
-
- AmigaCUBOCD32,
- AmericanLaserGames3DO,
- Atari3DO,
- Atronic,
- AUSCOMSystem1,
- BallyGameMagic,
- CapcomCPSystemIII,
- funworldPhotoPlay,
- GlobalVRVarious,
- GlobalVRVortek,
- GlobalVRVortekV3,
- ICEPCHardware,
- IncredibleTechnologiesEagle,
- IncredibleTechnologiesVarious,
- KonamieAmusement,
- KonamiFirebeat,
- KonamiGVSystem,
- KonamiM2,
- KonamiPython,
- KonamiPython2,
- KonamiSystem573,
- KonamiTwinkle,
- KonamiVarious,
- MeritIndustriesBoardwalk,
- MeritIndustriesMegaTouchForce,
- MeritIndustriesMegaTouchION,
- MeritIndustriesMegaTouchMaxx,
- MeritIndustriesMegaTouchXL,
- NamcoCapcomSystem256,
- NamcoCapcomTaitoSystem246,
- NamcoSegaNintendoTriforce,
- NamcoSystem12,
- NamcoSystem357,
- NewJatreCDi,
- NichibutsuHighRateSystem,
- NichibutsuSuperCD,
- NichibutsuXRateSystem,
- PanasonicM2,
- PhotoPlayVarious,
- RawThrillsVarious,
- SegaChihiro,
- SegaEuropaR,
- SegaLindbergh,
- SegaNaomi,
- SegaNaomi2,
- SegaNu,
- SegaRingEdge,
- SegaRingEdge2,
- SegaRingWide,
- SegaTitanVideo,
- SegaSystem32,
- SeibuCATSSystem,
- TABAustriaQuizard,
- TsunamiTsuMoMultiGameMotionSystem,
-
- MarkerArcadeEnd,
-
- #endregion
-
- #region Other
-
- AudioCD,
- BDVideo,
- DVDAudio,
- DVDVideo,
- EnhancedCD,
- HDDVDVideo,
- NavisoftNaviken21,
- PalmOS,
- PhotoCD,
- PlayStationGameSharkUpdates,
- PocketPC,
- RainbowDisc,
- SegaPrologue21,
- SuperAudioCD,
- TaoiKTV,
- TomyKissSite,
- VideoCD,
-
- MarkerOtherEnd,
-
- #endregion
- }
-
- ///
- /// Known system category
- ///
- public enum KnownSystemCategory
- {
- DiscBasedConsole = 0,
- OtherConsole,
- Computer,
- Arcade,
- Other,
- Custom
- };
-
///
/// Known media types
///
@@ -407,16 +182,6 @@ namespace MPF.Data
TapeDSTLarge = 66,
}
- ///
- /// Generic yes/no values for Redump
- ///
- public enum YesNo
- {
- NULL = 0,
- No = 1,
- Yes = 2,
- }
-
#region Win32_CDROMDrive
// https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-cdromdrive
diff --git a/MPF.Library/Data/Options.cs b/MPF.Library/Data/Options.cs
index 63527f7a..9e3fbc55 100644
--- a/MPF.Library/Data/Options.cs
+++ b/MPF.Library/Data/Options.cs
@@ -3,6 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using MPF.Converters;
using MPF.Utilities;
+using RedumpLib.Data;
namespace MPF.Data
{
@@ -81,13 +82,13 @@ namespace MPF.Data
///
/// Default system if none can be detected
///
- public KnownSystem DefaultSystem
+ public RedumpSystem? DefaultSystem
{
get
{
- string valueString = GetStringSetting(_settings, "DefaultSystem", KnownSystem.NONE.ToString());
- var valueEnum = EnumConverter.ToKnownSystem(valueString);
- return valueEnum ?? KnownSystem.NONE;
+ string valueString = GetStringSetting(_settings, "DefaultSystem", null);
+ var valueEnum = Extensions.ToRedumpSystem(valueString);
+ return valueEnum;
}
set
{
diff --git a/MPF.Library/DiscImageCreator/Converters.cs b/MPF.Library/DiscImageCreator/Converters.cs
index 836076ea..49655db2 100644
--- a/MPF.Library/DiscImageCreator/Converters.cs
+++ b/MPF.Library/DiscImageCreator/Converters.cs
@@ -1,4 +1,5 @@
using MPF.Data;
+using RedumpLib.Data;
namespace MPF.DiscImageCreator
{
@@ -10,33 +11,33 @@ namespace MPF.DiscImageCreator
/// Get the most common known system for a given MediaType
///
/// Command value to check
- /// KnownSystem if possible, null on error
- public static KnownSystem? ToKnownSystem(string baseCommand)
+ /// RedumpSystem if possible, null on error
+ public static RedumpSystem? ToRedumpSystem(string baseCommand)
{
switch (baseCommand)
{
case CommandStrings.Audio:
- return KnownSystem.AudioCD;
+ return RedumpSystem.AudioCD;
case CommandStrings.CompactDisc:
case CommandStrings.Data:
case CommandStrings.DigitalVideoDisc:
case CommandStrings.Disk:
case CommandStrings.Floppy:
case CommandStrings.Tape:
- return KnownSystem.IBMPCCompatible;
+ return RedumpSystem.IBMPCcompatible;
case CommandStrings.GDROM:
case CommandStrings.Swap:
- return KnownSystem.SegaDreamcast;
+ return RedumpSystem.SegaDreamcast;
case CommandStrings.BluRay:
- return KnownSystem.SonyPlayStation3;
+ return RedumpSystem.SonyPlayStation3;
case CommandStrings.SACD:
- return KnownSystem.SuperAudioCD;
+ return RedumpSystem.SuperAudioCD;
case CommandStrings.XBOX:
case CommandStrings.XBOXSwap:
- return KnownSystem.MicrosoftXBOX;
+ return RedumpSystem.MicrosoftXbox;
case CommandStrings.XGD2Swap:
case CommandStrings.XGD3Swap:
- return KnownSystem.MicrosoftXBOX360;
+ return RedumpSystem.MicrosoftXbox360;
default:
return null;
}
diff --git a/MPF.Library/DiscImageCreator/Parameters.cs b/MPF.Library/DiscImageCreator/Parameters.cs
index 727229a1..7f4a0884 100644
--- a/MPF.Library/DiscImageCreator/Parameters.cs
+++ b/MPF.Library/DiscImageCreator/Parameters.cs
@@ -160,7 +160,7 @@ namespace MPF.DiscImageCreator
public Parameters(string parameters) : base(parameters) { }
///
- public Parameters(KnownSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
+ public Parameters(RedumpSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
: base(system, type, driveLetter, filename, driveSpeed, options)
{
}
@@ -436,13 +436,13 @@ namespace MPF.DiscImageCreator
break;
}
- // Extract info based specifically on KnownSystem
+ // Extract info based specifically on RedumpSystem
switch (this.System)
{
- case KnownSystem.AppleMacintosh:
- case KnownSystem.EnhancedCD:
- case KnownSystem.IBMPCCompatible:
- case KnownSystem.RainbowDisc:
+ case RedumpSystem.AppleMacintosh:
+ case RedumpSystem.EnhancedCD:
+ case RedumpSystem.IBMPCcompatible:
+ case RedumpSystem.RainbowDisc:
if (File.Exists(basePath + "_subIntention.txt"))
{
FileInfo fi = new FileInfo(basePath + "_subIntention.txt");
@@ -452,12 +452,12 @@ namespace MPF.DiscImageCreator
break;
- case KnownSystem.DVDAudio:
- case KnownSystem.DVDVideo:
+ case RedumpSystem.DVDAudio:
+ case RedumpSystem.DVDVideo:
info.CopyProtection.Protection = GetDVDProtection(basePath + "_CSSKey.txt", basePath + "_disc.txt") ?? "";
break;
- case KnownSystem.KonamiPython2:
+ case RedumpSystem.KonamiPython2:
if (GetPlayStationExecutableInfo(drive?.Letter, out string pythonTwoSerial, out Region? pythonTwoRegion, out string pythonTwoDate))
{
info.CommonDiscInfo.Comments += $"Internal Disc Serial: {pythonTwoSerial}\n";
@@ -468,7 +468,7 @@ namespace MPF.DiscImageCreator
info.VersionAndEditions.Version = GetPlayStation2Version(drive?.Letter) ?? "";
break;
- case KnownSystem.MicrosoftXBOX:
+ case RedumpSystem.MicrosoftXbox:
if (GetXgdAuxInfo(basePath + "_disc.txt", out string dmihash, out string pfihash, out string sshash, out string ss, out string ssver))
{
info.CommonDiscInfo.Comments += $"{Template.XBOXDMIHash}: {dmihash ?? ""}\n" +
@@ -487,7 +487,7 @@ namespace MPF.DiscImageCreator
break;
- case KnownSystem.MicrosoftXBOX360:
+ case RedumpSystem.MicrosoftXbox360:
if (GetXgdAuxInfo(basePath + "_disc.txt", out string dmi360hash, out string pfi360hash, out string ss360hash, out string ss360, out string ssver360))
{
info.CommonDiscInfo.Comments += $"{Template.XBOXDMIHash}: {dmi360hash ?? ""}\n" +
@@ -505,7 +505,7 @@ namespace MPF.DiscImageCreator
}
break;
- case KnownSystem.NamcoSegaNintendoTriforce:
+ case RedumpSystem.NamcoSegaNintendoTriforce:
if (this.Type == MediaType.CDROM)
{
info.Extras.Header = GetSegaHeader(basePath + "_mainInfo.txt") ?? "";
@@ -524,7 +524,7 @@ namespace MPF.DiscImageCreator
break;
- case KnownSystem.SegaCDMegaCD:
+ case RedumpSystem.SegaMegaCDSegaCD:
info.Extras.Header = GetSegaHeader(basePath + "_mainInfo.txt") ?? "";
// Take only the last 16 lines for Sega CD
@@ -539,7 +539,7 @@ namespace MPF.DiscImageCreator
break;
- case KnownSystem.SegaChihiro:
+ case RedumpSystem.SegaChihiro:
if (this.Type == MediaType.CDROM)
{
info.Extras.Header = GetSegaHeader(basePath + "_mainInfo.txt") ?? "";
@@ -558,7 +558,7 @@ namespace MPF.DiscImageCreator
break;
- case KnownSystem.SegaDreamcast:
+ case RedumpSystem.SegaDreamcast:
if (this.Type == MediaType.CDROM)
{
info.Extras.Header = GetSegaHeader(basePath + "_mainInfo.txt") ?? "";
@@ -577,7 +577,7 @@ namespace MPF.DiscImageCreator
break;
- case KnownSystem.SegaNaomi:
+ case RedumpSystem.SegaNaomi:
if (this.Type == MediaType.CDROM)
{
info.Extras.Header = GetSegaHeader(basePath + "_mainInfo.txt") ?? "";
@@ -596,7 +596,7 @@ namespace MPF.DiscImageCreator
break;
- case KnownSystem.SegaNaomi2:
+ case RedumpSystem.SegaNaomi2:
if (this.Type == MediaType.CDROM)
{
info.Extras.Header = GetSegaHeader(basePath + "_mainInfo.txt") ?? "";
@@ -615,7 +615,7 @@ namespace MPF.DiscImageCreator
break;
- case KnownSystem.SegaSaturn:
+ case RedumpSystem.SegaSaturn:
info.Extras.Header = GetSegaHeader(basePath + "_mainInfo.txt") ?? "";
// Take only the first 16 lines for Saturn
@@ -631,7 +631,7 @@ namespace MPF.DiscImageCreator
break;
- case KnownSystem.SonyPlayStation:
+ case RedumpSystem.SonyPlayStation:
if (GetPlayStationExecutableInfo(drive?.Letter, out string playstationSerial, out Region? playstationRegion, out string playstationDate))
{
info.CommonDiscInfo.Comments += $"Internal Serial: {playstationSerial ?? ""}\n";
@@ -688,7 +688,7 @@ namespace MPF.DiscImageCreator
break;
- case KnownSystem.SonyPlayStation2:
+ case RedumpSystem.SonyPlayStation2:
if (GetPlayStationExecutableInfo(drive?.Letter, out string playstationTwoSerial, out Region? playstationTwoRegion, out string playstationTwoDate))
{
info.CommonDiscInfo.Comments += $"Internal Disc Serial: {playstationTwoSerial}\n";
@@ -699,11 +699,11 @@ namespace MPF.DiscImageCreator
info.VersionAndEditions.Version = GetPlayStation2Version(drive?.Letter) ?? "";
break;
- case KnownSystem.SonyPlayStation4:
+ case RedumpSystem.SonyPlayStation4:
info.VersionAndEditions.Version = GetPlayStation4Version(drive?.Letter) ?? "";
break;
- case KnownSystem.SonyPlayStation5:
+ case RedumpSystem.SonyPlayStation5:
info.VersionAndEditions.Version = GetPlayStation5Version(drive?.Letter) ?? "";
break;
}
@@ -1645,8 +1645,8 @@ namespace MPF.DiscImageCreator
switch (this.System)
{
- case KnownSystem.AppleMacintosh:
- case KnownSystem.IBMPCCompatible:
+ case RedumpSystem.AppleMacintosh:
+ case RedumpSystem.IBMPCcompatible:
this[FlagStrings.NoFixSubQSecuROM] = true;
this[FlagStrings.ScanFileProtect] = true;
this[FlagStrings.ScanSectorProtect] = options.DICParanoidMode;
@@ -1655,17 +1655,17 @@ namespace MPF.DiscImageCreator
SubchannelReadLevelValue = 2;
break;
- case KnownSystem.AtariJaguarCD:
+ case RedumpSystem.AtariJaguarCDInteractiveMultimediaSystem:
this[FlagStrings.AtariJaguar] = true;
break;
- case KnownSystem.HasbroVideoNow:
- case KnownSystem.HasbroVideoNowColor:
- case KnownSystem.HasbroVideoNowJr:
- case KnownSystem.HasbroVideoNowXP:
+ case RedumpSystem.HasbroVideoNow:
+ case RedumpSystem.HasbroVideoNowColor:
+ case RedumpSystem.HasbroVideoNowJr:
+ case RedumpSystem.HasbroVideoNowXP:
this[FlagStrings.AddOffset] = true;
this.AddOffsetValue = 0; // Value needed for first run and placeholder after
break;
- case KnownSystem.SonyPlayStation:
+ case RedumpSystem.SonyPlayStation:
this[FlagStrings.ScanAntiMod] = true;
this[FlagStrings.NoFixSubQLibCrypt] = true;
break;
@@ -2332,9 +2332,9 @@ namespace MPF.DiscImageCreator
///
/// Set the DIC command to be used for a given system and media type
///
- /// KnownSystem value to check
+ /// RedumpSystem value to check
/// MediaType value to check
- private void SetBaseCommand(KnownSystem? system, MediaType? type)
+ private void SetBaseCommand(RedumpSystem? system, MediaType? type)
{
// If we have an invalid combination, we should BaseCommand = null
if (!Validators.GetValidMediaTypes(system).Contains(type))
@@ -2346,14 +2346,14 @@ namespace MPF.DiscImageCreator
switch (type)
{
case MediaType.CDROM:
- if (system == KnownSystem.SuperAudioCD)
+ if (system == RedumpSystem.SuperAudioCD)
BaseCommand = CommandStrings.SACD;
else
BaseCommand = CommandStrings.CompactDisc;
return;
case MediaType.DVD:
- if (system == KnownSystem.MicrosoftXBOX
- || system == KnownSystem.MicrosoftXBOX360)
+ if (system == RedumpSystem.MicrosoftXbox
+ || system == RedumpSystem.MicrosoftXbox360)
{
BaseCommand = CommandStrings.XBOX;
return;
diff --git a/MPF.Library/UmdImageCreator/Parameters.cs b/MPF.Library/UmdImageCreator/Parameters.cs
index fb0c79ef..e709b100 100644
--- a/MPF.Library/UmdImageCreator/Parameters.cs
+++ b/MPF.Library/UmdImageCreator/Parameters.cs
@@ -23,7 +23,7 @@ namespace MPF.UmdImageCreator
public Parameters(string parameters) : base(parameters) { }
///
- public Parameters(KnownSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
+ public Parameters(RedumpSystem? system, MediaType? type, char driveLetter, string filename, int? driveSpeed, Options options)
: base(system, type, driveLetter, filename, driveSpeed, options)
{
}
diff --git a/MPF.Library/Utilities/EnumExtensions.cs b/MPF.Library/Utilities/EnumExtensions.cs
index ed3140c1..e12d7f10 100644
--- a/MPF.Library/Utilities/EnumExtensions.cs
+++ b/MPF.Library/Utilities/EnumExtensions.cs
@@ -1,32 +1,10 @@
using MPF.Data;
+using RedumpLib.Data;
namespace MPF.Utilities
{
public static class EnumExtensions
{
- ///
- /// Determine the category based on the system
- ///
- /// KnownSystem value to check
- /// KnownSystemCategory related to the system
- public static KnownSystemCategory Category(this KnownSystem? system)
- {
- if (system < KnownSystem.MarkerDiscBasedConsoleEnd)
- return KnownSystemCategory.DiscBasedConsole;
- /*
- else if (system < KnownSystem.MarkerOtherConsoleEnd)
- return KnownSystemCategory.OtherConsole;
- */
- else if (system < KnownSystem.MarkerComputerEnd)
- return KnownSystemCategory.Computer;
- else if (system < KnownSystem.MarkerArcadeEnd)
- return KnownSystemCategory.Arcade;
- else if (system < KnownSystem.MarkerOtherEnd)
- return KnownSystemCategory.Other;
- else
- return KnownSystemCategory.Custom;
- }
-
///
/// Determine if the media supports drive speeds
///
@@ -52,25 +30,25 @@ namespace MPF.Utilities
///
/// Determine if a system is considered audio-only
///
- /// KnownSystem value to check
+ /// RedumpSystem value to check
/// True if the system is audio-only, false otherwise
///
/// Philips CD-i should NOT be in this list. It's being included until there's a
/// reasonable distinction between CD-i and CD-i ready on the database side.
///
- public static bool IsAudio(this KnownSystem? system)
+ public static bool IsAudio(this RedumpSystem? system)
{
switch (system)
{
- case KnownSystem.AtariJaguarCD:
- case KnownSystem.AudioCD:
- case KnownSystem.DVDAudio:
- case KnownSystem.HasbroVideoNow:
- case KnownSystem.HasbroVideoNowColor:
- case KnownSystem.HasbroVideoNowJr:
- case KnownSystem.HasbroVideoNowXP:
- case KnownSystem.PhilipsCDi:
- case KnownSystem.SuperAudioCD:
+ case RedumpSystem.AtariJaguarCDInteractiveMultimediaSystem:
+ case RedumpSystem.AudioCD:
+ case RedumpSystem.DVDAudio:
+ case RedumpSystem.HasbroVideoNow:
+ case RedumpSystem.HasbroVideoNowColor:
+ case RedumpSystem.HasbroVideoNowJr:
+ case RedumpSystem.HasbroVideoNowXP:
+ case RedumpSystem.PhilipsCDi:
+ case RedumpSystem.SuperAudioCD:
return true;
default:
return false;
@@ -80,17 +58,17 @@ namespace MPF.Utilities
///
/// Determine if a system is a marker value
///
- /// KnownSystem value to check
+ /// RedumpSystem value to check
/// True if the system is a marker value, false otherwise
- public static bool IsMarker(this KnownSystem? system)
+ public static bool IsMarker(this RedumpSystem? system)
{
switch (system)
{
- case KnownSystem.MarkerArcadeEnd:
- case KnownSystem.MarkerComputerEnd:
- case KnownSystem.MarkerDiscBasedConsoleEnd:
- // case KnownSystem.MarkerOtherConsoleEnd:
- case KnownSystem.MarkerOtherEnd:
+ case RedumpSystem.MarkerArcadeEnd:
+ case RedumpSystem.MarkerComputerEnd:
+ case RedumpSystem.MarkerDiscBasedConsoleEnd:
+ // case RedumpSystem.MarkerOtherConsoleEnd:
+ case RedumpSystem.MarkerOtherEnd:
return true;
default:
return false;
@@ -100,16 +78,16 @@ namespace MPF.Utilities
///
/// Determine if a system is considered XGD
///
- /// KnownSystem value to check
+ /// RedumpSystem value to check
/// True if the system is XGD, false otherwise
- public static bool IsXGD(this KnownSystem? system)
+ public static bool IsXGD(this RedumpSystem? system)
{
switch (system)
{
- case KnownSystem.MicrosoftXBOX:
- case KnownSystem.MicrosoftXBOX360:
- case KnownSystem.MicrosoftXBOXOne:
- case KnownSystem.MicrosoftXboxSeriesXS:
+ case RedumpSystem.MicrosoftXbox:
+ case RedumpSystem.MicrosoftXbox360:
+ case RedumpSystem.MicrosoftXboxOne:
+ case RedumpSystem.MicrosoftXboxSeriesXS:
return true;
default:
return false;
diff --git a/MPF.Library/Utilities/Validators.cs b/MPF.Library/Utilities/Validators.cs
index 024c4319..fc712a17 100644
--- a/MPF.Library/Utilities/Validators.cs
+++ b/MPF.Library/Utilities/Validators.cs
@@ -7,6 +7,7 @@ using System.Threading.Tasks;
using BurnOutSharp;
using MPF.Converters;
using MPF.Data;
+using RedumpLib.Data;
#if NET_FRAMEWORK
using IMAPI2;
#endif
@@ -16,11 +17,11 @@ namespace MPF.Utilities
public static class Validators
{
///
- /// Get a list of valid MediaTypes for a given KnownSystem
+ /// Get a list of valid MediaTypes for a given RedumpSystem
///
- /// KnownSystem value to check
+ /// RedumpSystem value to check
/// MediaTypes, if possible
- public static List GetValidMediaTypes(KnownSystem? sys)
+ public static List GetValidMediaTypes(RedumpSystem? sys)
{
var types = new List();
@@ -29,214 +30,214 @@ namespace MPF.Utilities
#region Consoles
// https://en.wikipedia.org/wiki/Atari_Jaguar_CD
- case KnownSystem.AtariJaguarCD:
+ case RedumpSystem.AtariJaguarCDInteractiveMultimediaSystem:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Playdia
- case KnownSystem.BandaiPlaydiaQuickInteractiveSystem:
+ case RedumpSystem.BandaiPlaydiaQuickInteractiveSystem:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Apple_Bandai_Pippin
- case KnownSystem.BandaiApplePippin:
+ case RedumpSystem.BandaiPippin:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Amiga_CD32
- case KnownSystem.CommodoreAmigaCD32:
+ case RedumpSystem.CommodoreAmigaCD32:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Commodore_CDTV
- case KnownSystem.CommodoreAmigaCDTV:
+ case RedumpSystem.CommodoreAmigaCDTV:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/EVO_Smart_Console
- case KnownSystem.EnvizionsEVOSmartConsole:
+ case RedumpSystem.EnvizionsEVOSmartConsole:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/FM_Towns_Marty
- case KnownSystem.FujitsuFMTownsMarty:
+ case RedumpSystem.FujitsuFMTownsMarty:
types.Add(MediaType.CDROM);
types.Add(MediaType.FloppyDisk);
break;
// https://en.wikipedia.org/wiki/VideoNow
- case KnownSystem.HasbroVideoNow:
+ case RedumpSystem.HasbroVideoNow:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/VideoNow
- case KnownSystem.HasbroVideoNowColor:
+ case RedumpSystem.HasbroVideoNowColor:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/VideoNow
- case KnownSystem.HasbroVideoNowJr:
+ case RedumpSystem.HasbroVideoNowJr:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/VideoNow
- case KnownSystem.HasbroVideoNowXP:
+ case RedumpSystem.HasbroVideoNowXP:
types.Add(MediaType.CDROM);
break;
- case KnownSystem.MattelFisherPriceiXL:
+ case RedumpSystem.MattelFisherPriceiXL:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/HyperScan
- case KnownSystem.MattelHyperscan:
+ case RedumpSystem.MattelHyperScan:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Xbox_(console)
- case KnownSystem.MicrosoftXBOX:
+ case RedumpSystem.MicrosoftXbox:
types.Add(MediaType.DVD);
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Xbox_360
- case KnownSystem.MicrosoftXBOX360:
+ case RedumpSystem.MicrosoftXbox360:
types.Add(MediaType.DVD);
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Xbox_One
- case KnownSystem.MicrosoftXBOXOne:
+ case RedumpSystem.MicrosoftXboxOne:
types.Add(MediaType.BluRay);
break;
// https://en.wikipedia.org/wiki/Xbox_Series_X_and_Series_S
- case KnownSystem.MicrosoftXboxSeriesXS:
+ case RedumpSystem.MicrosoftXboxSeriesXS:
types.Add(MediaType.BluRay);
break;
// https://en.wikipedia.org/wiki/TurboGrafx-16
- case KnownSystem.NECPCEngineTurboGrafxCD:
+ case RedumpSystem.NECPCEngineCDTurboGrafxCD:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/PC-FX
- case KnownSystem.NECPCFX:
+ case RedumpSystem.NECPCFXPCFXGA:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/GameCube
- case KnownSystem.NintendoGameCube:
+ case RedumpSystem.NintendoGameCube:
types.Add(MediaType.DVD); // Only added here to help users; not strictly correct
types.Add(MediaType.NintendoGameCubeGameDisc);
break;
// https://en.wikipedia.org/wiki/Super_NES_CD-ROM
- case KnownSystem.NintendoSonySuperNESCDROMSystem:
+ case RedumpSystem.NintendoSonySuperNESCDROMSystem:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Wii
- case KnownSystem.NintendoWii:
+ case RedumpSystem.NintendoWii:
types.Add(MediaType.DVD); // Only added here to help users; not strictly correct
types.Add(MediaType.NintendoWiiOpticalDisc);
break;
// https://en.wikipedia.org/wiki/Wii_U
- case KnownSystem.NintendoWiiU:
+ case RedumpSystem.NintendoWiiU:
types.Add(MediaType.NintendoWiiUOpticalDisc);
break;
// https://en.wikipedia.org/wiki/3DO_Interactive_Multiplayer
- case KnownSystem.Panasonic3DOInteractiveMultiplayer:
+ case RedumpSystem.Panasonic3DOInteractiveMultiplayer:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Philips_CD-i
- case KnownSystem.PhilipsCDi:
+ case RedumpSystem.PhilipsCDi:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/LaserActive
- case KnownSystem.PioneerLaserActive:
+ case RedumpSystem.PioneerLaserActive:
types.Add(MediaType.CDROM);
types.Add(MediaType.LaserDisc);
break;
// https://en.wikipedia.org/wiki/Sega_CD
- case KnownSystem.SegaCDMegaCD:
+ case RedumpSystem.SegaMegaCDSegaCD:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Dreamcast
- case KnownSystem.SegaDreamcast:
+ case RedumpSystem.SegaDreamcast:
types.Add(MediaType.CDROM); // Low density partition, MIL-CD
types.Add(MediaType.GDROM); // High density partition
break;
// https://en.wikipedia.org/wiki/Sega_Saturn
- case KnownSystem.SegaSaturn:
+ case RedumpSystem.SegaSaturn:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Neo_Geo_CD
- case KnownSystem.SNKNeoGeoCD:
+ case RedumpSystem.SNKNeoGeoCD:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/PlayStation_(console)
- case KnownSystem.SonyPlayStation:
+ case RedumpSystem.SonyPlayStation:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/PlayStation_2
- case KnownSystem.SonyPlayStation2:
+ case RedumpSystem.SonyPlayStation2:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/PlayStation_3
- case KnownSystem.SonyPlayStation3:
+ case RedumpSystem.SonyPlayStation3:
types.Add(MediaType.BluRay);
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/PlayStation_4
- case KnownSystem.SonyPlayStation4:
+ case RedumpSystem.SonyPlayStation4:
types.Add(MediaType.BluRay);
break;
// https://en.wikipedia.org/wiki/PlayStation_5
- case KnownSystem.SonyPlayStation5:
+ case RedumpSystem.SonyPlayStation5:
types.Add(MediaType.BluRay);
break;
// https://en.wikipedia.org/wiki/PlayStation_Portable
- case KnownSystem.SonyPlayStationPortable:
+ case RedumpSystem.SonyPlayStationPortable:
types.Add(MediaType.UMD);
types.Add(MediaType.CDROM); // Development discs only
types.Add(MediaType.DVD); // Development discs only
break;
// https://en.wikipedia.org/wiki/Tandy_Video_Information_System
- case KnownSystem.TandyMemorexVisualInformationSystem:
+ case RedumpSystem.MemorexVisualInformationSystem:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Nuon_(DVD_technology)
- case KnownSystem.VMLabsNuon:
+ case RedumpSystem.VMLabsNUON:
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/V.Flash
- case KnownSystem.VTechVFlashVSmilePro:
+ case RedumpSystem.VTechVFlashVSmilePro:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Game_Wave_Family_Entertainment_System
- case KnownSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem:
+ case RedumpSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem:
types.Add(MediaType.DVD);
break;
@@ -245,13 +246,13 @@ namespace MPF.Utilities
#region Computers
// https://en.wikipedia.org/wiki/Acorn_Archimedes
- case KnownSystem.AcornArchimedes:
+ case RedumpSystem.AcornArchimedes:
types.Add(MediaType.CDROM);
types.Add(MediaType.FloppyDisk);
break;
// https://en.wikipedia.org/wiki/Macintosh
- case KnownSystem.AppleMacintosh:
+ case RedumpSystem.AppleMacintosh:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
types.Add(MediaType.FloppyDisk);
@@ -259,18 +260,18 @@ namespace MPF.Utilities
break;
// https://en.wikipedia.org/wiki/Amiga
- case KnownSystem.CommodoreAmiga:
+ case RedumpSystem.CommodoreAmigaCD:
types.Add(MediaType.CDROM);
types.Add(MediaType.FloppyDisk);
break;
// https://en.wikipedia.org/wiki/FM_Towns
- case KnownSystem.FujitsuFMTowns:
+ case RedumpSystem.FujitsuFMTownsseries:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/IBM_PC_compatible
- case KnownSystem.IBMPCCompatible:
+ case RedumpSystem.IBMPCcompatible:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
types.Add(MediaType.BluRay);
@@ -280,20 +281,20 @@ namespace MPF.Utilities
break;
// https://en.wikipedia.org/wiki/PC-8800_series
- case KnownSystem.NECPC88:
+ case RedumpSystem.NECPC88series:
types.Add(MediaType.CDROM);
types.Add(MediaType.FloppyDisk);
break;
// https://en.wikipedia.org/wiki/PC-9800_series
- case KnownSystem.NECPC98:
+ case RedumpSystem.NECPC98series:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
types.Add(MediaType.FloppyDisk);
break;
// https://en.wikipedia.org/wiki/X68000
- case KnownSystem.SharpX68000:
+ case RedumpSystem.SharpX68000:
types.Add(MediaType.CDROM);
types.Add(MediaType.FloppyDisk);
break;
@@ -303,110 +304,110 @@ namespace MPF.Utilities
#region Arcade
// https://www.bigbookofamigahardware.com/bboah/product.aspx?id=36
- case KnownSystem.AmigaCUBOCD32:
+ case RedumpSystem.AmigaCUBOCD32:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Orbatak
- case KnownSystem.AmericanLaserGames3DO:
+ case RedumpSystem.AmericanLaserGames3DO:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=779
- case KnownSystem.Atari3DO:
+ case RedumpSystem.Atari3DO:
types.Add(MediaType.CDROM);
break;
// http://newlifegames.net/nlg/index.php?topic=22003.0
// http://newlifegames.net/nlg/index.php?topic=5486.msg119440
- case KnownSystem.Atronic:
+ case RedumpSystem.Atronic:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://www.arcade-museum.com/members/member_detail.php?member_id=406530
- case KnownSystem.AUSCOMSystem1:
+ case RedumpSystem.AUSCOMSystem1:
types.Add(MediaType.CDROM);
break;
// http://newlifegames.net/nlg/index.php?topic=285.0
- case KnownSystem.BallyGameMagic:
+ case RedumpSystem.BallyGameMagic:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/CP_System_III
- case KnownSystem.CapcomCPSystemIII:
+ case RedumpSystem.CapcomCPSystemIII:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
- case KnownSystem.funworldPhotoPlay:
+ case RedumpSystem.funworldPhotoPlay:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
- case KnownSystem.GlobalVRVarious:
+ case RedumpSystem.GlobalVRVarious:
types.Add(MediaType.CDROM);
break;
// https://service.globalvr.com/troubleshooting/vortek.html
- case KnownSystem.GlobalVRVortek:
+ case RedumpSystem.GlobalVRVortek:
types.Add(MediaType.CDROM);
break;
// https://service.globalvr.com/downloads/v3/040-1001-01c-V3-System-Manual.pdf
- case KnownSystem.GlobalVRVortekV3:
+ case RedumpSystem.GlobalVRVortekV3:
types.Add(MediaType.CDROM);
break;
// https://www.icegame.com/games
- case KnownSystem.ICEPCHardware:
+ case RedumpSystem.ICEPCHardware:
types.Add(MediaType.DVD);
break;
// https://github.com/mamedev/mame/blob/master/src/mame/drivers/iteagle.cpp
- case KnownSystem.IncredibleTechnologiesEagle:
+ case RedumpSystem.IncredibleTechnologiesEagle:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
- case KnownSystem.IncredibleTechnologiesVarious:
+ case RedumpSystem.IncredibleTechnologiesVarious:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/E-Amusement
- case KnownSystem.KonamieAmusement:
+ case RedumpSystem.KonamieAmusement:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=828
- case KnownSystem.KonamiFirebeat:
+ case RedumpSystem.KonamiFireBeat:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=577
- case KnownSystem.KonamiGVSystem:
+ case RedumpSystem.KonamiSystemGV:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=575
- case KnownSystem.KonamiM2:
+ case RedumpSystem.KonamiM2:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=586
// http://system16.com/hardware.php?id=977
- case KnownSystem.KonamiPython:
+ case RedumpSystem.KonamiPython:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=976
// http://system16.com/hardware.php?id=831
- case KnownSystem.KonamiPython2:
+ case RedumpSystem.KonamiPython2:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
@@ -414,23 +415,23 @@ namespace MPF.Utilities
// http://system16.com/hardware.php?id=582
// http://system16.com/hardware.php?id=822
// http://system16.com/hardware.php?id=823
- case KnownSystem.KonamiSystem573:
+ case RedumpSystem.KonamiSystem573:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=827
- case KnownSystem.KonamiTwinkle:
+ case RedumpSystem.KonamiTwinkle:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
- case KnownSystem.KonamiVarious:
+ case RedumpSystem.KonamiVarious:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://www.meritgames.com/Support_Center/manuals/PM0591-01.pdf
- case KnownSystem.MeritIndustriesBoardwalk:
+ case RedumpSystem.MeritIndustriesBoardwalk:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
@@ -438,12 +439,12 @@ namespace MPF.Utilities
// http://www.meritgames.com/Support_Center/Force%20Elite/PM0380-09.pdf
// http://www.meritgames.com/Support_Center/Force%20Upright/PM0382-07%20FORCE%20Upright%20manual.pdf
// http://www.meritgames.com/Support_Center/Force%20Upright/PM0383-07%20FORCE%20Upright%20manual.pdf
- case KnownSystem.MeritIndustriesMegaTouchForce:
+ case RedumpSystem.MeritIndustriesMegaTouchForce:
types.Add(MediaType.CDROM);
break;
// http://www.meritgames.com/Service%20Center/Ion%20Troubleshooting.pdf
- case KnownSystem.MeritIndustriesMegaTouchION:
+ case RedumpSystem.MeritIndustriesMegaTouchION:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
@@ -451,92 +452,92 @@ namespace MPF.Utilities
// http://www.meritgames.com/Support_Center/EZ%20Maxx/Manuals/MAXX%20Elite%20with%20coin.pdf
// http://www.meritgames.com/Support_Center/EZ%20Maxx/Manuals/MAXX%20Elite.pdf
// http://www.meritgames.com/Support_Center/manuals/90003010%20Maxx%20TSM_Rev%20C.pdf
- case KnownSystem.MeritIndustriesMegaTouchMaxx:
+ case RedumpSystem.MeritIndustriesMegaTouchMaxx:
types.Add(MediaType.CDROM);
break;
// http://www.meritgames.com/Support_Center/manuals/pm0076_OA_Megatouch%20XL%20Trouble%20Shooting%20Manual.pdf
// http://www.meritgames.com/Support_Center/MEGA%20XL/manuals/Megatouch_XL_pm0109-0D.pdf
// http://www.meritgames.com/Support_Center/MEGA%20XL/manuals/Megatouch_XL_Super_5000_manual.pdf
- case KnownSystem.MeritIndustriesMegaTouchXL:
+ case RedumpSystem.MeritIndustriesMegaTouchXL:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=546
// http://system16.com/hardware.php?id=872
- case KnownSystem.NamcoCapcomSystem256:
+ case RedumpSystem.NamcoCapcomSystem256:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=543
- case KnownSystem.NamcoCapcomTaitoSystem246:
+ case RedumpSystem.NamcoSystem246:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=545
- case KnownSystem.NamcoSegaNintendoTriforce:
+ case RedumpSystem.NamcoSegaNintendoTriforce:
types.Add(MediaType.CDROM); // Low density partition
types.Add(MediaType.GDROM); // High density partition
break;
// http://system16.com/hardware.php?id=535
- case KnownSystem.NamcoSystem12:
+ case RedumpSystem.NamcoSystem12:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=900
- case KnownSystem.NamcoSystem357:
+ case RedumpSystem.NamcoSystem357:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
types.Add(MediaType.BluRay);
break;
// https://www.arcade-history.com/?n=the-yakyuuken-part-1&page=detail&id=33049
- case KnownSystem.NewJatreCDi:
+ case RedumpSystem.NewJatreCDi:
types.Add(MediaType.CDROM);
break;
// http://blog.system11.org/?p=2499
- case KnownSystem.NichibutsuHighRateSystem:
+ case RedumpSystem.NichibutsuHighRateSystem:
types.Add(MediaType.DVD);
break;
// http://blog.system11.org/?p=2514
- case KnownSystem.NichibutsuSuperCD:
+ case RedumpSystem.NichibutsuSuperCD:
types.Add(MediaType.CDROM);
break;
// http://collectedit.com/collectors/shou-time-213/arcade-pcbs-281/x-rate-dvd-series-17-newlywed-life-japan-by-nichibutsu-32245
- case KnownSystem.NichibutsuXRateSystem:
+ case RedumpSystem.NichibutsuXRateSystem:
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/Panasonic_M2
- case KnownSystem.PanasonicM2:
+ case RedumpSystem.PanasonicM2:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://github.com/mamedev/mame/blob/master/src/mame/drivers/photoply.cpp
- case KnownSystem.PhotoPlayVarious:
+ case RedumpSystem.PhotoPlayVarious:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
- case KnownSystem.RawThrillsVarious:
+ case RedumpSystem.RawThrillsVarious:
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=729
- case KnownSystem.SegaChihiro:
+ case RedumpSystem.SegaChihiro:
types.Add(MediaType.CDROM); // Low density partition
types.Add(MediaType.GDROM); // High density partition
break;
// http://system16.com/hardware.php?id=907
- case KnownSystem.SegaEuropaR:
+ case RedumpSystem.SegaEuropaR:
types.Add(MediaType.DVD);
break;
@@ -544,7 +545,7 @@ namespace MPF.Utilities
// http://system16.com/hardware.php?id=731
// http://system16.com/hardware.php?id=984
// http://system16.com/hardware.php?id=986
- case KnownSystem.SegaLindbergh:
+ case RedumpSystem.SegaLindbergh:
types.Add(MediaType.DVD);
break;
@@ -552,7 +553,7 @@ namespace MPF.Utilities
// http://system16.com/hardware.php?id=723
// http://system16.com/hardware.php?id=906
// http://system16.com/hardware.php?id=722
- case KnownSystem.SegaNaomi:
+ case RedumpSystem.SegaNaomi:
types.Add(MediaType.CDROM); // Low density partition
types.Add(MediaType.GDROM); // High density partition
break;
@@ -560,59 +561,59 @@ namespace MPF.Utilities
// http://system16.com/hardware.php?id=725
// http://system16.com/hardware.php?id=726
// http://system16.com/hardware.php?id=727
- case KnownSystem.SegaNaomi2:
+ case RedumpSystem.SegaNaomi2:
types.Add(MediaType.CDROM); // Low density partition
types.Add(MediaType.GDROM); // High density partition
break;
// http://system16.com/hardware.php?id=975
// https://en.wikipedia.org/wiki/List_of_Sega_arcade_system_boards#Sega_Nu
- case KnownSystem.SegaNu:
+ case RedumpSystem.SegaNu:
types.Add(MediaType.BluRay);
break;
// http://system16.com/hardware.php?id=910
// https://en.wikipedia.org/wiki/List_of_Sega_arcade_system_boards#Sega_Ring_series
- case KnownSystem.SegaRingEdge:
+ case RedumpSystem.SegaRingEdge:
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=982
// https://en.wikipedia.org/wiki/List_of_Sega_arcade_system_boards#Sega_Ring_series
- case KnownSystem.SegaRingEdge2:
+ case RedumpSystem.SegaRingEdge2:
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=911
// https://en.wikipedia.org/wiki/List_of_Sega_arcade_system_boards#Sega_Ring_series
- case KnownSystem.SegaRingWide:
+ case RedumpSystem.SegaRingWide:
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=711
- case KnownSystem.SegaTitanVideo:
+ case RedumpSystem.SegaTitanVideo:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=709
// http://system16.com/hardware.php?id=710
- case KnownSystem.SegaSystem32:
+ case RedumpSystem.SegaSystem32:
types.Add(MediaType.CDROM);
break;
// https://github.com/mamedev/mame/blob/master/src/mame/drivers/seibucats.cpp
- case KnownSystem.SeibuCATSSystem:
+ case RedumpSystem.SeibuCATSSystem:
types.Add(MediaType.DVD);
break;
// https://www.tab.at/en/support/support/downloads
- case KnownSystem.TABAustriaQuizard:
+ case RedumpSystem.TABAustriaQuizard:
types.Add(MediaType.CDROM);
break;
// https://primetimeamusements.com/product/tsumo-multi-game-motion-system/
// https://www.highwaygames.com/arcade-machines/tsumo-tsunami-motion-8117/
- case KnownSystem.TsunamiTsuMoMultiGameMotionSystem:
+ case RedumpSystem.TsunamiTsuMoMultiGameMotionSystem:
types.Add(MediaType.CDROM);
break;
@@ -621,93 +622,92 @@ namespace MPF.Utilities
#region Others
// https://en.wikipedia.org/wiki/Audio_CD
- case KnownSystem.AudioCD:
+ case RedumpSystem.AudioCD:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Blu-ray#Player_profiles
- case KnownSystem.BDVideo:
+ case RedumpSystem.BDVideo:
types.Add(MediaType.BluRay);
break;
// https://en.wikipedia.org/wiki/DVD-Audio
- case KnownSystem.DVDAudio:
+ case RedumpSystem.DVDAudio:
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/DVD-Video
- case KnownSystem.DVDVideo:
+ case RedumpSystem.DVDVideo:
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/Blue_Book_(CD_standard)
- case KnownSystem.EnhancedCD:
+ case RedumpSystem.EnhancedCD:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/HD_DVD
- case KnownSystem.HDDVDVideo:
+ case RedumpSystem.HDDVDVideo:
types.Add(MediaType.HDDVD);
break;
// UNKNOWN
- case KnownSystem.NavisoftNaviken21:
+ case RedumpSystem.NavisoftNaviken21:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
- case KnownSystem.PalmOS:
+ case RedumpSystem.PalmOS:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Photo_CD
- case KnownSystem.PhotoCD:
+ case RedumpSystem.PhotoCD:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
- case KnownSystem.PlayStationGameSharkUpdates:
+ case RedumpSystem.PlayStationGameSharkUpdates:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
- case KnownSystem.PocketPC:
+ case RedumpSystem.PocketPC:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Doors_and_Windows_(EP)
- case KnownSystem.RainbowDisc:
+ case RedumpSystem.RainbowDisc:
types.Add(MediaType.CDROM);
break;
// https://segaretro.org/Prologue_21
- case KnownSystem.SegaPrologue21:
+ case RedumpSystem.SegaPrologue21MultimediaKaraokeSystem:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Super_Audio_CD
- case KnownSystem.SuperAudioCD:
+ case RedumpSystem.SuperAudioCD:
types.Add(MediaType.CDROM);
break;
// https://www.cnet.com/products/tao-music-iktv-karaoke-station-karaoke-system-series/
- case KnownSystem.TaoiKTV:
+ case RedumpSystem.TaoiKTV:
types.Add(MediaType.CDROM);
break;
// http://ultimateconsoledatabase.com/golden/kiss_site.htm
- case KnownSystem.TomyKissSite:
+ case RedumpSystem.TomyKissSite:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Video_CD
- case KnownSystem.VideoCD:
+ case RedumpSystem.VideoCD:
types.Add(MediaType.CDROM);
break;
#endregion
- case KnownSystem.NONE:
default:
types.Add(MediaType.NONE);
break;
@@ -861,7 +861,7 @@ namespace MPF.Utilities
///
///
///
- public static KnownSystem? GetKnownSystem(Drive drive, KnownSystem? defaultValue)
+ public static RedumpSystem? GetRedumpSystem(Drive drive, RedumpSystem? defaultValue)
{
// If drive or drive letter are provided, we can't do anything
if (drive?.Letter == null)
@@ -876,19 +876,19 @@ namespace MPF.Utilities
// We're going to assume for floppies, HDDs, and removable drives
// TODO: Try to be smarter about this
if (drive.InternalDriveType != InternalDriveType.Optical)
- return KnownSystem.IBMPCCompatible;
+ return RedumpSystem.IBMPCcompatible;
// Audio CD
if (drive.VolumeLabel.Equals("Audio CD", StringComparison.OrdinalIgnoreCase))
{
- return KnownSystem.AudioCD;
+ return RedumpSystem.AudioCD;
}
// DVD-Audio
if (Directory.Exists(Path.Combine(drivePath, "AUDIO_TS"))
&& Directory.EnumerateFiles(Path.Combine(drivePath, "AUDIO_TS")).Count() > 0)
{
- return KnownSystem.DVDAudio;
+ return RedumpSystem.DVDAudio;
}
// DVD-Video and Xbox
@@ -897,22 +897,22 @@ namespace MPF.Utilities
{
// TODO: Maybe add video track hashes to compare for Xbox and X360?
if (drive.VolumeLabel.StartsWith("SEP13011042", StringComparison.OrdinalIgnoreCase))
- return KnownSystem.MicrosoftXBOX;
+ return RedumpSystem.MicrosoftXbox;
- return KnownSystem.DVDVideo;
+ return RedumpSystem.DVDVideo;
}
// HD-DVD-Video
if (Directory.Exists(Path.Combine(drivePath, "HVDVD_TS"))
&& Directory.EnumerateFiles(Path.Combine(drivePath, "HVDVD_TS")).Count() > 0)
{
- return KnownSystem.HDDVDVideo;
+ return RedumpSystem.HDDVDVideo;
}
// Sega Dreamcast
if (File.Exists(Path.Combine(drivePath, "IP.BIN")))
{
- return KnownSystem.SegaDreamcast;
+ return RedumpSystem.SegaDreamcast;
}
// Sega Mega-CD / Sega-CD
@@ -921,7 +921,7 @@ namespace MPF.Utilities
|| File.Exists(Path.Combine(drivePath, "_BOOT", "SP_AS.BIN"))
|| File.Exists(Path.Combine(drivePath, "FILESYSTEM.BIN")))
{
- return KnownSystem.SegaCDMegaCD;
+ return RedumpSystem.SegaMegaCDSegaCD;
}
// Sega Saturn
@@ -931,7 +931,7 @@ namespace MPF.Utilities
if (sector != null)
{
if (sector.StartsWith(Interface.SaturnSectorZeroStart))
- return KnownSystem.SegaSaturn;
+ return RedumpSystem.SegaSaturn;
}
}
catch { }
@@ -944,44 +944,44 @@ namespace MPF.Utilities
// Check for either BOOT or BOOT2
var systemCnf = new IniFile(systemCnfPath);
if (systemCnf.ContainsKey("BOOT"))
- return KnownSystem.SonyPlayStation;
+ return RedumpSystem.SonyPlayStation;
else if (systemCnf.ContainsKey("BOOT2"))
- return KnownSystem.SonyPlayStation2;
+ return RedumpSystem.SonyPlayStation2;
}
else if (File.Exists(psxExePath))
{
- return KnownSystem.SonyPlayStation;
+ return RedumpSystem.SonyPlayStation;
}
// Sony PlayStation 3
if (drive.VolumeLabel.Equals("PS3VOLUME", StringComparison.OrdinalIgnoreCase))
{
- return KnownSystem.SonyPlayStation3;
+ return RedumpSystem.SonyPlayStation3;
}
// Sony PlayStation 4
if (drive.VolumeLabel.Equals("PS4VOLUME", StringComparison.OrdinalIgnoreCase))
{
- return KnownSystem.SonyPlayStation4;
+ return RedumpSystem.SonyPlayStation4;
}
// Sony PlayStation 5
if (drive.VolumeLabel.Equals("PS5VOLUME", StringComparison.OrdinalIgnoreCase))
{
- return KnownSystem.SonyPlayStation5;
+ return RedumpSystem.SonyPlayStation5;
}
// V.Tech V.Flash / V.Smile Pro
if (File.Exists(Path.Combine(drivePath, "0SYSTEM")))
{
- return KnownSystem.VTechVFlashVSmilePro;
+ return RedumpSystem.VTechVFlashVSmilePro;
}
// VCD
if (Directory.Exists(Path.Combine(drivePath, "VCD"))
&& Directory.EnumerateFiles(Path.Combine(drivePath, "VCD")).Count() > 0)
{
- return KnownSystem.VideoCD;
+ return RedumpSystem.VideoCD;
}
// Default return
@@ -991,10 +991,10 @@ namespace MPF.Utilities
///
/// Verify that, given a system and a media type, they are correct
///
- public static Result GetSupportStatus(KnownSystem? system, MediaType? type)
+ public static Result GetSupportStatus(RedumpSystem? system, MediaType? type)
{
// No system chosen, update status
- if (system == KnownSystem.NONE)
+ if (system == null)
return Result.Failure("Please select a valid system");
// If we're on an unsupported type, update the status accordingly
diff --git a/MPF.Test/Converters/EnumConverterTest.cs b/MPF.Test/Converters/EnumConverterTest.cs
index 50d49d6d..0ce07720 100644
--- a/MPF.Test/Converters/EnumConverterTest.cs
+++ b/MPF.Test/Converters/EnumConverterTest.cs
@@ -3,16 +3,17 @@ using System.Collections.Generic;
using System.Linq;
using MPF.Data;
using MPF.Utilities;
+using RedumpLib.Data;
using Xunit;
-namespace MPF.Test.Utilities
+namespace MPF.Test.Converters
{
- public class ConvertersTest
+ public class EnumConverterTest
{
///
/// Set of all known systems for testing
///
- public static IEnumerable
public void PopulateMediaType()
{
- KnownSystem? currentSystem = App.Instance.SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem;
+ RedumpSystem? currentSystem = App.Instance.SystemTypeComboBox.SelectedItem as RedumpSystemComboBoxItem;
if (currentSystem != null)
{
@@ -195,7 +196,7 @@ namespace MPF.GUI.ViewModels
///
public void ChangeSystem()
{
- App.Logger.VerboseLogLn($"Changed system to: {(App.Instance.SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem).Name}");
+ App.Logger.VerboseLogLn($"Changed system to: {(App.Instance.SystemTypeComboBox.SelectedItem as RedumpSystemComboBoxItem).Name}");
PopulateMediaType();
GetOutputNames(false);
EnsureDiscInformation();
@@ -640,7 +641,7 @@ namespace MPF.GUI.ViewModels
return;
// Get reasonable default values based on the current system
- KnownSystem? currentSystem = Systems[App.Instance.SystemTypeComboBox.SelectedIndex];
+ RedumpSystem? currentSystem = Systems[App.Instance.SystemTypeComboBox.SelectedIndex];
MediaType? defaultMediaType = Validators.GetValidMediaTypes(currentSystem).FirstOrDefault() ?? MediaType.CDROM;
if (defaultMediaType == MediaType.NONE)
defaultMediaType = MediaType.CDROM;
@@ -697,7 +698,7 @@ namespace MPF.GUI.ViewModels
App.Instance.OutputDirectoryTextBox.Text,
App.Instance.OutputFilenameTextBox.Text,
App.Instance.DriveLetterComboBox.SelectedItem as Drive,
- App.Instance.SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem,
+ App.Instance.SystemTypeComboBox.SelectedItem as RedumpSystemComboBoxItem,
App.Instance.MediaTypeComboBox.SelectedItem as Element,
App.Instance.ParametersTextBox.Text);
@@ -735,10 +736,10 @@ namespace MPF.GUI.ViewModels
if (!App.Options.SkipSystemDetection && App.Instance.DriveLetterComboBox.SelectedIndex > -1)
{
App.Logger.VerboseLog($"Trying to detect system for drive {Drives[App.Instance.DriveLetterComboBox.SelectedIndex].Letter}.. ");
- var currentSystem = Validators.GetKnownSystem(Drives[App.Instance.DriveLetterComboBox.SelectedIndex], App.Options.DefaultSystem);
- App.Logger.VerboseLogLn(currentSystem == KnownSystem.NONE ? "unable to detect." : ("detected " + EnumConverter.GetLongName(currentSystem) + "."));
+ var currentSystem = Validators.GetRedumpSystem(Drives[App.Instance.DriveLetterComboBox.SelectedIndex], App.Options.DefaultSystem);
+ App.Logger.VerboseLogLn(currentSystem == null ? "unable to detect." : ("detected " + EnumConverter.GetLongName(currentSystem) + "."));
- if (currentSystem != KnownSystem.NONE)
+ if (currentSystem != null)
{
int sysIndex = Systems.FindIndex(s => s == currentSystem);
App.Instance.SystemTypeComboBox.SelectedIndex = sysIndex;
@@ -789,7 +790,7 @@ namespace MPF.GUI.ViewModels
public void GetOutputNames(bool driveChanged)
{
Drive drive = App.Instance.DriveLetterComboBox.SelectedItem as Drive;
- KnownSystem? systemType = App.Instance.SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem;
+ RedumpSystem? systemType = App.Instance.SystemTypeComboBox.SelectedItem as RedumpSystemComboBoxItem;
MediaType? mediaType = App.Instance.MediaTypeComboBox.SelectedItem as Element;
// Get the extension for the file for the next two statements
@@ -997,7 +998,7 @@ namespace MPF.GUI.ViewModels
///
private bool ShouldEnableDumpingButton()
{
- return App.Instance.SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem != KnownSystem.NONE
+ return App.Instance.SystemTypeComboBox.SelectedItem as RedumpSystemComboBoxItem != null
&& Drives != null
&& Drives.Count > 0
&& !string.IsNullOrEmpty(App.Instance.ParametersTextBox.Text);
diff --git a/MPF/ViewModels/OptionsViewModel.cs b/MPF/ViewModels/OptionsViewModel.cs
index 4cfc0585..878a0076 100644
--- a/MPF/ViewModels/OptionsViewModel.cs
+++ b/MPF/ViewModels/OptionsViewModel.cs
@@ -42,7 +42,7 @@ namespace MPF.GUI.ViewModels
///
/// Current list of supported system profiles
///
- public List Systems { get; private set; } = KnownSystemComboBoxItem.GenerateElements().ToList();
+ public List Systems { get; private set; } = RedumpSystemComboBoxItem.GenerateElements().ToList();
#endregion
@@ -87,8 +87,8 @@ namespace MPF.GUI.ViewModels
{
var selectedInternalProgram = Parent.InternalProgramComboBox.SelectedItem as Element;
Options.InternalProgram = selectedInternalProgram?.Value ?? InternalProgram.DiscImageCreator;
- var selectedDefaultSystem = Parent.DefaultSystemComboBox.SelectedItem as KnownSystemComboBoxItem;
- Options.DefaultSystem = selectedDefaultSystem?.Value ?? KnownSystem.NONE;
+ var selectedDefaultSystem = Parent.DefaultSystemComboBox.SelectedItem as RedumpSystemComboBoxItem;
+ Options.DefaultSystem = selectedDefaultSystem?.Value ?? null;
Options.RedumpPassword = Parent.RedumpPasswordBox.Password;
SavedSettings = true;
diff --git a/MPF/Windows/DiscInformationWindow.xaml.cs b/MPF/Windows/DiscInformationWindow.xaml.cs
index 8e4448aa..d43f59fc 100644
--- a/MPF/Windows/DiscInformationWindow.xaml.cs
+++ b/MPF/Windows/DiscInformationWindow.xaml.cs
@@ -1,5 +1,5 @@
-using MPF.Data;
-using MPF.GUI.ViewModels;
+using MPF.GUI.ViewModels;
+using RedumpLib.Data;
namespace MPF.Windows
{
diff --git a/RedumpLib/Attributes/HumanReadableAttribute.cs b/RedumpLib/Attributes/HumanReadableAttribute.cs
index 74e50861..f4fa22ec 100644
--- a/RedumpLib/Attributes/HumanReadableAttribute.cs
+++ b/RedumpLib/Attributes/HumanReadableAttribute.cs
@@ -7,8 +7,19 @@ namespace RedumpLib.Attributes
///
public class HumanReadableAttribute : Attribute
{
+ ///
+ /// Item is marked as obsolete or unusable
+ ///
+ public bool Available { get; set; } = true;
+
+ ///
+ /// Human-readable name of the item
+ ///
public string LongName { get; set; }
+ ///
+ /// Internally used name of the item
+ ///
public string ShortName { get; set; }
}
}
\ No newline at end of file
diff --git a/RedumpLib/Attributes/SystemAttribute.cs b/RedumpLib/Attributes/SystemAttribute.cs
index 94292af4..d40e93e4 100644
--- a/RedumpLib/Attributes/SystemAttribute.cs
+++ b/RedumpLib/Attributes/SystemAttribute.cs
@@ -1,3 +1,5 @@
+using RedumpLib.Data;
+
namespace RedumpLib.Attributes
{
///
@@ -5,6 +7,11 @@ namespace RedumpLib.Attributes
///
public class SystemAttribute : HumanReadableAttribute
{
+ ///
+ /// Category for the system
+ ///
+ public SystemCategory Category { get; set; }
+
///
/// System is restricted to dumpers
///
diff --git a/RedumpLib/Converters/DiscTypeConverter.cs b/RedumpLib/Converters/DiscTypeConverter.cs
new file mode 100644
index 00000000..214fd8d8
--- /dev/null
+++ b/RedumpLib/Converters/DiscTypeConverter.cs
@@ -0,0 +1,32 @@
+using System;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using RedumpLib.Data;
+
+namespace RedumpLib.Converters
+{
+ ///
+ /// Serialize DiscType enum values
+ ///
+ public class DiscTypeConverter : JsonConverter
+ {
+ public override bool CanRead { get { return false; } }
+
+ public override DiscType?[] ReadJson(JsonReader reader, Type objectType, DiscType?[] existingValue, bool hasExistingValue, JsonSerializer serializer)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void WriteJson(JsonWriter writer, DiscType?[] value, JsonSerializer serializer)
+ {
+ JArray array = new JArray();
+ foreach (var val in value)
+ {
+ JToken t = JToken.FromObject(val.LongName() ?? string.Empty);
+ array.Add(t);
+ }
+
+ array.WriteTo(writer);
+ }
+ }
+}
\ No newline at end of file
diff --git a/RedumpLib/Converters/YesNoConverter.cs b/RedumpLib/Converters/YesNoConverter.cs
new file mode 100644
index 00000000..c657bd80
--- /dev/null
+++ b/RedumpLib/Converters/YesNoConverter.cs
@@ -0,0 +1,32 @@
+using System;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using RedumpLib.Data;
+
+namespace RedumpLib.Converters
+{
+ ///
+ /// Serialize YesNo enum values
+ ///
+ public class YesNoConverter : JsonConverter
+ {
+ public override bool CanRead { get { return false; } }
+
+ public override YesNo[] ReadJson(JsonReader reader, Type objectType, YesNo[] existingValue, bool hasExistingValue, JsonSerializer serializer)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void WriteJson(JsonWriter writer, YesNo[] value, JsonSerializer serializer)
+ {
+ JArray array = new JArray();
+ foreach (var val in value)
+ {
+ JToken t = JToken.FromObject(val.LongName() ?? string.Empty);
+ array.Add(t);
+ }
+
+ array.WriteTo(writer);
+ }
+ }
+}
\ No newline at end of file
diff --git a/RedumpLib/Data/Enumerations.cs b/RedumpLib/Data/Enumerations.cs
index e2d998bf..b7ea8fdc 100644
--- a/RedumpLib/Data/Enumerations.cs
+++ b/RedumpLib/Data/Enumerations.cs
@@ -41,6 +41,56 @@ namespace RedumpLib.Data
AddOns = 11,
}
+ ///
+ /// List of all disc types
+ ///
+ public enum DiscType
+ {
+ NONE = 0,
+
+ [HumanReadable(LongName = "BD-25")]
+ BD25,
+
+ [HumanReadable(LongName = "BD-50")]
+ BD50,
+
+ [HumanReadable(LongName = "CD")]
+ CD,
+
+ [HumanReadable(LongName = "DVD-5")]
+ DVD5,
+
+ [HumanReadable(LongName = "DVD-9")]
+ DVD9,
+
+ [HumanReadable(LongName = "GD-ROM")]
+ GDROM,
+
+ [HumanReadable(LongName = "HD-DVD SL")]
+ HDDVDSL,
+
+ [HumanReadable(LongName = "MIL-CD")]
+ MILCD,
+
+ [HumanReadable(LongName = "Nintendo GameCube Game Disc")]
+ NintendoGameCubeGameDisc,
+
+ [HumanReadable(LongName = "Nintendo Wii Optical Disc SL")]
+ NintendoWiiOpticalDiscSL,
+
+ [HumanReadable(LongName = "Nintendo Wii Optical Disc DL")]
+ NintendoWiiOpticalDiscDL,
+
+ [HumanReadable(LongName = "Nintendo Wii U Optical Disc SL")]
+ NintendoWiiUOpticalDiscSL,
+
+ [HumanReadable(LongName = "UMD SL")]
+ UMDSL,
+
+ [HumanReadable(LongName = "UMD DL")]
+ UMDDL,
+ }
+
///
/// Dump status
///
@@ -224,9 +274,11 @@ namespace RedumpLib.Data
///
/// List of all known systems
///
+ /// TODO: Remove marker items
public enum RedumpSystem
{
- // Special BIOS sets
+ #region BIOS Sets
+
[System(LongName = "Microsoft Xbox (BIOS)", ShortName = "xbox-bios", HasDat = true)]
MicrosoftXboxBIOS,
@@ -239,243 +291,548 @@ namespace RedumpLib.Data
[System(LongName = "Sony PlayStation 2 (BIOS)", ShortName = "ps2-bios", HasDat = true)]
SonyPlayStation2BIOS,
- // Regular systems
- [System(LongName = "Acorn Archimedes", ShortName = "archcd", HasCues = true, HasDat = true)]
- AcornArchimedes,
+ #endregion
- [System(LongName = "Apple Macintosh", ShortName = "mac", HasCues = true, HasDat = true)]
- AppleMacintosh,
+ #region Disc-Based Consoles
- [System(LongName = "Atari Jaguar CD Interactive Multimedia System", ShortName = "ajcd", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Atari Jaguar CD Interactive Multimedia System", ShortName = "ajcd", HasCues = true, HasDat = true)]
AtariJaguarCDInteractiveMultimediaSystem,
- [System(LongName = "Audio CD", ShortName = "audio-cd", IsBanned = true, HasCues = true, HasDat = true)]
- AudioCD,
-
- [System(LongName = "Bandai Pippin", ShortName = "pippin", HasCues = true, HasDat = true)]
- BandaiPippin,
-
- [System(LongName = "Bandai Playdia Quick Interactive System", ShortName = "qis", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Bandai Playdia Quick Interactive System", ShortName = "qis", HasCues = true, HasDat = true)]
BandaiPlaydiaQuickInteractiveSystem,
- [System(LongName = "BD-Video", ShortName = "bd-video", IsBanned = true, HasDat = true)]
- BDVideo,
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Bandai Pippin", ShortName = "pippin", HasCues = true, HasDat = true)]
+ BandaiPippin,
- [System(LongName = "Commodore Amiga CD", ShortName = "acd", HasCues = true, HasDat = true)]
- CommodoreAmigaCD,
-
- [System(LongName = "Commodore Amiga CD32", ShortName = "cd32", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Commodore Amiga CD32", ShortName = "cd32", HasCues = true, HasDat = true)]
CommodoreAmigaCD32,
- [System(LongName = "Commodore Amiga CDTV", ShortName = "cdtv", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Commodore Amiga CDTV", ShortName = "cdtv", HasCues = true, HasDat = true)]
CommodoreAmigaCDTV,
- [System(LongName = "DVD-Video", ShortName = "dvd-video", IsBanned = true, HasDat = true)]
- DVDVideo,
+ [System(Category = SystemCategory.DiscBasedConsole, Available = false, LongName = "Envizions EVO Smart Console")]
+ EnvizionsEVOSmartConsole,
- [System(LongName = "Enhanced CD", ShortName = "enhanced-cd", IsBanned = true)]
- EnhancedCD,
+ [System(Category = SystemCategory.DiscBasedConsole, Available = false, LongName = "Fujitsu FM Towns Marty")]
+ FujitsuFMTownsMarty,
- [System(LongName = "Fujitsu FM Towns series", ShortName = "fmt", HasCues = true, HasDat = true)]
- FujitsuFMTownsseries,
-
- [System(LongName = "funworld Photo Play", ShortName = "fpp", HasCues = true, HasDat = true)]
- funworldPhotoPlay,
-
- [System(LongName = "Hasbro VideoNow", ShortName = "hvn", IsBanned = true, HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Hasbro VideoNow", ShortName = "hvn", IsBanned = true, HasCues = true, HasDat = true)]
HasbroVideoNow,
- [System(LongName = "Hasbro VideoNow Color", ShortName = "hvnc", IsBanned = true, HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Hasbro VideoNow Color", ShortName = "hvnc", IsBanned = true, HasCues = true, HasDat = true)]
HasbroVideoNowColor,
- [System(LongName = "Hasbro VideoNow Jr.", ShortName = "hvnjr", IsBanned = true, HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Hasbro VideoNow Jr.", ShortName = "hvnjr", IsBanned = true, HasCues = true, HasDat = true)]
HasbroVideoNowJr,
- [System(LongName = "Hasbro VideoNow XP", ShortName = "hvnxp", IsBanned = true, HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Hasbro VideoNow XP", ShortName = "hvnxp", IsBanned = true, HasCues = true, HasDat = true)]
HasbroVideoNowXP,
- [System(LongName = "HD DVD-Video", ShortName = "hddvd-video", IsBanned = true, HasDat = true)]
- HDDVDVideo,
-
- [System(LongName = "IBM PC compatible", ShortName = "pc", HasCues = true, HasDat = true, HasLsd = true, HasSbi = true)]
- IBMPCcompatible,
-
- [System(LongName = "Incredible Technologies Eagle", ShortName = "ite", HasCues = true, HasDat = true)]
- IncredibleTechnologiesEagle,
-
- [System(LongName = "Konami e-Amusement", ShortName = "kea", HasCues = true, HasDat = true)]
- KonamieAmusement,
-
- [System(LongName = "Konami FireBeat", ShortName = "kfb", HasCues = true, HasDat = true)]
- KonamiFireBeat,
-
- [System(LongName = "Konami M2", ShortName = "km2", IsBanned = true, HasCues = true, HasDat = true)]
- KonamiM2,
-
- [System(LongName = "Konami System 573", ShortName = "ks573")]
- KonamiSystem573,
-
- [System(LongName = "Konami System GV", ShortName = "ksgv", HasCues = true, HasDat = true)]
- KonamiSystemGV,
-
- [System(LongName = "Konami Twinkle", ShortName = "kt")]
- KonamiTwinkle,
-
- [System(LongName = "Mattel Fisher-Price iXL", ShortName = "ixl", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Mattel Fisher-Price iXL", ShortName = "ixl", HasCues = true, HasDat = true)]
MattelFisherPriceiXL,
- [System(LongName = "Mattel HyperScan", ShortName = "hs", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Mattel HyperScan", ShortName = "hs", HasCues = true, HasDat = true)]
MattelHyperScan,
- [System(LongName = "Memorex Visual Information System", ShortName = "vis", HasCues = true, HasDat = true)]
- MemorexVisualInformationSystem,
-
- [System(LongName = "Microsoft Xbox", ShortName = "xbox", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Microsoft Xbox", ShortName = "xbox", HasCues = true, HasDat = true)]
MicrosoftXbox,
- [System(LongName = "Microsoft Xbox 360", ShortName = "xbox360", IsBanned = true, HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Microsoft Xbox 360", ShortName = "xbox360", IsBanned = true, HasCues = true, HasDat = true)]
MicrosoftXbox360,
- [System(LongName = "Microsoft Xbox One", ShortName = "xboxone", IsBanned = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Microsoft Xbox One", ShortName = "xboxone", IsBanned = true, HasDat = true)]
MicrosoftXboxOne,
- //[System(LongName = "Microsoft Xbox Series X/S", ShortName = "xboxxs", IsBanned = true)]
- //MicrosoftXboxSeriesXandS, // TODO: Not available yet
+ [System(Category = SystemCategory.DiscBasedConsole, Available = false, LongName = "Microsoft Xbox Series X/S")]
+ MicrosoftXboxSeriesXS,
- [System(LongName = "Namco · Sega · Nintendo Triforce", ShortName = "triforce", HasCues = true, HasDat = true, HasGdi = true)]
- NamcoSegaNintendoTriforce,
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Memorex Visual Information System", ShortName = "vis", HasCues = true, HasDat = true)]
+ MemorexVisualInformationSystem,
- [System(LongName = "Namco System 12", ShortName = "ns12")]
- NamcoSystem12,
-
- [System(LongName = "Namco System 246", ShortName = "ns246", HasCues = true, HasDat = true)]
- NamcoSystem246,
-
- [System(LongName = "Navisoft Naviken 2.1", ShortName = "navi21", IsBanned = true, HasCues = true, HasDat = true)]
- NavisoftNaviken21,
-
- [System(LongName = "NEC PC Engine CD & TurboGrafx CD", ShortName = "pce", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "NEC PC Engine CD & TurboGrafx CD", ShortName = "pce", HasCues = true, HasDat = true)]
NECPCEngineCDTurboGrafxCD,
- [System(LongName = "NEC PC-88 series", ShortName = "pc-88", HasCues = true, HasDat = true)]
- NECPC88series,
-
- [System(LongName = "NEC PC-98 series", ShortName = "pc-98", HasCues = true, HasDat = true)]
- NECPC98series,
-
- [System(LongName = "NEC PC-FX & PC-FXGA", ShortName = "pc-fx", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "NEC PC-FX & PC-FXGA", ShortName = "pc-fx", HasCues = true, HasDat = true)]
NECPCFXPCFXGA,
- [System(LongName = "Nintendo GameCube", ShortName = "gc", HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Nintendo GameCube", ShortName = "gc", HasDat = true)]
NintendoGameCube,
- [System(LongName = "Nintendo Wii", ShortName = "wii", IsBanned = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, Available = false, LongName = "Nintendo-Sony Super NES CD-ROM System")]
+ NintendoSonySuperNESCDROMSystem,
+
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Nintendo Wii", ShortName = "wii", IsBanned = true, HasDat = true)]
NintendoWii,
- [System(LongName = "Nintendo Wii U", ShortName = "wiiu", IsBanned = true, HasDat = true, HasKeys = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Nintendo Wii U", ShortName = "wiiu", IsBanned = true, HasDat = true, HasKeys = true)]
NintendoWiiU,
- [System(LongName = "Palm OS", ShortName = "palm", HasCues = true, HasDat = true)]
- PalmOS,
-
- [System(LongName = "Panasonic 3DO Interactive Multiplayer", ShortName = "3do", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Panasonic 3DO Interactive Multiplayer", ShortName = "3do", HasCues = true, HasDat = true)]
Panasonic3DOInteractiveMultiplayer,
- [System(LongName = "Panasonic M2", ShortName = "m2", IsBanned = true, HasCues = true, HasDat = true)]
- PanasonicM2,
-
- [System(LongName = "Philips CD-i", ShortName = "cdi", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Philips CD-i", ShortName = "cdi", HasCues = true, HasDat = true)]
PhilipsCDi,
- [System(LongName = "Philips CD-i Digital Video", ShortName = "cdi-video", IsBanned = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Philips CD-i Digital Video", ShortName = "cdi-video", IsBanned = true)]
PhilipsCDiDigitalVideo,
- [System(LongName = "Photo CD", ShortName = "photo-cd", HasCues = true, HasDat = true)]
- PhotoCD,
+ [System(Category = SystemCategory.DiscBasedConsole, Available = false, LongName = "Pioneer LaserActive")]
+ PioneerLaserActive,
- [System(LongName = "PlayStation GameShark Updates", ShortName = "psxgs", HasCues = true, HasDat = true)]
- PlayStationGameSharkUpdates,
-
- [System(LongName = "Pocket PC", ShortName = "ppc", HasCues = true, HasDat = true)]
- PocketPC,
-
- [System(LongName = "Sega Chihiro", ShortName = "chihiro", HasCues = true, HasDat = true, HasGdi = true)]
- SegaChihiro,
-
- [System(LongName = "Sega Dreamcast", ShortName = "dc", HasCues = true, HasDat = true, HasGdi = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Sega Dreamcast", ShortName = "dc", HasCues = true, HasDat = true, HasGdi = true)]
SegaDreamcast,
- [System(LongName = "Sega Lindbergh", ShortName = "lindbergh", HasDat = true)]
- SegaLindbergh,
-
- [System(LongName = "Sega Mega CD & Sega CD", ShortName = "mcd", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Sega Mega CD & Sega CD", ShortName = "mcd", HasCues = true, HasDat = true)]
SegaMegaCDSegaCD,
- [System(LongName = "Sega Naomi", ShortName = "naomi", HasCues = true, HasDat = true, HasGdi = true)]
- SegaNaomi,
-
- [System(LongName = "Sega Naomi 2", ShortName = "naomi2", HasCues = true, HasDat = true, HasGdi = true)]
- SegaNaomi2,
-
- [System(LongName = "Sega Prologue 21 Multimedia Karaoke System", ShortName = "sp21", HasCues = true, HasDat = true)]
- SegaPrologue21MultimediaKaraokeSystem,
-
- [System(LongName = "Sega RingEdge", ShortName = "sre", IsBanned = true, HasDat = true)]
- SegaRingEdge,
-
- [System(LongName = "Sega RingEdge 2", ShortName = "sre2", IsBanned = true, HasDat = true)]
- SegaRingEdge2,
-
- [System(LongName = "Sega Saturn", ShortName = "ss", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Sega Saturn", ShortName = "ss", HasCues = true, HasDat = true)]
SegaSaturn,
- [System(LongName = "Sega Titan Video", ShortName = "stv")]
- SegaTitanVideo,
-
- [System(LongName = "Sharp X68000", ShortName = "x86kcd", HasCues = true, HasDat = true)]
- SharpX68000,
-
- [System(LongName = "Neo Geo CD", ShortName = "ngcd", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Neo Geo CD", ShortName = "ngcd", HasCues = true, HasDat = true)]
SNKNeoGeoCD,
- [System(LongName = "Sony PlayStation", ShortName = "psx", HasCues = true, HasDat = true, HasLsd = true, HasSbi = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Sony PlayStation", ShortName = "psx", HasCues = true, HasDat = true, HasLsd = true, HasSbi = true)]
SonyPlayStation,
- [System(LongName = "Sony PlayStation 2", ShortName = "ps2", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Sony PlayStation 2", ShortName = "ps2", HasCues = true, HasDat = true)]
SonyPlayStation2,
- [System(LongName = "Sony PlayStation 3", ShortName = "ps3", IsBanned = true, HasCues = true, HasDat = true, HasDkeys = true, HasKeys = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Sony PlayStation 3", ShortName = "ps3", IsBanned = true, HasCues = true, HasDat = true, HasDkeys = true, HasKeys = true)]
SonyPlayStation3,
- [System(LongName = "Sony PlayStation 4", ShortName = "ps4", IsBanned = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Sony PlayStation 4", ShortName = "ps4", IsBanned = true, HasDat = true)]
SonyPlayStation4,
- //[System(LongName = "Sony PlayStation 5", ShortName = "ps5", IsBanned = true)]
- //SonyPlayStation5, // TODO: Not available yet
+ [System(Category = SystemCategory.DiscBasedConsole, Available = false, LongName = "Sony PlayStation 5")]
+ SonyPlayStation5,
- [System(LongName = "Sony PlayStation Portable", ShortName = "psp", HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "Sony PlayStation Portable", ShortName = "psp", HasDat = true)]
SonyPlayStationPortable,
- [System(LongName = "TAB-Austria Quizard", ShortName = "quizard", HasCues = true, HasDat = true)]
- TABAustriaQuizard,
-
- [System(LongName = "Tao iKTV", ShortName = "iktv")]
- TaoiKTV,
-
- [System(LongName = "Tomy Kiss-Site", ShortName = "ksite", HasCues = true, HasDat = true)]
- TomyKissSite,
-
- [System(LongName = "Video CD", ShortName = "vcd", IsBanned = true, HasCues = true, HasDat = true)]
- VideoCD,
-
- [System(LongName = "VM Labs NUON", ShortName = "nuon", HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "VM Labs NUON", ShortName = "nuon", HasDat = true)]
VMLabsNUON,
- [System(LongName = "VTech V.Flash & V.Smile Pro", ShortName = "vflash", HasCues = true, HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "VTech V.Flash & V.Smile Pro", ShortName = "vflash", HasCues = true, HasDat = true)]
VTechVFlashVSmilePro,
- [System(LongName = "ZAPiT Games Game Wave Family Entertainment System", ShortName = "gamewave", HasDat = true)]
+ [System(Category = SystemCategory.DiscBasedConsole, LongName = "ZAPiT Games Game Wave Family Entertainment System", ShortName = "gamewave", HasDat = true)]
ZAPiTGamesGameWaveFamilyEntertainmentSystem,
+
+ // End of console section delimiter
+ MarkerDiscBasedConsoleEnd,
+
+ #endregion
+
+ #region Cartridge-Based and Other Consoles
+
+ /*
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Amstrad GX-4000")]
+ AmstradGX4000,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "APF Microcomputer System")]
+ APFMicrocomputerSystem,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Atari 2600 & VCS")]
+ Atari2600VCS,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Atari 5200")]
+ Atari5200,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Atari 7800")]
+ Atari7800,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Atari Jaguar")]
+ AtariJaguar,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Atari XEGS")]
+ AtariXEGS,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Audiosonic 1292 Advanced Programmable Video System")]
+ Audiosonic1292AdvancedProgrammableVideoSystem,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Bally Astrocade")]
+ BallyAstrocade,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Bit Corporation Dina")]
+ BitCorporationDina,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Casio Loopy")]
+ CasioLoopy,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Casio PV-1000")]
+ CasioPV1000,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Commodore 64 Games System")]
+ Commodore64GamesSystem,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Daewoo Electronics Zemmix")]
+ DaewooElectronicsZemmix,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Emerson Arcadia 2001")]
+ EmersonArcadia2001,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Epoch Cassette Vision")]
+ EpochCassetteVision,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Epoch Super Cassette Vision")]
+ EpochSuperCassetteVision,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Fairchild Channel F")]
+ FairchildChannelF,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Funtech Super A'Can")]
+ FuntechSuperACan,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "GCE Vectrex")]
+ GCEVectrex,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Heber BBC Bridge Companion")]
+ HeberBBCBridgeCompanion,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Interton VC-4000")]
+ IntertonVC4000,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "JungleTac Vii")]
+ JungleTacVii,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "LeapFrog ClickStart")]
+ LeapFrogClickStart,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "LJN VideoArt")]
+ LJNVideoArt,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Magnavox Odyssey 2")]
+ MagnavoxOdyssey2,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Mattel Intellivision")]
+ MattelIntellivision,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "NEC PC Engine & TurboGrafx-16")]
+ NECPCEngineTurboGrafx16,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Nichibutsu MyVision")]
+ NichibutsuMyVision,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Nintendo 64")]
+ Nintendo64,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Nintendo 64DD")]
+ Nintendo64DD,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Nintendo Famicom & Nintendo Entertainment System")]
+ NintendoFamicomNintendoEntertainmentSystem,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Nintendo Famicom Disk System")]
+ NintendoFamicomDiskSystem,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Nintendo Super Famicom & Super Nintendo Entertainment System")]
+ NintendoSuperFamicomSuperNintendoEntertainmentSystem,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Nintendo Switch")]
+ NintendoSwitch,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Philips Videopac+ & G7400")]
+ PhilipsVideopacPlusG7400,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "RCA Studio-II")]
+ RCAStudioII,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Sega 32X")]
+ Sega32X,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Sega Mark III & Master System")]
+ SegaMarkIIIMasterSystem,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Sega MegaDrive & Genesis")]
+ SegaMegaDriveGenesis,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Sega SG-1000")]
+ SegaSG1000,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "SNK NeoGeo")]
+ SNKNeoGeo,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "SSD COMPANY LIMITED XaviXPORT")]
+ SSDCOMPANYLIMITEDXaviXPORT,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "ViewMaster Interactive Vision")]
+ ViewMasterInteractiveVision,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "V.Tech CreatiVision")]
+ VTechCreatiVision,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "V.Tech V.Smile")]
+ VTechVSmile,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "V.Tech Socrates")]
+ VTechSocrates,
+
+ [System(Category = SystemCategory.OtherConsole, Available = false, LongName = "Worlds of Wonder ActionMax")]
+ WorldsOfWonderActionMax,
+
+ // End of other console delimiter
+ MarkerOtherConsoleEnd,
+ */
+
+ #endregion
+
+ #region Computers
+
+ [System(Category = SystemCategory.Computer, LongName = "Acorn Archimedes", ShortName = "archcd", HasCues = true, HasDat = true)]
+ AcornArchimedes,
+
+ [System(Category = SystemCategory.Computer, LongName = "Apple Macintosh", ShortName = "mac", HasCues = true, HasDat = true)]
+ AppleMacintosh,
+
+ [System(Category = SystemCategory.Computer, LongName = "Commodore Amiga CD", ShortName = "acd", HasCues = true, HasDat = true)]
+ CommodoreAmigaCD,
+
+ [System(Category = SystemCategory.Computer, LongName = "Fujitsu FM Towns series", ShortName = "fmt", HasCues = true, HasDat = true)]
+ FujitsuFMTownsseries,
+
+ [System(Category = SystemCategory.Computer, LongName = "IBM PC compatible", ShortName = "pc", HasCues = true, HasDat = true, HasLsd = true, HasSbi = true)]
+ IBMPCcompatible,
+
+ [System(Category = SystemCategory.Computer, LongName = "NEC PC-88 series", ShortName = "pc-88", HasCues = true, HasDat = true)]
+ NECPC88series,
+
+ [System(Category = SystemCategory.Computer, LongName = "NEC PC-98 series", ShortName = "pc-98", HasCues = true, HasDat = true)]
+ NECPC98series,
+
+ [System(Category = SystemCategory.Computer, LongName = "Sharp X68000", ShortName = "x86kcd", HasCues = true, HasDat = true)]
+ SharpX68000,
+
+ // End of computer section delimiter
+ MarkerComputerEnd,
+
+ #endregion
+
+ #region Arcade
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Amiga CUBO CD32")]
+ AmigaCUBOCD32,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "American Laser Games 3DO")]
+ AmericanLaserGames3DO,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Atari 3DO")]
+ Atari3DO,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Atronic")]
+ Atronic,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "AUSCOM System 1")]
+ AUSCOMSystem1,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Bally Game Magic")]
+ BallyGameMagic,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Capcom CP System III")]
+ CapcomCPSystemIII,
+
+ [System(Category = SystemCategory.Arcade, LongName = "funworld Photo Play", ShortName = "fpp", HasCues = true, HasDat = true)]
+ funworldPhotoPlay,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Global VR PC-based Systems")]
+ GlobalVRVarious,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Global VR Vortek")]
+ GlobalVRVortek,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Global VR Vortek V3")]
+ GlobalVRVortekV3,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "ICE PC-based Hardware")]
+ ICEPCHardware,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Incredible Technologies Eagle", ShortName = "ite", HasCues = true, HasDat = true)]
+ IncredibleTechnologiesEagle,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Incredible Technologies PC-based Systems")]
+ IncredibleTechnologiesVarious,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Konami e-Amusement", ShortName = "kea", HasCues = true, HasDat = true)]
+ KonamieAmusement,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Konami FireBeat", ShortName = "kfb", HasCues = true, HasDat = true)]
+ KonamiFireBeat,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Konami M2", ShortName = "km2", IsBanned = true, HasCues = true, HasDat = true)]
+ KonamiM2,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Konami Python")]
+ KonamiPython,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Konami Python 2")]
+ KonamiPython2,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Konami System 573", ShortName = "ks573")]
+ KonamiSystem573,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Konami System GV", ShortName = "ksgv", HasCues = true, HasDat = true)]
+ KonamiSystemGV,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Konami Twinkle", ShortName = "kt")]
+ KonamiTwinkle,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Konami PC-based Systems")]
+ KonamiVarious,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Merit Industries Boardwalk")]
+ MeritIndustriesBoardwalk,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Merit Industries MegaTouch Force")]
+ MeritIndustriesMegaTouchForce,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Merit Industries MegaTouch ION")]
+ MeritIndustriesMegaTouchION,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Merit Industries MegaTouch Maxx")]
+ MeritIndustriesMegaTouchMaxx,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Merit Industries MegaTouch XL")]
+ MeritIndustriesMegaTouchXL,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Namco · Capcom System 256/Super System 256")]
+ NamcoCapcomSystem256,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Namco · Sega · Nintendo Triforce", ShortName = "triforce", HasCues = true, HasDat = true, HasGdi = true)]
+ NamcoSegaNintendoTriforce,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Namco System 12", ShortName = "ns12")]
+ NamcoSystem12,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Namco System 246", ShortName = "ns246", HasCues = true, HasDat = true)]
+ NamcoSystem246,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Namco System 357")]
+ NamcoSystem357,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "New Jatre CD-i")]
+ NewJatreCDi,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Nichibutsu High Rate System")]
+ NichibutsuHighRateSystem,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Nichibutsu Super CD")]
+ NichibutsuSuperCD,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Nichibutsu X-Rate System")]
+ NichibutsuXRateSystem,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Panasonic M2", ShortName = "m2", IsBanned = true, HasCues = true, HasDat = true)]
+ PanasonicM2,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "PhotoPlay PC-based Systems")]
+ PhotoPlayVarious,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Raw Thrills PC-based Systems")]
+ RawThrillsVarious,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Sega Chihiro", ShortName = "chihiro", HasCues = true, HasDat = true, HasGdi = true)]
+ SegaChihiro,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Sega Europa-R")]
+ SegaEuropaR,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Sega Lindbergh", ShortName = "lindbergh", HasDat = true)]
+ SegaLindbergh,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Sega Naomi", ShortName = "naomi", HasCues = true, HasDat = true, HasGdi = true)]
+ SegaNaomi,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Sega Naomi 2", ShortName = "naomi2", HasCues = true, HasDat = true, HasGdi = true)]
+ SegaNaomi2,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Sega Nu")]
+ SegaNu,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Sega RingEdge", ShortName = "sre", IsBanned = true, HasDat = true)]
+ SegaRingEdge,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Sega RingEdge 2", ShortName = "sre2", IsBanned = true, HasDat = true)]
+ SegaRingEdge2,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Sega RingWide")]
+ SegaRingWide,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Sega System 32")]
+ SegaSystem32,
+
+ [System(Category = SystemCategory.Arcade, LongName = "Sega Titan Video", ShortName = "stv")]
+ SegaTitanVideo,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Seibu CATS System")]
+ SeibuCATSSystem,
+
+ [System(Category = SystemCategory.Arcade, LongName = "TAB-Austria Quizard", ShortName = "quizard", HasCues = true, HasDat = true)]
+ TABAustriaQuizard,
+
+ [System(Category = SystemCategory.Arcade, Available = false, LongName = "Tsunami TsuMo Multi-Game Motion System")]
+ TsunamiTsuMoMultiGameMotionSystem,
+
+ // End of arcade section delimiter
+ MarkerArcadeEnd,
+
+ #endregion
+
+ #region Other
+
+ [System(Category = SystemCategory.Other, LongName = "Audio CD", ShortName = "audio-cd", IsBanned = true, HasCues = true, HasDat = true)]
+ AudioCD,
+
+ [System(Category = SystemCategory.Other, LongName = "BD-Video", ShortName = "bd-video", IsBanned = true, HasDat = true)]
+ BDVideo,
+
+ [System(Category = SystemCategory.Other, Available = false, LongName = "DVD-Audio")]
+ DVDAudio,
+
+ [System(Category = SystemCategory.Other, LongName = "DVD-Video", ShortName = "dvd-video", IsBanned = true, HasDat = true)]
+ DVDVideo,
+
+ [System(Category = SystemCategory.Other, LongName = "Enhanced CD", ShortName = "enhanced-cd", IsBanned = true)]
+ EnhancedCD,
+
+ [System(Category = SystemCategory.Other, LongName = "HD DVD-Video", ShortName = "hddvd-video", IsBanned = true, HasDat = true)]
+ HDDVDVideo,
+
+ [System(Category = SystemCategory.Other, LongName = "Navisoft Naviken 2.1", ShortName = "navi21", IsBanned = true, HasCues = true, HasDat = true)]
+ NavisoftNaviken21,
+
+ [System(Category = SystemCategory.Other, LongName = "Palm OS", ShortName = "palm", HasCues = true, HasDat = true)]
+ PalmOS,
+
+ [System(Category = SystemCategory.Other, LongName = "Photo CD", ShortName = "photo-cd", HasCues = true, HasDat = true)]
+ PhotoCD,
+
+ [System(Category = SystemCategory.Other, LongName = "PlayStation GameShark Updates", ShortName = "psxgs", HasCues = true, HasDat = true)]
+ PlayStationGameSharkUpdates,
+
+ [System(Category = SystemCategory.Other, LongName = "Pocket PC", ShortName = "ppc", HasCues = true, HasDat = true)]
+ PocketPC,
+
+ [System(Category = SystemCategory.Other, Available = false, LongName = "Rainbow Disc")]
+ RainbowDisc,
+
+ [System(Category = SystemCategory.Other, LongName = "Sega Prologue 21 Multimedia Karaoke System", ShortName = "sp21", HasCues = true, HasDat = true)]
+ SegaPrologue21MultimediaKaraokeSystem,
+
+ [System(Category = SystemCategory.Other, Available = false, LongName = "Super Audio CD")]
+ SuperAudioCD,
+
+ [System(Category = SystemCategory.Other, LongName = "Tao iKTV", ShortName = "iktv")]
+ TaoiKTV,
+
+ [System(Category = SystemCategory.Other, LongName = "Tomy Kiss-Site", ShortName = "ksite", HasCues = true, HasDat = true)]
+ TomyKissSite,
+
+ [System(Category = SystemCategory.Other, LongName = "Video CD", ShortName = "vcd", IsBanned = true, HasCues = true, HasDat = true)]
+ VideoCD,
+
+ // End of other section delimiter
+ MarkerOtherEnd,
+
+ #endregion
}
///
@@ -717,4 +1074,42 @@ namespace RedumpLib.Data
[HumanReadable(LongName = "World", ShortName = "W")]
World,
}
+
+ ///
+ /// List of system categories
+ ///
+ public enum SystemCategory
+ {
+ NONE = 0,
+
+ [HumanReadable(LongName = "Disc-Based Consoles")]
+ DiscBasedConsole,
+
+ [HumanReadable(LongName = "Other Consoles")]
+ OtherConsole,
+
+ [HumanReadable(LongName = "Computers")]
+ Computer,
+
+ [HumanReadable(LongName = "Arcade")]
+ Arcade,
+
+ [HumanReadable(LongName = "Other")]
+ Other,
+ };
+
+ ///
+ /// Generic yes/no values
+ ///
+ public enum YesNo
+ {
+ [HumanReadable(LongName = "Yes/No")]
+ NULL = 0,
+
+ [HumanReadable(LongName = "No")]
+ No = 1,
+
+ [HumanReadable(LongName = "Yes")]
+ Yes = 2,
+ }
}
diff --git a/RedumpLib/Data/Extensions.cs b/RedumpLib/Data/Extensions.cs
index b16b3762..2d1abc9f 100644
--- a/RedumpLib/Data/Extensions.cs
+++ b/RedumpLib/Data/Extensions.cs
@@ -7,7 +7,7 @@ namespace RedumpLib.Data
///
public static class Extensions
{
- #region Category
+ #region Disc Category
///
/// Get the Redump longnames for each known category
@@ -56,6 +56,77 @@ namespace RedumpLib.Data
#endregion
+ #region Disc Type
+
+ ///
+ /// Get the Redump longnames for each known disc type
+ ///
+ ///
+ ///
+ public static string LongName(this DiscType? discType) => AttributeHelper.GetAttribute(discType)?.LongName;
+
+ ///
+ /// Get the DiscType enum value for a given string
+ ///
+ /// String value to convert
+ /// DiscType represented by the string, if possible
+ public static DiscType? ToDiscType(string discType)
+ {
+ switch (discType.ToLowerInvariant())
+ {
+ case "bd25":
+ case "bd-25":
+ return DiscType.BD25;
+ case "bd50":
+ case "bd-50":
+ return DiscType.BD50;
+ case "cd":
+ case "cdrom":
+ case "cd-rom":
+ return DiscType.CD;
+ case "dvd5":
+ case "dvd-5":
+ return DiscType.DVD5;
+ case "dvd9":
+ case "dvd-9":
+ return DiscType.DVD9;
+ case "gd":
+ case "gdrom":
+ case "gd-rom":
+ return DiscType.GDROM;
+ case "hddvd":
+ case "hddvdsl":
+ case "hd-dvd sl":
+ return DiscType.HDDVDSL;
+ case "milcd":
+ case "mil-cd":
+ return DiscType.MILCD;
+ case "nintendogamecubegamedisc":
+ case "nintendo game cube game disc":
+ return DiscType.NintendoGameCubeGameDisc;
+ case "nintendowiiopticaldiscsl":
+ case "nintendo wii optical disc sl":
+ return DiscType.NintendoWiiOpticalDiscSL;
+ case "nintendowiiopticaldiscdl":
+ case "nintendo wii optical disc dl":
+ return DiscType.NintendoWiiOpticalDiscDL;
+ case "nintendowiiuopticaldiscsl":
+ case "nintendo wii u optical disc sl":
+ return DiscType.NintendoWiiUOpticalDiscSL;
+ case "umd":
+ case "umdsl":
+ case "umd sl":
+ return DiscType.UMDSL;
+ case "umddl":
+ case "umd dl":
+ return DiscType.UMDDL;
+ default:
+ return null;
+ }
+ }
+
+ #endregion
+
#region Language
///
@@ -393,6 +464,16 @@ namespace RedumpLib.Data
///
public static string ShortName(this RedumpSystem? system) => AttributeHelper.GetAttribute(system)?.ShortName;
+ ///
+ /// Determine the category of a system
+ ///
+ public static SystemCategory GetCategory(this RedumpSystem? system) => ((SystemAttribute)AttributeHelper.GetAttribute(system))?.Category ?? SystemCategory.NONE;
+
+ ///
+ /// Determine if a system is available in Redump yet
+ ///
+ public static bool IsAvailable(this RedumpSystem? system) => ((SystemAttribute)AttributeHelper.GetAttribute(system))?.Available ?? false;
+
///
/// Determine if a system is restricted to dumpers
///
@@ -442,7 +523,8 @@ namespace RedumpLib.Data
{
switch (sys)
{
- // Special BIOS Sets
+ #region BIOS Sets
+
case "xboxbios":
case "xbox bios":
case "microsoftxboxbios":
@@ -486,20 +568,10 @@ namespace RedumpLib.Data
case "sony playstation 2 bios":
return RedumpSystem.SonyPlayStation2BIOS;
- // Regular systems
- case "acorn":
- case "archimedes":
- case "acornarchimedes":
- case "acorn archimedes":
- return RedumpSystem.AcornArchimedes;
- case "apple":
- case "mac":
- case "applemac":
- case "macintosh":
- case "applemacintosh":
- case "apple mac":
- case "apple macintosh":
- return RedumpSystem.AppleMacintosh;
+ #endregion
+
+ #region Consoles
+
case "jaguar":
case "jagcd":
case "jaguarcd":
@@ -509,10 +581,6 @@ namespace RedumpLib.Data
case "atarijaguarcd":
case "atari jaguar cd":
return RedumpSystem.AtariJaguarCDInteractiveMultimediaSystem;
- case "audio":
- case "audiocd":
- case "audio cd":
- return RedumpSystem.AudioCD;
case "playdia":
case "playdiaqis":
case "playdiaquickinteractivesystem":
@@ -529,20 +597,6 @@ namespace RedumpLib.Data
case "bandai apple pippin":
case "bandai / apple pippin":
return RedumpSystem.BandaiPippin;
- case "bdvideo":
- case "bd-video":
- case "blurayvideo":
- case "bluray video":
- return RedumpSystem.BDVideo;
- case "amiga":
- case "amigacd":
- case "amiga cd":
- case "commodoreamiga":
- case "commodoreamigacd":
- case "commodoreamiga cd":
- case "commodore amiga":
- case "commodore amiga cd":
- return RedumpSystem.CommodoreAmigaCD;
case "cd32":
case "amigacd32":
case "amiga cd32":
@@ -555,27 +609,21 @@ namespace RedumpLib.Data
case "commodoreamigacdtv":
case "commodore amiga cdtv":
return RedumpSystem.CommodoreAmigaCDTV;
- case "dvdvideo":
- case "dvd-video":
- return RedumpSystem.DVDVideo;
- case "enhancedcd":
- case "enhanced cd":
- case "enhancedcdrom":
- case "enhanced cdrom":
- case "enhanced cd-rom":
- return RedumpSystem.EnhancedCD;
- case "fmtowns":
- case "fmt":
- case "fm towns":
- case "fujitsufmtowns":
- case "fujitsu fm towns":
- case "fujitsu fm towns series":
- return RedumpSystem.FujitsuFMTownsseries;
- case "fpp":
- case "funworldphotoplay":
- case "funworld photoplay":
- case "funworld photo play":
- return RedumpSystem.funworldPhotoPlay;
+ case "evosc":
+ case "evo sc":
+ case "evosmartconsole":
+ case "evo smart console":
+ case "envizionsevosc":
+ case "envizion evo sc":
+ case "envizionevosmartconsole":
+ case "envizion evo smart console":
+ return RedumpSystem.EnvizionsEVOSmartConsole;
+ case "fmtm":
+ case "fmtownsmarty":
+ case "fm towns marty":
+ case "fujitsufmtownsmarty":
+ case "fujitsu fm towns marty":
+ return RedumpSystem.FujitsuFMTownsMarty;
case "videonow":
case "hasbrovideonow":
case "hasbro videonow":
@@ -589,60 +637,12 @@ namespace RedumpLib.Data
case "videonow jr":
case "hasbrovideonowjr":
case "hasbro videonow jr":
- return RedumpSystem.HasbroVideoNowColor;
+ return RedumpSystem.HasbroVideoNowJr;
case "videonowxp":
case "videonow xp":
case "hasbrovideonowxp":
case "hasbro videonow xp":
- return RedumpSystem.HasbroVideoNowColor;
- case "hddvd-video":
- case "hd dvd video":
- case "hd-dvd video":
- case "hd dvd-video":
- case "hd-dvd-video":
- return RedumpSystem.HDDVDVideo;
- case "ibm":
- case "ibmpc":
- case "pc":
- case "ibm pc":
- case "ibm pc compatible":
- return RedumpSystem.IBMPCcompatible;
- case "iteagle":
- case "eagle":
- case "incredible technologies eagle":
- return RedumpSystem.IncredibleTechnologiesEagle;
- case "eamusement":
- case "e-amusement":
- case "konamieamusement":
- case "konami eamusement":
- case "konamie-amusement":
- case "konami e-amusement":
- return RedumpSystem.KonamieAmusement;
- case "firebeat":
- case "konamifirebeat":
- case "konami firebeat":
- return RedumpSystem.KonamiFireBeat;
- case "konamim2":
- case "konami m2":
- return RedumpSystem.KonamiM2;
- case "system573":
- case "system 573":
- case "konamisystem573":
- case "konami system 573":
- return RedumpSystem.KonamiSystem573;
- case "gvsystem":
- case "systemgv":
- case "gv system":
- case "system gv":
- case "konamigvsystem":
- case "konamisystemgv":
- case "konami gv system":
- case "konami system gv":
- return RedumpSystem.KonamiSystemGV;
- case "twinkle":
- case "konamitwinkle":
- case "konami twinkle":
- return RedumpSystem.KonamiTwinkle;
+ return RedumpSystem.HasbroVideoNowXP;
case "ixl":
case "mattelixl":
case "mattel ixl":
@@ -660,17 +660,6 @@ namespace RedumpLib.Data
case "mattelhyperscan":
case "mattel hyperscan":
return RedumpSystem.MattelHyperScan;
- case "vis":
- case "tandyvis":
- case "tandy vis":
- case "tandyvisualinformationsystem":
- case "tandy visual information system":
- case "memorexvis":
- case "memorex vis":
- case "memorexvisualinformationsystem":
- case "memorex visual information sytem":
- case "tandy / memorex visual information system":
- return RedumpSystem.MemorexVisualInformationSystem;
case "xbox":
case "microsoftxbox":
case "microsoft xbox":
@@ -690,38 +679,24 @@ namespace RedumpLib.Data
case "microsoft xbone":
case "microsoft xbox one":
return RedumpSystem.MicrosoftXboxOne;
- case "triforce":
- case "namcotriforce":
- case "namco triforce":
- case "segatriforce":
- case "sega triforce":
- case "nintendotriforce":
- case "nintendo triforce":
- case "namco / sega / nintendo triforce":
- return RedumpSystem.NamcoSegaNintendoTriforce;
- case "system12":
- case "system 12":
- case "namcosystem12":
- case "namco system 12":
- return RedumpSystem.NamcoSystem12;
- case "system246":
- case "system 246":
- case "namcosystem246":
- case "namco system 246":
- case "capcomsystem246":
- case "capcom system 246":
- case "taitosystem246":
- case "taito system 246":
- case "namco / capcom / taito system 246":
- return RedumpSystem.NamcoSystem246;
- case "naviken":
- case "naviken21":
- case "naviken 2.1":
- case "navisoftnaviken":
- case "navisoft naviken":
- case "navisoftnaviken21":
- case "navisoft naviken 2.1":
- return RedumpSystem.NavisoftNaviken21;
+ case "xbs":
+ case "xbseries":
+ case "xbseriess":
+ case "xbseriesx":
+ case "xbseriessx":
+ case "xboxseries":
+ case "xboxseriess":
+ case "xboxseriesx":
+ case "xboxseriesxs":
+ case "microsoftxboxseries":
+ case "microsoftxboxseriess":
+ case "microsoftxboxseriesx":
+ case "microsoftxboxseriesxs":
+ case "microsoft xbox series":
+ case "microsoft xbox series s":
+ case "microsoft xbox series x":
+ case "microsoft xbox series x and s":
+ return RedumpSystem.MicrosoftXboxSeriesXS;
case "pcecd":
case "pce-cd":
case "tgcd":
@@ -732,18 +707,6 @@ namespace RedumpLib.Data
case "nec turbografx cd":
case "nec pc-engine / turbografx cd":
return RedumpSystem.NECPCEngineCDTurboGrafxCD;
- case "pc88":
- case "pc-88":
- case "necpc88":
- case "nec pc88":
- case "nec pc-88":
- return RedumpSystem.NECPC88series;
- case "pc98":
- case "pc-98":
- case "necpc98":
- case "nec pc98":
- case "nec pc-98":
- return RedumpSystem.NECPC98series;
case "pcfx":
case "pc-fx":
case "pcfxga":
@@ -760,6 +723,34 @@ namespace RedumpLib.Data
case "nintendogamecube":
case "nintendo gamecube":
return RedumpSystem.NintendoGameCube;
+ case "snescd":
+ case "snes cd":
+ case "snes-cd":
+ case "supernescd":
+ case "super nes cd":
+ case "super nes-cd":
+ case "supernintendocd":
+ case "super nintendo cd":
+ case "super nintendo-cd":
+ case "nintendosnescd":
+ case "nintendo snes cd":
+ case "nintendosnes-cd":
+ case "nintendosupernescd":
+ case "nintendo super nes cd":
+ case "nintendo super nes-cd":
+ case "nintendosupernintendocd":
+ case "nintendo super nintendo cd":
+ case "nintendo super nintendo-cd":
+ case "sonysnescd":
+ case "sony snes cd":
+ case "sonysnes-cd":
+ case "sonysupernescd":
+ case "sony super nes cd":
+ case "sony super nes-cd":
+ case "sonysupernintendocd":
+ case "sony super nintendo cd":
+ case "sony super nintendo-cd":
+ return RedumpSystem.NintendoSonySuperNESCDROMSystem;
case "wii":
case "nintendowii":
case "nintendo wii":
@@ -769,71 +760,22 @@ namespace RedumpLib.Data
case "nintendowiiu":
case "nintendo wii u":
return RedumpSystem.NintendoWiiU;
- case "palm":
- case "palmos":
- return RedumpSystem.PalmOS;
case "3do":
case "3do interactive multiplayer":
case "panasonic3do":
case "panasonic 3do":
case "panasonic 3do interactive multiplayer":
return RedumpSystem.Panasonic3DOInteractiveMultiplayer;
- case "panasonicm2":
- case "panasonic m2":
- return RedumpSystem.PanasonicM2;
case "cdi":
case "cd-i":
case "philipscdi":
case "philips cdi":
case "philips cd-i":
return RedumpSystem.PhilipsCDi;
- case "cdi-video":
- case "cdi video":
- case "cd-i-video":
- case "cd-i video":
- case "cdidigitalvideo":
- case "cdi digital video":
- case "cd-i digital video":
- case "philipscdivideo":
- case "philips cdi-video":
- case "philips cdi video":
- case "philips cd-ivideo":
- case "philips cd-i-video":
- case "philips cd-i video":
- case "philipscdidigitalvideo":
- case "philips cdi digital video":
- case "philips cd-idigitalvideo":
- case "philips cd-i digital video":
- return RedumpSystem.PhilipsCDiDigitalVideo;
- case "photo":
- case "photocd":
- case "photo cd":
- return RedumpSystem.PhotoCD;
- case "gameshark":
- case "psgameshark":
- case "ps gameshark":
- case "playstationgameshark":
- case "playstation gameshark":
- case "playstation gameshark updates":
- return RedumpSystem.PlayStationGameSharkUpdates;
- case "ppc":
- case "pocketpc":
- case "pocket pc":
- return RedumpSystem.PocketPC;
- case "chihiro":
- case "segachihiro":
- case "sega chihiro":
- return RedumpSystem.SegaChihiro;
- case "dc":
- case "sdc":
- case "dreamcast":
- case "segadreamcast":
- case "sega dreamcast":
- return RedumpSystem.SegaDreamcast;
- case "lindbergh":
- case "segalindbergh":
- case "sega lindbergh":
- return RedumpSystem.SegaLindbergh;
+ case "laseractive":
+ case "pioneerlaseractive":
+ case "pioneer laseractive":
+ return RedumpSystem.PioneerLaserActive;
case "scd":
case "mcd":
case "smcd":
@@ -844,51 +786,16 @@ namespace RedumpLib.Data
case "mega cd":
case "sega cd / mega cd":
return RedumpSystem.SegaMegaCDSegaCD;
- case "naomi":
- case "seganaomi":
- case "sega naomi":
- return RedumpSystem.SegaNaomi;
- case "naomi2":
- case "naomi 2":
- case "seganaomi2":
- case "sega naomi 2":
- return RedumpSystem.SegaNaomi2;
- case "sp21":
- case "prologue21":
- case "prologue 21":
- case "segaprologue21":
- case "sega prologue21":
- case "sega prologue 21":
- case "segaprologue21multimediakaraokesystem":
- case "sega prologue21 multimedia karaoke system":
- case "sega prologue 21 multimedia karaoke system":
- return RedumpSystem.SegaPrologue21MultimediaKaraokeSystem;
- case "ringedge":
- case "segaringedge":
- case "sega ringedge":
- return RedumpSystem.SegaRingEdge;
- case "ringedge2":
- case "ringedge 2":
- case "segaringedge2":
- case "sega ringedge 2":
- return RedumpSystem.SegaRingEdge2;
+ case "dc":
+ case "sdc":
+ case "dreamcast":
+ case "segadreamcast":
+ case "sega dreamcast":
+ return RedumpSystem.SegaDreamcast;
case "saturn":
case "segasaturn":
case "sega saturn":
return RedumpSystem.SegaSaturn;
- case "stv":
- case "titanvideo":
- case "titan video":
- case "segatitanvideo":
- case "sega titan video":
- return RedumpSystem.SegaTitanVideo;
- case "x68k":
- case "x68000":
- case "sharpx68k":
- case "sharp x68k":
- case "sharpx68000":
- case "sharp x68000":
- return RedumpSystem.SharpX68000;
case "ngcd":
case "neogeocd":
case "neogeo cd":
@@ -931,6 +838,14 @@ namespace RedumpLib.Data
case "sonyplaystation4":
case "sony playstation 4":
return RedumpSystem.SonyPlayStation4;
+ case "ps5":
+ case "playstation5":
+ case "playstation 5":
+ case "sonyps5":
+ case "sony ps5":
+ case "sonyplaystation5":
+ case "sony playstation 5":
+ return RedumpSystem.SonyPlayStation5;
case "psp":
case "playstationportable":
case "playstation portable":
@@ -939,24 +854,17 @@ namespace RedumpLib.Data
case "sonyplaystationportable":
case "sony playstation portable":
return RedumpSystem.SonyPlayStationPortable;
- case "quizard":
- case "tabaustriaquizard":
- case "tab-austria quizard":
- return RedumpSystem.TABAustriaQuizard;
- case "iktv":
- case "taoiktv":
- case "tao iktv":
- return RedumpSystem.TaoiKTV;
- case "kisssite":
- case "kiss-site":
- case "tomykisssite":
- case "tomy kisssite":
- case "tomy kiss-site":
- return RedumpSystem.TomyKissSite;
- case "vcd":
- case "videocd":
- case "video cd":
- return RedumpSystem.VideoCD;
+ case "vis":
+ case "tandyvis":
+ case "tandy vis":
+ case "tandyvisualinformationsystem":
+ case "tandy visual information system":
+ case "memorexvis":
+ case "memorex vis":
+ case "memorexvisualinformationsystem":
+ case "memorex visual information sytem":
+ case "tandy / memorex visual information system":
+ return RedumpSystem.MemorexVisualInformationSystem;
case "nuon":
case "vmlabsnuon":
case "vm labs nuon":
@@ -988,11 +896,484 @@ namespace RedumpLib.Data
case "zapit games game wave family entertainment system":
return RedumpSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem;
+ #endregion
+
+ #region Computers
+
+ case "acorn":
+ case "archimedes":
+ case "acornarchimedes":
+ case "acorn archimedes":
+ return RedumpSystem.AcornArchimedes;
+ case "apple":
+ case "mac":
+ case "applemac":
+ case "macintosh":
+ case "applemacintosh":
+ case "apple mac":
+ case "apple macintosh":
+ return RedumpSystem.AppleMacintosh;
+ case "amiga":
+ case "commodoreamiga":
+ case "commodore amiga":
+ return RedumpSystem.CommodoreAmigaCD;
+ case "fmtowns":
+ case "fmt":
+ case "fm towns":
+ case "fujitsufmtowns":
+ case "fujitsu fm towns":
+ case "fujitsu fm towns series":
+ return RedumpSystem.FujitsuFMTownsseries;
+ case "ibm":
+ case "ibmpc":
+ case "pc":
+ case "ibm pc":
+ case "ibm pc compatible":
+ return RedumpSystem.IBMPCcompatible;
+ case "pc88":
+ case "pc-88":
+ case "necpc88":
+ case "nec pc88":
+ case "nec pc-88":
+ return RedumpSystem.NECPC88series;
+ case "pc98":
+ case "pc-98":
+ case "necpc98":
+ case "nec pc98":
+ case "nec pc-98":
+ return RedumpSystem.NECPC98series;
+ case "x68k":
+ case "x68000":
+ case "sharpx68k":
+ case "sharp x68k":
+ case "sharpx68000":
+ case "sharp x68000":
+ return RedumpSystem.SharpX68000;
+
+ #endregion
+
+ #region Arcade
+
+ case "cubo":
+ case "cubocd32":
+ case "cubo cd32":
+ case "amigacubocd32":
+ case "amiga cubo cd32":
+ return RedumpSystem.AmigaCUBOCD32;
+ case "alg3do":
+ case "alg 3do":
+ case "americanlasergames3do":
+ case "american laser games 3do":
+ return RedumpSystem.AmericanLaserGames3DO;
+ case "atari3do":
+ case "atari 3do":
+ return RedumpSystem.Atari3DO;
+ case "atronic":
+ return RedumpSystem.Atronic;
+ case "auscom":
+ case "auscomsystem1":
+ case "auscom system 1":
+ return RedumpSystem.AUSCOMSystem1;
+ case "gamemagic":
+ case "game magic":
+ case "ballygamemagic":
+ case "bally game magic":
+ return RedumpSystem.BallyGameMagic;
+ case "cps3":
+ case "cpsiii":
+ case "cps 3":
+ case "cp system 3":
+ case "cp system iii":
+ case "capcomcps3":
+ case "capcomcpsiii":
+ case "capcom cps 3":
+ case "capcom cps iii":
+ case "capcom cp system 3":
+ case "capcom cp system iii":
+ return RedumpSystem.CapcomCPSystemIII;
+ case "fpp":
+ case "funworldphotoplay":
+ case "funworld photoplay":
+ case "funworld photo play":
+ return RedumpSystem.funworldPhotoPlay;
+ case "globalvr":
+ case "global vr":
+ case "global vr pc-based systems":
+ return RedumpSystem.GlobalVRVarious;
+ case "vortek":
+ case "globalvrvortek":
+ case "global vr vortek":
+ return RedumpSystem.GlobalVRVortek;
+ case "vortekv3":
+ case "vortek v3":
+ case "globalvrvortekv3":
+ case "global vr vortek v3":
+ return RedumpSystem.GlobalVRVortekV3;
+ case "ice":
+ case "icepc":
+ case "ice pc":
+ case "ice pc-based hardware":
+ return RedumpSystem.ICEPCHardware;
+ case "iteagle":
+ case "eagle":
+ case "incredible technologies eagle":
+ return RedumpSystem.IncredibleTechnologiesEagle;
+ case "itpc":
+ case "incredible technologies pc-based systems":
+ return RedumpSystem.IncredibleTechnologiesVarious;
+ case "eamusement":
+ case "e-amusement":
+ case "konamieamusement":
+ case "konami eamusement":
+ case "konamie-amusement":
+ case "konami e-amusement":
+ return RedumpSystem.KonamieAmusement;
+ case "firebeat":
+ case "konamifirebeat":
+ case "konami firebeat":
+ return RedumpSystem.KonamiFireBeat;
+ case "gvsystem":
+ case "gv system":
+ case "konamigvsystem":
+ case "konami gv system":
+ case "systemgv":
+ case "system gv":
+ case "konamisystemgv":
+ case "konami system gv":
+ return RedumpSystem.KonamiSystemGV;
+ case "konamim2":
+ case "konami m2":
+ return RedumpSystem.KonamiM2;
+ case "python":
+ case "konamipython":
+ case "konami python":
+ return RedumpSystem.KonamiPython;
+ case "python2":
+ case "python 2":
+ case "konamipython2":
+ case "konami python 2":
+ return RedumpSystem.KonamiPython2;
+ case "system573":
+ case "system 573":
+ case "konamisystem573":
+ case "konami system 573":
+ return RedumpSystem.KonamiSystem573;
+ case "twinkle":
+ case "konamitwinkle":
+ case "konami twinkle":
+ return RedumpSystem.KonamiTwinkle;
+ case "konamipc":
+ case "konami pc":
+ case "konami pc-based systems":
+ return RedumpSystem.KonamiVarious;
+ case "boardwalk":
+ case "meritindustriesboardwalk":
+ case "merit industries boardwalk":
+ return RedumpSystem.MeritIndustriesBoardwalk;
+ case "megatouchforce":
+ case "megatouch force":
+ case "meritindustriesmegatouchforce":
+ case "merit industries megatouch force":
+ return RedumpSystem.MeritIndustriesMegaTouchForce;
+ case "megatouchion":
+ case "megatouch ion":
+ case "meritindustriesmegatouchion":
+ case "merit industries megatouch ion":
+ return RedumpSystem.MeritIndustriesMegaTouchION;
+ case "megatouchmaxx":
+ case "megatouch maxx":
+ case "meritindustriesmegatouchmaxx":
+ case "merit industries megatouch maxx":
+ return RedumpSystem.MeritIndustriesMegaTouchMaxx;
+ case "megatouchxl":
+ case "megatouch xl":
+ case "meritindustriesmegatouchxl":
+ case "merit industries megatouch xl":
+ return RedumpSystem.MeritIndustriesMegaTouchXL;
+ case "system256":
+ case "system 256":
+ case "supersystem256":
+ case "super system 256":
+ case "namcosystem256":
+ case "namco system 256":
+ case "namcosupersystem256":
+ case "namco super system 256":
+ case "capcomsystem256":
+ case "capcom system 256":
+ case "capcomsupersystem256":
+ case "capcom super system 256":
+ case "namco / capcom system 256/super system 256":
+ return RedumpSystem.NamcoCapcomSystem256;
+ case "system246":
+ case "system 246":
+ case "namcosystem246":
+ case "namco system 246":
+ case "capcomsystem246":
+ case "capcom system 246":
+ case "taitosystem246":
+ case "taito system 246":
+ case "namco / capcom / taito system 246":
+ return RedumpSystem.NamcoSystem246;
+ case "triforce":
+ case "namcotriforce":
+ case "namco triforce":
+ case "segatriforce":
+ case "sega triforce":
+ case "nintendotriforce":
+ case "nintendo triforce":
+ case "namco / sega / nintendo triforce":
+ return RedumpSystem.NamcoSegaNintendoTriforce;
+ case "system12":
+ case "system 12":
+ case "namcosystem12":
+ case "namco system 12":
+ return RedumpSystem.NamcoSystem12;
+ case "system357":
+ case "system 357":
+ case "namcosystem357":
+ case "namco system 357":
+ return RedumpSystem.NamcoSystem357;
+ case "newjatrecdi":
+ case "new jatre cdi":
+ case "new jatre cd-i":
+ return RedumpSystem.NewJatreCDi;
+ case "hrs":
+ case "highratesytem":
+ case "high rate system":
+ case "nichibutsuhrs":
+ case "nichibutsu hrs":
+ case "nichibutsu high rate system":
+ return RedumpSystem.NichibutsuHighRateSystem;
+ case "supercd":
+ case "super cd":
+ case "nichibutsuscd":
+ case "nichibutsu scd":
+ case "nichibutsusupercd":
+ case "nichibutsu supercd":
+ case "nichibutsu super cd":
+ return RedumpSystem.NichibutsuSuperCD;
+ case "xrs":
+ case "xratesystem":
+ case "x-rate system":
+ case "nichibutsuxrs":
+ case "nichibutsu xrs":
+ case "nichibutsu x-rate system":
+ return RedumpSystem.NichibutsuXRateSystem;
+ case "panasonicm2":
+ case "panasonic m2":
+ return RedumpSystem.PanasonicM2;
+ case "photoplay":
+ case "photoplaypc":
+ case "photoplay pc":
+ case "photoplay pc-based systems":
+ return RedumpSystem.PhotoPlayVarious;
+ case "rawthrills":
+ case "raw thrills":
+ case "raw thrills pc-based systems":
+ return RedumpSystem.RawThrillsVarious;
+ case "chihiro":
+ case "segachihiro":
+ case "sega chihiro":
+ return RedumpSystem.SegaChihiro;
+ case "europar":
+ case "europa-r":
+ case "segaeuropar":
+ case "sega europar":
+ case "sega europa-r":
+ return RedumpSystem.SegaEuropaR;
+ case "lindbergh":
+ case "segalindbergh":
+ case "sega lindbergh":
+ return RedumpSystem.SegaLindbergh;
+ case "naomi":
+ case "seganaomi":
+ case "sega naomi":
+ return RedumpSystem.SegaNaomi;
+ case "naomi2":
+ case "naomi 2":
+ case "seganaomi2":
+ case "sega naomi 2":
+ return RedumpSystem.SegaNaomi2;
+ case "nu":
+ case "seganu":
+ case "sega nu":
+ return RedumpSystem.SegaNu;
+ case "ringedge":
+ case "segaringedge":
+ case "sega ringedge":
+ return RedumpSystem.SegaRingEdge;
+ case "ringedge2":
+ case "ringedge 2":
+ case "segaringedge2":
+ case "sega ringedge 2":
+ return RedumpSystem.SegaRingEdge2;
+ case "ringwide":
+ case "segaringwide":
+ case "sega ringwide":
+ return RedumpSystem.SegaRingWide;
+ case "stv":
+ case "titanvideo":
+ case "titan video":
+ case "segatitanvideo":
+ case "sega titan video":
+ return RedumpSystem.SegaTitanVideo;
+ case "system32":
+ case "system 32":
+ case "segasystem32":
+ case "sega system 32":
+ return RedumpSystem.SegaSystem32;
+ case "cats":
+ case "seibucats":
+ case "seibu cats":
+ case "seibu cats system":
+ return RedumpSystem.SeibuCATSSystem;
+ case "quizard":
+ case "tabaustriaquizard":
+ case "tab-austria quizard":
+ return RedumpSystem.TABAustriaQuizard;
+ case "tsumo":
+ case "tsunamitsumo":
+ case "tsunami tsumo":
+ case "tsunami tsumo multi-game motion system":
+ return RedumpSystem.TsunamiTsuMoMultiGameMotionSystem;
+
+ #endregion
+
+ #region Others
+
+ case "audio":
+ case "audiocd":
+ case "audio cd":
+ return RedumpSystem.AudioCD;
+ case "bdvideo":
+ case "bd-video":
+ case "blurayvideo":
+ case "bluray video":
+ return RedumpSystem.BDVideo;
+ case "dvda":
+ case "dvdaudio":
+ case "dvd-audio":
+ return RedumpSystem.DVDAudio;
+ case "dvd":
+ case "dvdv":
+ case "dvdvideo":
+ case "dvd-video":
+ return RedumpSystem.DVDVideo;
+ case "enhancedcd":
+ case "enhanced cd":
+ case "enhancedcdrom":
+ case "enhanced cdrom":
+ case "enhanced cd-rom":
+ return RedumpSystem.EnhancedCD;
+ case "hddvd":
+ case "hddvdv":
+ case "hddvdvideo":
+ case "hddvd-video":
+ case "hd-dvd-video":
+ return RedumpSystem.HDDVDVideo;
+ case "naviken":
+ case "naviken21":
+ case "naviken 2.1":
+ case "navisoftnaviken":
+ case "navisoft naviken":
+ case "navisoftnaviken21":
+ case "navisoft naviken 2.1":
+ return RedumpSystem.NavisoftNaviken21;
+ case "palm":
+ case "palmos":
+ return RedumpSystem.PalmOS;
+ case "photo":
+ case "photocd":
+ case "photo cd":
+ return RedumpSystem.PhotoCD;
+ case "gameshark":
+ case "psgameshark":
+ case "ps gameshark":
+ case "playstationgameshark":
+ case "playstation gameshark":
+ case "playstation gameshark updates":
+ return RedumpSystem.PlayStationGameSharkUpdates;
+ case "pocketpc":
+ case "pocket pc":
+ case "ppc":
+ return RedumpSystem.PocketPC;
+ case "rainbow":
+ case "rainbowdisc":
+ case "rainbow disc":
+ return RedumpSystem.RainbowDisc;
+ case "pl21":
+ case "prologue21":
+ case "prologue 21":
+ case "segaprologue21":
+ case "sega prologue21":
+ case "sega prologue 21":
+ return RedumpSystem.SegaPrologue21MultimediaKaraokeSystem;
+ case "sacd":
+ case "superaudiocd":
+ case "super audio cd":
+ return RedumpSystem.SuperAudioCD;
+ case "iktv":
+ case "taoiktv":
+ case "tao iktv":
+ return RedumpSystem.TaoiKTV;
+ case "kisssite":
+ case "kiss-site":
+ case "tomykisssite":
+ case "tomy kisssite":
+ case "tomy kiss-site":
+ return RedumpSystem.TomyKissSite;
+ case "vcd":
+ case "videocd":
+ case "video cd":
+ return RedumpSystem.VideoCD;
+
+ #endregion
+
default:
return null;
}
}
#endregion
+
+ #region System Category
+
+ ///
+ /// Get the string representation of the system category
+ ///
+ ///
+ ///
+ public static string LongName(this SystemCategory? category) => AttributeHelper.GetAttribute(category)?.LongName;
+
+ #endregion
+
+ #region Yes/No
+
+ ///
+ /// Get the string representation of the YesNo value
+ ///
+ ///
+ ///
+ public static string LongName(this YesNo yesno) => AttributeHelper.GetAttribute(yesno)?.LongName ?? "Yes/No";
+
+ ///
+ /// Get the YesNo enum value for a given string
+ ///
+ /// String value to convert
+ /// YesNo represented by the string, if possible
+ public static YesNo? ToYesNo(string yesno)
+ {
+ switch (yesno.ToLowerInvariant())
+ {
+ case "no":
+ return YesNo.No;
+ case "yes":
+ return YesNo.Yes;
+ default:
+ return YesNo.NULL;
+ }
+ }
+
+ #endregion
}
}
diff --git a/MPF.Library/Data/SubmissionInfo.cs b/RedumpLib/Data/SubmissionInfo.cs
similarity index 98%
rename from MPF.Library/Data/SubmissionInfo.cs
rename to RedumpLib/Data/SubmissionInfo.cs
index d05796be..bac1d0e0 100644
--- a/MPF.Library/Data/SubmissionInfo.cs
+++ b/RedumpLib/Data/SubmissionInfo.cs
@@ -1,14 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using MPF.Converters;
-using MPF.Utilities;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using RedumpLib.Converters;
-using RedumpLib.Data;
-namespace MPF.Data
+namespace RedumpLib.Data
{
public class SubmissionInfo : ICloneable
{
@@ -95,13 +92,13 @@ namespace MPF.Data
{
// Name not defined by Redump
[JsonProperty(PropertyName = "d_system", Required = Required.AllowNull)]
- [JsonConverter(typeof(KnownSystemConverter))]
- public KnownSystem? System { get; set; }
+ [JsonConverter(typeof(SystemConverter))]
+ public RedumpSystem? System { get; set; }
// Name not defined by Redump
[JsonProperty(PropertyName = "d_media", Required = Required.AllowNull)]
- [JsonConverter(typeof(MediaTypeConverter))]
- public MediaType? Media { get; set; }
+ [JsonConverter(typeof(DiscTypeConverter))]
+ public DiscType? Media { get; set; }
[JsonProperty(PropertyName = "d_title", Required = Required.AllowNull)]
public string Title { get; set; }
@@ -116,6 +113,7 @@ namespace MPF.Data
public string DiscTitle { get; set; }
[JsonProperty(PropertyName = "d_category", Required = Required.AllowNull)]
+ [JsonConverter(typeof(DiscCategoryConverter))]
public DiscCategory? Category { get; set; }
[JsonProperty(PropertyName = "d_region", Required = Required.AllowNull)]
@@ -297,6 +295,7 @@ namespace MPF.Data
public class EDCSection : ICloneable
{
[JsonProperty(PropertyName = "d_edc", NullValueHandling = NullValueHandling.Ignore)]
+ [JsonConverter(typeof(YesNoConverter))]
public YesNo EDC { get; set; }
public object Clone()
@@ -376,9 +375,11 @@ namespace MPF.Data
public class CopyProtectionSection : ICloneable
{
[JsonProperty(PropertyName = "d_protection_a", NullValueHandling = NullValueHandling.Ignore)]
+ [JsonConverter(typeof(YesNoConverter))]
public YesNo AntiModchip { get; set; }
[JsonProperty(PropertyName = "d_protection_1", NullValueHandling = NullValueHandling.Ignore)]
+ [JsonConverter(typeof(YesNoConverter))]
public YesNo LibCrypt { get; set; }
[JsonProperty(PropertyName = "d_libcrypt", NullValueHandling = NullValueHandling.Ignore)]
diff --git a/RedumpLib/Web/RedumpWebClient.cs b/RedumpLib/Web/RedumpWebClient.cs
index 241568f3..7e2ab5ac 100644
--- a/RedumpLib/Web/RedumpWebClient.cs
+++ b/RedumpLib/Web/RedumpWebClient.cs
@@ -611,8 +611,8 @@ namespace RedumpLib.Web
Console.WriteLine($"Downloading {title}");
foreach (var system in systems)
{
- // If the system is null, we can't do anything
- if (system == null)
+ // If the system is invalid, we can't do anything
+ if (system == null || !system.IsAvailable())
continue;
// If we didn't have credentials
@@ -649,6 +649,10 @@ namespace RedumpLib.Web
Console.WriteLine($"Downloading {title}");
foreach (var system in systems)
{
+ // If the system is invalid, we can't do anything
+ if (system == null || !system.IsAvailable())
+ continue;
+
// If we didn't have credentials
if (!LoggedIn && system.IsBanned())
continue;