mirror of
https://github.com/SabreTools/MPF.git
synced 2026-07-02 17:24:48 +00:00
Update library, move more things there
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// List all known systems with their short usable names
|
||||
/// List all systems with their short usable names
|
||||
/// </summary>
|
||||
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<RedumpSystem?>()
|
||||
.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()}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ namespace MPF.Aaru
|
||||
public Parameters(string parameters) : base(parameters) { }
|
||||
|
||||
/// <inheritdoc/>
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace MPF.CleanRip
|
||||
public Parameters(string parameters) : base(parameters) { }
|
||||
|
||||
/// <inheritdoc/>
|
||||
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)
|
||||
{
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// Serialize KnownSystem enum values
|
||||
/// </summary>
|
||||
public class KnownSystemConverter : JsonConverter<KnownSystem?>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -60,7 +60,7 @@ namespace MPF.DD
|
||||
public Parameters(string parameters) : base(parameters) { }
|
||||
|
||||
/// <inheritdoc/>
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace MPF.Data
|
||||
/// <summary>
|
||||
/// Currently represented system
|
||||
/// </summary>
|
||||
public KnownSystem? System { get; set; }
|
||||
public RedumpSystem? System { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Currently represented media type
|
||||
@@ -127,13 +127,13 @@ namespace MPF.Data
|
||||
/// <summary>
|
||||
/// Generate parameters based on a set of known inputs
|
||||
/// </summary>
|
||||
/// <param name="system">KnownSystem value to use</param>
|
||||
/// <param name="system">RedumpSystem value to use</param>
|
||||
/// <param name="type">MediaType value to use</param>
|
||||
/// <param name="driveLetter">Drive letter to use</param>
|
||||
/// <param name="filename">Filename to use</param>
|
||||
/// <param name="driveSpeed">Drive speed to use</param>
|
||||
/// <param name="options">Options object containing all settings that may be used for setting parameters</param>
|
||||
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;
|
||||
|
||||
@@ -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
|
||||
/// <summary>
|
||||
/// Currently selected system
|
||||
/// </summary>
|
||||
public KnownSystem? System { get; private set; }
|
||||
public RedumpSystem? System { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 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<string> output = new List<string> { "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);
|
||||
|
||||
@@ -49,231 +49,6 @@ namespace MPF.Data
|
||||
UmdImageCreator,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Known systems
|
||||
/// </summary>
|
||||
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
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Known system category
|
||||
/// </summary>
|
||||
public enum KnownSystemCategory
|
||||
{
|
||||
DiscBasedConsole = 0,
|
||||
OtherConsole,
|
||||
Computer,
|
||||
Arcade,
|
||||
Other,
|
||||
Custom
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Known media types
|
||||
/// </summary>
|
||||
@@ -407,16 +182,6 @@ namespace MPF.Data
|
||||
TapeDSTLarge = 66,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generic yes/no values for Redump
|
||||
/// </summary>
|
||||
public enum YesNo
|
||||
{
|
||||
NULL = 0,
|
||||
No = 1,
|
||||
Yes = 2,
|
||||
}
|
||||
|
||||
#region Win32_CDROMDrive
|
||||
|
||||
// https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-cdromdrive
|
||||
|
||||
@@ -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
|
||||
/// <summary>
|
||||
/// Default system if none can be detected
|
||||
/// </summary>
|
||||
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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
/// </summary>
|
||||
/// <param name="baseCommand">Command value to check</param>
|
||||
/// <returns>KnownSystem if possible, null on error</returns>
|
||||
public static KnownSystem? ToKnownSystem(string baseCommand)
|
||||
/// <returns>RedumpSystem if possible, null on error</returns>
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ namespace MPF.DiscImageCreator
|
||||
public Parameters(string parameters) : base(parameters) { }
|
||||
|
||||
/// <inheritdoc/>
|
||||
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
|
||||
/// <summary>
|
||||
/// Set the DIC command to be used for a given system and media type
|
||||
/// </summary>
|
||||
/// <param name="system">KnownSystem value to check</param>
|
||||
/// <param name="system">RedumpSystem value to check</param>
|
||||
/// <param name="type">MediaType value to check</param>
|
||||
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;
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace MPF.UmdImageCreator
|
||||
public Parameters(string parameters) : base(parameters) { }
|
||||
|
||||
/// <inheritdoc/>
|
||||
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)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -1,32 +1,10 @@
|
||||
using MPF.Data;
|
||||
using RedumpLib.Data;
|
||||
|
||||
namespace MPF.Utilities
|
||||
{
|
||||
public static class EnumExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Determine the category based on the system
|
||||
/// </summary>
|
||||
/// <param name="system">KnownSystem value to check</param>
|
||||
/// <returns>KnownSystemCategory related to the system</returns>
|
||||
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;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determine if the media supports drive speeds
|
||||
/// </summary>
|
||||
@@ -52,25 +30,25 @@ namespace MPF.Utilities
|
||||
/// <summary>
|
||||
/// Determine if a system is considered audio-only
|
||||
/// </summary>
|
||||
/// <param name="system">KnownSystem value to check</param>
|
||||
/// <param name="system">RedumpSystem value to check</param>
|
||||
/// <returns>True if the system is audio-only, false otherwise</returns>
|
||||
/// <remarks>
|
||||
/// 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.
|
||||
/// </remarks>
|
||||
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
|
||||
/// <summary>
|
||||
/// Determine if a system is a marker value
|
||||
/// </summary>
|
||||
/// <param name="system">KnownSystem value to check</param>
|
||||
/// <param name="system">RedumpSystem value to check</param>
|
||||
/// <returns>True if the system is a marker value, false otherwise</returns>
|
||||
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
|
||||
/// <summary>
|
||||
/// Determine if a system is considered XGD
|
||||
/// </summary>
|
||||
/// <param name="system">KnownSystem value to check</param>
|
||||
/// <param name="system">RedumpSystem value to check</param>
|
||||
/// <returns>True if the system is XGD, false otherwise</returns>
|
||||
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;
|
||||
|
||||
@@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// Get a list of valid MediaTypes for a given KnownSystem
|
||||
/// Get a list of valid MediaTypes for a given RedumpSystem
|
||||
/// </summary>
|
||||
/// <param name="sys">KnownSystem value to check</param>
|
||||
/// <param name="sys">RedumpSystem value to check</param>
|
||||
/// <returns>MediaTypes, if possible</returns>
|
||||
public static List<MediaType?> GetValidMediaTypes(KnownSystem? sys)
|
||||
public static List<MediaType?> GetValidMediaTypes(RedumpSystem? sys)
|
||||
{
|
||||
var types = new List<MediaType?>();
|
||||
|
||||
@@ -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
|
||||
/// <param name="drive"></param>
|
||||
/// <param name="defaultValue"></param>
|
||||
/// <returns></returns>
|
||||
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
|
||||
/// <summary>
|
||||
/// Verify that, given a system and a media type, they are correct
|
||||
/// </summary>
|
||||
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
|
||||
|
||||
@@ -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
|
||||
{
|
||||
/// <summary>
|
||||
/// Set of all known systems for testing
|
||||
/// </summary>
|
||||
public static IEnumerable<object[]> KnownSystems = KnownSystemComboBoxItem.GenerateElements().Select(e => new object[] { e });
|
||||
public static IEnumerable<object[]> RedumpSystems = RedumpSystemComboBoxItem.GenerateElements().Select(e => new object[] { e });
|
||||
|
||||
[Theory]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Audio, MediaType.CDROM)]
|
||||
@@ -39,26 +40,26 @@ namespace MPF.Test.Utilities
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Audio, KnownSystem.AudioCD)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.BluRay, KnownSystem.SonyPlayStation3)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Audio, RedumpSystem.AudioCD)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.BluRay, RedumpSystem.SonyPlayStation3)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Close, null)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.CompactDisc, KnownSystem.IBMPCCompatible)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Data, KnownSystem.IBMPCCompatible)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.DigitalVideoDisc, KnownSystem.IBMPCCompatible)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.CompactDisc, RedumpSystem.IBMPCcompatible)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Data, RedumpSystem.IBMPCcompatible)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.DigitalVideoDisc, RedumpSystem.IBMPCcompatible)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Eject, null)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Floppy, KnownSystem.IBMPCCompatible)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.GDROM, KnownSystem.SegaDreamcast)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Floppy, RedumpSystem.IBMPCcompatible)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.GDROM, RedumpSystem.SegaDreamcast)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.MDS, null)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Reset, null)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.SACD, KnownSystem.SuperAudioCD)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.SACD, RedumpSystem.SuperAudioCD)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Start, null)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Stop, null)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Sub, null)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.Swap, KnownSystem.SegaDreamcast)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.XBOX, KnownSystem.MicrosoftXBOX)]
|
||||
public void BaseCommandToKnownSystemTest(string command, KnownSystem? expected)
|
||||
[InlineData(DiscImageCreator.CommandStrings.Swap, RedumpSystem.SegaDreamcast)]
|
||||
[InlineData(DiscImageCreator.CommandStrings.XBOX, RedumpSystem.MicrosoftXbox)]
|
||||
public void BaseCommandToRedumpSystemTest(string command, RedumpSystem? expected)
|
||||
{
|
||||
KnownSystem? actual = DiscImageCreator.Converters.ToKnownSystem(command);
|
||||
RedumpSystem? actual = DiscImageCreator.Converters.ToRedumpSystem(command);
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
|
||||
@@ -77,33 +78,33 @@ namespace MPF.Test.Utilities
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(KnownSystems))]
|
||||
public void KnownSystemHasValidCategory(KnownSystemComboBoxItem system)
|
||||
[MemberData(nameof(RedumpSystems))]
|
||||
public void RedumpSystemHasValidCategory(RedumpSystemComboBoxItem system)
|
||||
{
|
||||
KnownSystem[] markers = { KnownSystem.MarkerArcadeEnd, KnownSystem.MarkerDiscBasedConsoleEnd, /* KnownSystem.MarkerOtherConsoleEnd, */ KnownSystem.MarkerComputerEnd, KnownSystem.MarkerOtherEnd };
|
||||
RedumpSystem[] markers = { RedumpSystem.MarkerArcadeEnd, RedumpSystem.MarkerDiscBasedConsoleEnd, /* RedumpSystem.MarkerOtherConsoleEnd, */ RedumpSystem.MarkerComputerEnd, RedumpSystem.MarkerOtherEnd };
|
||||
|
||||
// Non-system items won't map
|
||||
if (system.IsHeader)
|
||||
return;
|
||||
|
||||
// NONE will never map
|
||||
if (system == KnownSystem.NONE)
|
||||
// Null will never map
|
||||
if (system?.Value == null)
|
||||
return;
|
||||
|
||||
// we check that the category is the first category value higher than the system
|
||||
KnownSystemCategory category = ((KnownSystem?)system).Category();
|
||||
KnownSystem marker = KnownSystem.NONE;
|
||||
SystemCategory category = ((RedumpSystem?)system).GetCategory();
|
||||
RedumpSystem? marker = null;
|
||||
|
||||
switch (category)
|
||||
{
|
||||
case KnownSystemCategory.Arcade: marker = KnownSystem.MarkerArcadeEnd; break;
|
||||
case KnownSystemCategory.DiscBasedConsole: marker = KnownSystem.MarkerDiscBasedConsoleEnd; break;
|
||||
/* case KnownSystemCategory.OtherConsole: marker = KnownSystem.MarkerOtherConsoleEnd; break; */
|
||||
case KnownSystemCategory.Computer: marker = KnownSystem.MarkerComputerEnd; break;
|
||||
case KnownSystemCategory.Other: marker = KnownSystem.MarkerOtherEnd; break;
|
||||
case SystemCategory.Arcade: marker = RedumpSystem.MarkerArcadeEnd; break;
|
||||
case SystemCategory.DiscBasedConsole: marker = RedumpSystem.MarkerDiscBasedConsoleEnd; break;
|
||||
/* case SystemCategory.OtherConsole: marker = RedumpSystem.MarkerOtherConsoleEnd; break; */
|
||||
case SystemCategory.Computer: marker = RedumpSystem.MarkerComputerEnd; break;
|
||||
case SystemCategory.Other: marker = RedumpSystem.MarkerOtherEnd; break;
|
||||
}
|
||||
|
||||
Assert.NotEqual(KnownSystem.NONE, marker);
|
||||
Assert.NotEqual(null, marker);
|
||||
Assert.True(marker > system);
|
||||
|
||||
Array.ForEach(markers, mmarker =>
|
||||
|
||||
@@ -2,35 +2,36 @@
|
||||
using MPF.Converters;
|
||||
using MPF.Data;
|
||||
using MPF.Utilities;
|
||||
using RedumpLib.Data;
|
||||
using Xunit;
|
||||
|
||||
namespace MPF.Test.Converters
|
||||
{
|
||||
public class KnownSystemExtensionsTest
|
||||
public class RedumpSystemExtensionsTest
|
||||
{
|
||||
[Theory]
|
||||
[InlineData(KnownSystem.MicrosoftXBOX, "Microsoft XBOX")]
|
||||
[InlineData(KnownSystem.NECPC88, "NEC PC-88")]
|
||||
[InlineData(KnownSystem.KonamiPython, "Konami Python")]
|
||||
[InlineData(KnownSystem.HDDVDVideo, "HD-DVD-Video")]
|
||||
[InlineData(KnownSystem.NONE, "Unknown")]
|
||||
public void KnownSystemToStringTest(KnownSystem? knownSystem, string expected)
|
||||
[InlineData(RedumpSystem.MicrosoftXbox, "Microsoft Xbox")]
|
||||
[InlineData(RedumpSystem.NECPC88series, "NEC PC-88 series")]
|
||||
[InlineData(RedumpSystem.KonamiPython, "Konami Python")]
|
||||
[InlineData(RedumpSystem.HDDVDVideo, "HD DVD-Video")]
|
||||
[InlineData(null, null)]
|
||||
public void RedumpSystemToStringTest(RedumpSystem? knownSystem, string expected)
|
||||
{
|
||||
string actual = EnumConverter.LongName(knownSystem);
|
||||
string actual = Extensions.LongName(knownSystem);
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IsMarkerTest()
|
||||
{
|
||||
var values = (KnownSystem[])Enum.GetValues(typeof(KnownSystem));
|
||||
var values = (RedumpSystem[])Enum.GetValues(typeof(RedumpSystem));
|
||||
foreach(var system in values)
|
||||
{
|
||||
bool expected = system == KnownSystem.MarkerArcadeEnd || system == KnownSystem.MarkerComputerEnd ||
|
||||
system == KnownSystem.MarkerOtherEnd || system == KnownSystem.MarkerDiscBasedConsoleEnd;
|
||||
// || system == KnownSystem.MarkerOtherConsoleEnd;
|
||||
bool expected = system == RedumpSystem.MarkerArcadeEnd || system == RedumpSystem.MarkerComputerEnd ||
|
||||
system == RedumpSystem.MarkerOtherEnd || system == RedumpSystem.MarkerDiscBasedConsoleEnd;
|
||||
// || system == RedumpSystem.MarkerOtherConsoleEnd;
|
||||
|
||||
bool actual = ((KnownSystem?)system).IsMarker();
|
||||
bool actual = ((RedumpSystem?)system).IsMarker();
|
||||
|
||||
Assert.Equal(expected, actual);
|
||||
}
|
||||
@@ -39,10 +40,10 @@ namespace MPF.Test.Converters
|
||||
[Fact]
|
||||
public void CategoryNameNotEmptyTest()
|
||||
{
|
||||
var values = (KnownSystemCategory[])Enum.GetValues(typeof(KnownSystemCategory));
|
||||
var values = (SystemCategory[])Enum.GetValues(typeof(SystemCategory));
|
||||
foreach (var system in values)
|
||||
{
|
||||
string actual = ((KnownSystem?)system).LongName();
|
||||
string actual = ((RedumpSystem?)system).LongName();
|
||||
Assert.NotEqual("", actual);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.IO;
|
||||
using MPF.Data;
|
||||
using MPF.Utilities;
|
||||
using RedumpLib.Data;
|
||||
using Xunit;
|
||||
|
||||
namespace MPF.Test
|
||||
@@ -21,7 +22,7 @@ namespace MPF.Test
|
||||
? new Drive(InternalDriveType.Floppy, new DriveInfo(letter.ToString()))
|
||||
: new Drive(InternalDriveType.Optical, new DriveInfo(letter.ToString()));
|
||||
|
||||
var env = new DumpEnvironment(options, string.Empty, string.Empty, drive, KnownSystem.IBMPCCompatible, mediaType, parameters);
|
||||
var env = new DumpEnvironment(options, string.Empty, string.Empty, drive, RedumpSystem.IBMPCcompatible, mediaType, parameters);
|
||||
|
||||
bool actual = env.ParametersValid();
|
||||
Assert.Equal(expected, actual);
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Linq;
|
||||
using MPF.Data;
|
||||
using MPF.DiscImageCreator;
|
||||
using MPF.Utilities;
|
||||
using RedumpLib.Data;
|
||||
using Xunit;
|
||||
|
||||
namespace MPF.Test.Utilities
|
||||
@@ -10,13 +11,13 @@ namespace MPF.Test.Utilities
|
||||
public class ParametersTest
|
||||
{
|
||||
[Theory]
|
||||
[InlineData(KnownSystem.MicrosoftXBOX, MediaType.CDROM, CommandStrings.CompactDisc)]
|
||||
[InlineData(KnownSystem.MicrosoftXBOX, MediaType.DVD, CommandStrings.XBOX)]
|
||||
[InlineData(KnownSystem.MicrosoftXBOX, MediaType.LaserDisc, null)]
|
||||
[InlineData(KnownSystem.SegaNu, MediaType.BluRay, CommandStrings.BluRay)]
|
||||
[InlineData(KnownSystem.AppleMacintosh, MediaType.FloppyDisk, CommandStrings.Floppy)]
|
||||
[InlineData(KnownSystem.RawThrillsVarious, MediaType.GDROM, null)]
|
||||
public void ParametersFromSystemAndTypeTest(KnownSystem? knownSystem, MediaType? mediaType, string expected)
|
||||
[InlineData(RedumpSystem.MicrosoftXbox, MediaType.CDROM, CommandStrings.CompactDisc)]
|
||||
[InlineData(RedumpSystem.MicrosoftXbox, MediaType.DVD, CommandStrings.XBOX)]
|
||||
[InlineData(RedumpSystem.MicrosoftXbox, MediaType.LaserDisc, null)]
|
||||
[InlineData(RedumpSystem.SegaNu, MediaType.BluRay, CommandStrings.BluRay)]
|
||||
[InlineData(RedumpSystem.AppleMacintosh, MediaType.FloppyDisk, CommandStrings.Floppy)]
|
||||
[InlineData(RedumpSystem.RawThrillsVarious, MediaType.GDROM, null)]
|
||||
public void ParametersFromSystemAndTypeTest(RedumpSystem? knownSystem, MediaType? mediaType, string expected)
|
||||
{
|
||||
var options = new Options { };
|
||||
var actual = new Parameters(knownSystem, mediaType, 'D', "disc.bin", 16, options);
|
||||
@@ -24,21 +25,21 @@ namespace MPF.Test.Utilities
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(KnownSystem.AppleMacintosh, MediaType.LaserDisc, true, 20, null, null)]
|
||||
[InlineData(KnownSystem.NintendoGameCube, MediaType.NintendoGameCubeGameDisc, false, 20, null, new string[] { FlagStrings.Raw })]
|
||||
[InlineData(KnownSystem.IBMPCCompatible, MediaType.DVD, false, 20, null, new string[] { FlagStrings.CopyrightManagementInformation, FlagStrings.ScanFileProtect })]
|
||||
[InlineData(RedumpSystem.AppleMacintosh, MediaType.LaserDisc, true, 20, null, null)]
|
||||
[InlineData(RedumpSystem.NintendoGameCube, MediaType.NintendoGameCubeGameDisc, false, 20, null, new string[] { FlagStrings.Raw })]
|
||||
[InlineData(RedumpSystem.IBMPCcompatible, MediaType.DVD, false, 20, null, new string[] { FlagStrings.CopyrightManagementInformation, FlagStrings.ScanFileProtect })]
|
||||
/* paranoid mode tests */
|
||||
[InlineData(KnownSystem.IBMPCCompatible, MediaType.CDROM, true, 1000, 2, new string[] { FlagStrings.C2Opcode, FlagStrings.NoFixSubQSecuROM, FlagStrings.ScanFileProtect, FlagStrings.ScanSectorProtect, FlagStrings.SubchannelReadLevel })]
|
||||
[InlineData(KnownSystem.AppleMacintosh, MediaType.CDROM, false, 20, null, new string[] { FlagStrings.C2Opcode, FlagStrings.NoFixSubQSecuROM, FlagStrings.ScanFileProtect, FlagStrings.ScanSectorProtect, FlagStrings.SubchannelReadLevel })]
|
||||
[InlineData(KnownSystem.IBMPCCompatible, MediaType.DVD, true, 500, null, new string[] { FlagStrings.CopyrightManagementInformation, FlagStrings.ScanFileProtect })]
|
||||
[InlineData(KnownSystem.HDDVDVideo, MediaType.HDDVD, true, 500, null, new string[] { FlagStrings.CopyrightManagementInformation })]
|
||||
[InlineData(KnownSystem.IBMPCCompatible, MediaType.DVD, false, 500, null, new string[] { FlagStrings.CopyrightManagementInformation, FlagStrings.ScanFileProtect })]
|
||||
[InlineData(KnownSystem.HDDVDVideo, MediaType.HDDVD, false, 500, null, new string[] { FlagStrings.CopyrightManagementInformation })]
|
||||
[InlineData(RedumpSystem.IBMPCcompatible, MediaType.CDROM, true, 1000, 2, new string[] { FlagStrings.C2Opcode, FlagStrings.NoFixSubQSecuROM, FlagStrings.ScanFileProtect, FlagStrings.ScanSectorProtect, FlagStrings.SubchannelReadLevel })]
|
||||
[InlineData(RedumpSystem.AppleMacintosh, MediaType.CDROM, false, 20, null, new string[] { FlagStrings.C2Opcode, FlagStrings.NoFixSubQSecuROM, FlagStrings.ScanFileProtect, FlagStrings.ScanSectorProtect, FlagStrings.SubchannelReadLevel })]
|
||||
[InlineData(RedumpSystem.IBMPCcompatible, MediaType.DVD, true, 500, null, new string[] { FlagStrings.CopyrightManagementInformation, FlagStrings.ScanFileProtect })]
|
||||
[InlineData(RedumpSystem.HDDVDVideo, MediaType.HDDVD, true, 500, null, new string[] { FlagStrings.CopyrightManagementInformation })]
|
||||
[InlineData(RedumpSystem.IBMPCcompatible, MediaType.DVD, false, 500, null, new string[] { FlagStrings.CopyrightManagementInformation, FlagStrings.ScanFileProtect })]
|
||||
[InlineData(RedumpSystem.HDDVDVideo, MediaType.HDDVD, false, 500, null, new string[] { FlagStrings.CopyrightManagementInformation })]
|
||||
/* reread c2 */
|
||||
[InlineData(KnownSystem.SegaDreamcast, MediaType.GDROM, false, 1000, null, new string[] { FlagStrings.C2Opcode })]
|
||||
[InlineData(KnownSystem.SegaDreamcast, MediaType.GDROM, false, -1, null, new string[] { FlagStrings.C2Opcode })]
|
||||
[InlineData(RedumpSystem.SegaDreamcast, MediaType.GDROM, false, 1000, null, new string[] { FlagStrings.C2Opcode })]
|
||||
[InlineData(RedumpSystem.SegaDreamcast, MediaType.GDROM, false, -1, null, new string[] { FlagStrings.C2Opcode })]
|
||||
|
||||
public void ParametersFromOptionsTest(KnownSystem? knownSystem, MediaType? mediaType, bool paranoid, int rereadC2, int? subchannelLevel, string[] expected)
|
||||
public void ParametersFromOptionsTest(RedumpSystem? knownSystem, MediaType? mediaType, bool paranoid, int rereadC2, int? subchannelLevel, string[] expected)
|
||||
{
|
||||
var options = new Options { DICParanoidMode = paranoid, DICRereadCount = rereadC2 };
|
||||
var actual = new Parameters(knownSystem, mediaType, 'D', "disc.bin", 16, options);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Linq;
|
||||
using MPF.Data;
|
||||
using MPF.Utilities;
|
||||
using RedumpLib.Data;
|
||||
using Xunit;
|
||||
|
||||
namespace MPF.Test.Utilities
|
||||
@@ -9,26 +10,18 @@ namespace MPF.Test.Utilities
|
||||
public class ValidatorsTest
|
||||
{
|
||||
[Theory]
|
||||
[InlineData(KnownSystem.BandaiApplePippin, MediaType.CDROM)]
|
||||
[InlineData(KnownSystem.MicrosoftXBOX, MediaType.DVD)]
|
||||
[InlineData(KnownSystem.NintendoGameCube, MediaType.NintendoGameCubeGameDisc)]
|
||||
[InlineData(KnownSystem.NintendoWii, MediaType.NintendoWiiOpticalDisc)]
|
||||
[InlineData(KnownSystem.NintendoWiiU, MediaType.NintendoWiiUOpticalDisc)]
|
||||
[InlineData(KnownSystem.SonyPlayStationPortable, MediaType.UMD)]
|
||||
public void GetValidMediaTypesTest(KnownSystem? knownSystem, MediaType? expected)
|
||||
[InlineData(RedumpSystem.BandaiPippin, MediaType.CDROM)]
|
||||
[InlineData(RedumpSystem.MicrosoftXbox, MediaType.DVD)]
|
||||
[InlineData(RedumpSystem.NintendoGameCube, MediaType.NintendoGameCubeGameDisc)]
|
||||
[InlineData(RedumpSystem.NintendoWii, MediaType.NintendoWiiOpticalDisc)]
|
||||
[InlineData(RedumpSystem.NintendoWiiU, MediaType.NintendoWiiUOpticalDisc)]
|
||||
[InlineData(RedumpSystem.SonyPlayStationPortable, MediaType.UMD)]
|
||||
public void GetValidMediaTypesTest(RedumpSystem? knownSystem, MediaType? expected)
|
||||
{
|
||||
var actual = Validators.GetValidMediaTypes(knownSystem);
|
||||
Assert.Contains(expected, actual);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CreateListOfSystemsTest()
|
||||
{
|
||||
int expected = Enum.GetValues(typeof(KnownSystem)).Length;
|
||||
var actual = KnownSystemComboBoxItem.GenerateElements().ToList();
|
||||
Assert.Equal(expected, actual.Count);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CreateListOfDrivesTest()
|
||||
{
|
||||
|
||||
@@ -4,20 +4,21 @@ using System.Linq;
|
||||
using MPF.Converters;
|
||||
using MPF.Data;
|
||||
using MPF.Utilities;
|
||||
using RedumpLib.Data;
|
||||
|
||||
namespace MPF
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a single item in the System combo box
|
||||
/// </summary>
|
||||
public class KnownSystemComboBoxItem : IElement
|
||||
public class RedumpSystemComboBoxItem : IElement
|
||||
{
|
||||
private readonly object Data;
|
||||
|
||||
public KnownSystemComboBoxItem(KnownSystem? system) => Data = system;
|
||||
public KnownSystemComboBoxItem(KnownSystemCategory? category) => Data = category;
|
||||
public RedumpSystemComboBoxItem(RedumpSystem? system) => Data = system;
|
||||
public RedumpSystemComboBoxItem(SystemCategory? category) => Data = category;
|
||||
|
||||
public static implicit operator KnownSystem?(KnownSystemComboBoxItem item) => item.Data as KnownSystem?;
|
||||
public static implicit operator RedumpSystem?(RedumpSystemComboBoxItem item) => item.Data as RedumpSystem?;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public string Name
|
||||
@@ -25,9 +26,9 @@ namespace MPF
|
||||
get
|
||||
{
|
||||
if (IsHeader)
|
||||
return "---------- " + EnumConverter.GetLongName(Data as KnownSystemCategory?) + " ----------";
|
||||
return "---------- " + (Data as SystemCategory?).LongName() + " ----------";
|
||||
else
|
||||
return EnumConverter.GetLongName(Data as KnownSystem?);
|
||||
return (Data as RedumpSystem?).LongName() ?? "No system selected";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,31 +37,31 @@ namespace MPF
|
||||
/// <summary>
|
||||
/// Internal enum value
|
||||
/// </summary>
|
||||
public KnownSystem? Value => Data as KnownSystem?;
|
||||
public RedumpSystem? Value => Data as RedumpSystem?;
|
||||
|
||||
/// <summary>
|
||||
/// Determines if the item is a header value
|
||||
/// </summary>
|
||||
public bool IsHeader => Data is KnownSystemCategory?;
|
||||
public bool IsHeader => Data is SystemCategory?;
|
||||
|
||||
/// <summary>
|
||||
/// Determines if the item is a standard system value
|
||||
/// </summary>
|
||||
public bool IsSystem => Data is KnownSystem?;
|
||||
public bool IsSystem => Data is RedumpSystem?;
|
||||
|
||||
/// <summary>
|
||||
/// Generate all elements for the known system combo box
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static IEnumerable<KnownSystemComboBoxItem> GenerateElements()
|
||||
public static IEnumerable<RedumpSystemComboBoxItem> GenerateElements()
|
||||
{
|
||||
var knownSystems = Enum.GetValues(typeof(KnownSystem))
|
||||
.OfType<KnownSystem?>()
|
||||
.Where(s => !s.IsMarker() && s != KnownSystem.NONE)
|
||||
var knownSystems = Enum.GetValues(typeof(RedumpSystem))
|
||||
.OfType<RedumpSystem?>()
|
||||
.Where(s => !s.IsMarker() && s.GetCategory() != SystemCategory.NONE)
|
||||
.ToList();
|
||||
|
||||
Dictionary<KnownSystemCategory, List<KnownSystem?>> mapping = knownSystems
|
||||
.GroupBy(s => s.Category())
|
||||
Dictionary<SystemCategory, List<RedumpSystem?>> mapping = knownSystems
|
||||
.GroupBy(s => s.GetCategory())
|
||||
.ToDictionary(
|
||||
k => k.Key,
|
||||
v => v
|
||||
@@ -68,15 +69,15 @@ namespace MPF
|
||||
.ToList()
|
||||
);
|
||||
|
||||
var systemsValues = new List<KnownSystemComboBoxItem>
|
||||
var systemsValues = new List<RedumpSystemComboBoxItem>
|
||||
{
|
||||
new KnownSystemComboBoxItem(KnownSystem.NONE),
|
||||
new RedumpSystemComboBoxItem((RedumpSystem?)null),
|
||||
};
|
||||
|
||||
foreach (var group in mapping)
|
||||
{
|
||||
systemsValues.Add(new KnownSystemComboBoxItem(group.Key));
|
||||
group.Value.ForEach(system => systemsValues.Add(new KnownSystemComboBoxItem(system)));
|
||||
systemsValues.Add(new RedumpSystemComboBoxItem(group.Key));
|
||||
group.Value.ForEach(system => systemsValues.Add(new RedumpSystemComboBoxItem(system)));
|
||||
}
|
||||
|
||||
return systemsValues;
|
||||
|
||||
@@ -74,16 +74,15 @@ namespace MPF.GUI.ViewModels
|
||||
{
|
||||
// Sony-printed discs have layers in the opposite order
|
||||
var system = SubmissionInfo?.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;
|
||||
|
||||
// Different media types mean different fields available
|
||||
switch (SubmissionInfo?.CommonDiscInfo?.Media)
|
||||
{
|
||||
case MediaType.CDROM:
|
||||
case MediaType.GDROM:
|
||||
case DiscType.CD:
|
||||
case DiscType.GDROM:
|
||||
Parent.L0Info.Header = "Data Side";
|
||||
Parent.L0MasteringRing.Label = "Mastering Ring";
|
||||
Parent.L0MasteringSID.Label = "Mastering SID";
|
||||
@@ -99,12 +98,15 @@ namespace MPF.GUI.ViewModels
|
||||
Parent.L1AdditionalMould.Label = "Additional Mould";
|
||||
break;
|
||||
|
||||
case MediaType.DVD:
|
||||
case MediaType.HDDVD:
|
||||
case MediaType.BluRay:
|
||||
case MediaType.NintendoGameCubeGameDisc:
|
||||
case MediaType.NintendoWiiOpticalDisc:
|
||||
case MediaType.NintendoWiiUOpticalDisc:
|
||||
case DiscType.DVD5:
|
||||
case DiscType.DVD9:
|
||||
case DiscType.HDDVDSL:
|
||||
case DiscType.BD25:
|
||||
case DiscType.BD50:
|
||||
case DiscType.NintendoGameCubeGameDisc:
|
||||
case DiscType.NintendoWiiOpticalDiscSL:
|
||||
case DiscType.NintendoWiiOpticalDiscDL:
|
||||
case DiscType.NintendoWiiUOpticalDiscSL:
|
||||
// Quad-layer discs
|
||||
if (SubmissionInfo?.SizeAndChecksums?.Layerbreak3 != default(long))
|
||||
{
|
||||
@@ -211,7 +213,7 @@ namespace MPF.GUI.ViewModels
|
||||
// Different systems mean different fields available
|
||||
switch (system)
|
||||
{
|
||||
case KnownSystem.SonyPlayStation2:
|
||||
case RedumpSystem.SonyPlayStation2:
|
||||
Parent.LanguageSelectionGrid.Visibility = Visibility.Visible;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ using MPF.Converters;
|
||||
using MPF.Data;
|
||||
using MPF.Utilities;
|
||||
using MPF.Windows;
|
||||
using RedumpLib.Data;
|
||||
using WPFCustomMessageBox;
|
||||
|
||||
namespace MPF.GUI.ViewModels
|
||||
@@ -46,7 +47,7 @@ namespace MPF.GUI.ViewModels
|
||||
/// <summary>
|
||||
/// Current list of supported system profiles
|
||||
/// </summary>
|
||||
public List<KnownSystemComboBoxItem> Systems { get; set; } = KnownSystemComboBoxItem.GenerateElements().ToList();
|
||||
public List<RedumpSystemComboBoxItem> Systems { get; set; } = RedumpSystemComboBoxItem.GenerateElements().ToList();
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -146,7 +147,7 @@ namespace MPF.GUI.ViewModels
|
||||
/// </summary>
|
||||
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
|
||||
/// </summary>
|
||||
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<MediaType>,
|
||||
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<MediaType>;
|
||||
|
||||
// Get the extension for the file for the next two statements
|
||||
@@ -997,7 +998,7 @@ namespace MPF.GUI.ViewModels
|
||||
/// </summary>
|
||||
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);
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace MPF.GUI.ViewModels
|
||||
/// <summary>
|
||||
/// Current list of supported system profiles
|
||||
/// </summary>
|
||||
public List<KnownSystemComboBoxItem> Systems { get; private set; } = KnownSystemComboBoxItem.GenerateElements().ToList();
|
||||
public List<RedumpSystemComboBoxItem> Systems { get; private set; } = RedumpSystemComboBoxItem.GenerateElements().ToList();
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -87,8 +87,8 @@ namespace MPF.GUI.ViewModels
|
||||
{
|
||||
var selectedInternalProgram = Parent.InternalProgramComboBox.SelectedItem as Element<InternalProgram>;
|
||||
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;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
using MPF.Data;
|
||||
using MPF.GUI.ViewModels;
|
||||
using MPF.GUI.ViewModels;
|
||||
using RedumpLib.Data;
|
||||
|
||||
namespace MPF.Windows
|
||||
{
|
||||
|
||||
@@ -7,8 +7,19 @@ namespace RedumpLib.Attributes
|
||||
/// </summary>
|
||||
public class HumanReadableAttribute : Attribute
|
||||
{
|
||||
/// <summary>
|
||||
/// Item is marked as obsolete or unusable
|
||||
/// </summary>
|
||||
public bool Available { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// Human-readable name of the item
|
||||
/// </summary>
|
||||
public string LongName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Internally used name of the item
|
||||
/// </summary>
|
||||
public string ShortName { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
using RedumpLib.Data;
|
||||
|
||||
namespace RedumpLib.Attributes
|
||||
{
|
||||
/// <summary>
|
||||
@@ -5,6 +7,11 @@ namespace RedumpLib.Attributes
|
||||
/// </summary>
|
||||
public class SystemAttribute : HumanReadableAttribute
|
||||
{
|
||||
/// <summary>
|
||||
/// Category for the system
|
||||
/// </summary>
|
||||
public SystemCategory Category { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// System is restricted to dumpers
|
||||
/// </summary>
|
||||
|
||||
32
RedumpLib/Converters/DiscTypeConverter.cs
Normal file
32
RedumpLib/Converters/DiscTypeConverter.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using RedumpLib.Data;
|
||||
|
||||
namespace RedumpLib.Converters
|
||||
{
|
||||
/// <summary>
|
||||
/// Serialize DiscType enum values
|
||||
/// </summary>
|
||||
public class DiscTypeConverter : JsonConverter<DiscType?[]>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
32
RedumpLib/Converters/YesNoConverter.cs
Normal file
32
RedumpLib/Converters/YesNoConverter.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using System;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using RedumpLib.Data;
|
||||
|
||||
namespace RedumpLib.Converters
|
||||
{
|
||||
/// <summary>
|
||||
/// Serialize YesNo enum values
|
||||
/// </summary>
|
||||
public class YesNoConverter : JsonConverter<YesNo[]>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -41,6 +41,56 @@ namespace RedumpLib.Data
|
||||
AddOns = 11,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// List of all disc types
|
||||
/// </summary>
|
||||
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,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Dump status
|
||||
/// </summary>
|
||||
@@ -224,9 +274,11 @@ namespace RedumpLib.Data
|
||||
/// <summary>
|
||||
/// List of all known systems
|
||||
/// </summary>
|
||||
/// 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
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -717,4 +1074,42 @@ namespace RedumpLib.Data
|
||||
[HumanReadable(LongName = "World", ShortName = "W")]
|
||||
World,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// List of system categories
|
||||
/// </summary>
|
||||
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,
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Generic yes/no values
|
||||
/// </summary>
|
||||
public enum YesNo
|
||||
{
|
||||
[HumanReadable(LongName = "Yes/No")]
|
||||
NULL = 0,
|
||||
|
||||
[HumanReadable(LongName = "No")]
|
||||
No = 1,
|
||||
|
||||
[HumanReadable(LongName = "Yes")]
|
||||
Yes = 2,
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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)]
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user