diff --git a/MPF.Library/Converters/EnumConverter.cs b/MPF.Library/Converters/EnumConverter.cs
index 0e4b0207..65cbbbf1 100644
--- a/MPF.Library/Converters/EnumConverter.cs
+++ b/MPF.Library/Converters/EnumConverter.cs
@@ -16,40 +16,6 @@ namespace MPF.Converters
{
#region Cross-enumeration conversions
- ///
- /// Convert master list of all media types to currently known Redump disc types
- ///
- /// MediaType value to check
- /// DiscType if possible, null on error
- public static DiscType? ToDiscType(this MediaType? mediaType)
- {
- switch (mediaType)
- {
- case MediaType.BluRay:
- return DiscType.BD50;
- case MediaType.CDROM:
- return DiscType.CD;
- case MediaType.DVD:
- return DiscType.DVD9;
- case MediaType.GDROM:
- return DiscType.GDROM;
- case MediaType.HDDVD:
- return DiscType.HDDVDSL;
- // case MediaType.MILCD: // TODO: Support this?
- // return DiscType.MILCD;
- case MediaType.NintendoGameCubeGameDisc:
- return DiscType.NintendoGameCubeGameDisc;
- case MediaType.NintendoWiiOpticalDisc:
- return DiscType.NintendoWiiOpticalDiscDL;
- case MediaType.NintendoWiiUOpticalDisc:
- return DiscType.NintendoWiiUOpticalDiscSL;
- case MediaType.UMD:
- return DiscType.UMDDL;
- default:
- return null;
- }
- }
-
///
/// Convert drive type to internal version, if possible
///
@@ -111,44 +77,6 @@ namespace MPF.Converters
}
#endif
- ///
- /// Convert currently known Redump disc types to master list of all media types
- ///
- /// DiscType value to check
- /// MediaType if possible, null on error
- public static MediaType? ToMediaType(this DiscType? discType)
- {
- switch (discType)
- {
- case DiscType.BD25:
- case DiscType.BD50:
- return MediaType.BluRay;
- case DiscType.CD:
- return MediaType.CDROM;
- case DiscType.DVD5:
- case DiscType.DVD9:
- return MediaType.DVD;
- case DiscType.GDROM:
- return MediaType.GDROM;
- case DiscType.HDDVDSL:
- return MediaType.HDDVD;
- // case DiscType.MILCD: // TODO: Support this?
- // return MediaType.MILCD;
- case DiscType.NintendoGameCubeGameDisc:
- return MediaType.NintendoGameCubeGameDisc;
- case DiscType.NintendoWiiOpticalDiscSL:
- case DiscType.NintendoWiiOpticalDiscDL:
- return MediaType.NintendoWiiOpticalDisc;
- case DiscType.NintendoWiiUOpticalDiscSL:
- return MediaType.NintendoWiiUOpticalDisc;
- case DiscType.UMDSL:
- case DiscType.UMDDL:
- return MediaType.UMD;
- default:
- return null;
- }
- }
-
///
/// Convert physical media type to a MediaType
///
@@ -214,7 +142,12 @@ namespace MPF.Converters
if (!LongNameMethods.TryGetValue(sourceType, out MethodInfo method))
{
- method = typeof(EnumConverter).GetMethod("LongName", new[] { typeof(Nullable<>).MakeGenericType(sourceType) });
+
+ method = typeof(RedumpLib.Data.Extensions).GetMethod("LongName", new[] { typeof(Nullable<>).MakeGenericType(sourceType) });
+ if (method == null)
+ method = typeof(EnumConverter).GetMethod("LongName", new[] { typeof(Nullable<>).MakeGenericType(sourceType) });
+
+
LongNameMethods.TryAdd(sourceType, method);
}
@@ -269,96 +202,6 @@ namespace MPF.Converters
}
}
- ///
- /// Get the string representation of the MediaType enum values
- ///
- /// MediaType value to convert
- /// String representing the value, if possible
- public static string LongName(this MediaType? type)
- {
- switch (type)
- {
- #region Punched Media
-
- case MediaType.ApertureCard:
- return "Aperture card";
- case MediaType.JacquardLoomCard:
- return "Jacquard Loom card";
- case MediaType.MagneticStripeCard:
- return "Magnetic stripe card";
- case MediaType.OpticalPhonecard:
- return "Optical phonecard";
- case MediaType.PunchedCard:
- return "Punched card";
- case MediaType.PunchedTape:
- return "Punched tape";
-
- #endregion
-
- #region Tape
-
- case MediaType.OpenReel:
- return "Open Reel Tape";
- case MediaType.DataCartridge:
- return "Data Tape Cartridge";
- case MediaType.Cassette:
- return "Cassette Tape";
-
- #endregion
-
- #region Disc / Disc
-
- case MediaType.BluRay:
- return "BD-ROM";
- case MediaType.CDROM:
- return "CD-ROM";
- case MediaType.DVD:
- return "DVD-ROM";
- case MediaType.FloppyDisk:
- return "Floppy Disk";
- case MediaType.Floptical:
- return "Floptical";
- case MediaType.GDROM:
- return "GD-ROM";
- case MediaType.HDDVD:
- return "HD-DVD-ROM";
- case MediaType.HardDisk:
- return "Hard Disk";
- case MediaType.IomegaBernoulliDisk:
- return "Iomega Bernoulli Disk";
- case MediaType.IomegaJaz:
- return "Iomega Jaz";
- case MediaType.IomegaZip:
- return "Iomega Zip";
- case MediaType.LaserDisc:
- return "LD-ROM / LV-ROM";
- case MediaType.Nintendo64DD:
- return "64DD Disk";
- case MediaType.NintendoFamicomDiskSystem:
- return "Famicom Disk System Disk";
- case MediaType.NintendoGameCubeGameDisc:
- return "GameCube Game Disc";
- case MediaType.NintendoWiiOpticalDisc:
- return "Wii Optical Disc";
- case MediaType.NintendoWiiUOpticalDisc:
- return "Wii U Optical Disc";
- case MediaType.UMD:
- return "UMD";
-
- #endregion
-
- // Unsorted Formats
- case MediaType.Cartridge:
- return "Cartridge";
- case MediaType.CED:
- return "CED";
-
- case MediaType.NONE:
- default:
- return "Unknown";
- }
- }
-
#endregion
#region Convert to Short Name
@@ -398,96 +241,6 @@ namespace MPF.Converters
}
}
- ///
- /// Get the short string representation of the MediaType enum values
- ///
- /// MediaType value to convert
- /// Short string representing the value, if possible
- public static string ShortName(this MediaType? type)
- {
- switch (type)
- {
- #region Punched Media
-
- case MediaType.ApertureCard:
- return "aperture";
- case MediaType.JacquardLoomCard:
- return "jacquard loom card";
- case MediaType.MagneticStripeCard:
- return "magnetic stripe";
- case MediaType.OpticalPhonecard:
- return "optical phonecard";
- case MediaType.PunchedCard:
- return "punchcard";
- case MediaType.PunchedTape:
- return "punchtape";
-
- #endregion
-
- #region Tape
-
- case MediaType.OpenReel:
- return "open reel";
- case MediaType.DataCartridge:
- return "data cartridge";
- case MediaType.Cassette:
- return "cassette";
-
- #endregion
-
- #region Disc / Disc
-
- case MediaType.BluRay:
- return "bdrom";
- case MediaType.CDROM:
- return "cdrom";
- case MediaType.DVD:
- return "dvd";
- case MediaType.FloppyDisk:
- return "fd";
- case MediaType.Floptical:
- return "floptical";
- case MediaType.GDROM:
- return "gdrom";
- case MediaType.HDDVD:
- return "hddvd";
- case MediaType.HardDisk:
- return "hdd";
- case MediaType.IomegaBernoulliDisk:
- return "bernoulli";
- case MediaType.IomegaJaz:
- return "jaz";
- case MediaType.IomegaZip:
- return "zip";
- case MediaType.LaserDisc:
- return "ldrom";
- case MediaType.Nintendo64DD:
- return "64dd";
- case MediaType.NintendoFamicomDiskSystem:
- return "fds";
- case MediaType.NintendoGameCubeGameDisc:
- return "gc";
- case MediaType.NintendoWiiOpticalDisc:
- return "wii";
- case MediaType.NintendoWiiUOpticalDisc:
- return "wiiu";
- case MediaType.UMD:
- return "umd";
-
- #endregion
-
- // Unsorted Formats
- case MediaType.Cartridge:
- return "cart";
- case MediaType.CED:
- return "ced";
-
- case MediaType.NONE:
- default:
- return "unknown";
- }
- }
-
#endregion
#region Convert From String
diff --git a/MPF.Test/Converters/EnumConverterTest.cs b/MPF.Test/Converters/EnumConverterTest.cs
index 0ce07720..c92449ab 100644
--- a/MPF.Test/Converters/EnumConverterTest.cs
+++ b/MPF.Test/Converters/EnumConverterTest.cs
@@ -104,7 +104,7 @@ namespace MPF.Test.Converters
case SystemCategory.Other: marker = RedumpSystem.MarkerOtherEnd; break;
}
- Assert.NotEqual(null, marker);
+ Assert.NotNull(marker);
Assert.True(marker > system);
Array.ForEach(markers, mmarker =>
diff --git a/MPF.Test/Converters/MediaTypeExtensionsTest.cs b/MPF.Test/Converters/MediaTypeExtensionsTest.cs
index c9bcdfa8..29e29041 100644
--- a/MPF.Test/Converters/MediaTypeExtensionsTest.cs
+++ b/MPF.Test/Converters/MediaTypeExtensionsTest.cs
@@ -14,7 +14,7 @@ namespace MPF.Test.Converters
[InlineData(MediaType.NONE, "Unknown")]
public void MediaTypeToStringTest(MediaType? mediaType, string expected)
{
- string actual = EnumConverter.LongName(mediaType);
+ string actual = mediaType.LongName();
Assert.Equal(expected, actual);
}
diff --git a/MPF/ViewModels/MainViewModel.cs b/MPF/ViewModels/MainViewModel.cs
index 2a3e0a09..46ec9881 100644
--- a/MPF/ViewModels/MainViewModel.cs
+++ b/MPF/ViewModels/MainViewModel.cs
@@ -948,7 +948,7 @@ namespace MPF.GUI.ViewModels
if (index != -1)
App.Instance.MediaTypeComboBox.SelectedIndex = index;
else
- App.Instance.StatusLabel.Content = $"Disc of type '{EnumConverter.LongName(CurrentMediaType)}' found, but the current system does not support it!";
+ App.Instance.StatusLabel.Content = $"Disc of type '{CurrentMediaType.LongName()}' found, but the current system does not support it!";
// Ensure the UI gets updated
App.Instance.UpdateLayout();
diff --git a/RedumpLib/Data/Enumerations.cs b/RedumpLib/Data/Enumerations.cs
index 5067665b..02fc6278 100644
--- a/RedumpLib/Data/Enumerations.cs
+++ b/RedumpLib/Data/Enumerations.cs
@@ -276,57 +276,120 @@ namespace RedumpLib.Data
///
public enum MediaType
{
+ [HumanReadable(Available = false, LongName = "Unknown", ShortName = "unknown")]
NONE = 0,
#region Punched Media
+ [HumanReadable(Available = false, LongName = "Aperture card", ShortName = "aperture")]
ApertureCard,
+
+ [HumanReadable(Available = false, LongName = "Jacquard Loom card", ShortName = "jacquard loom card")]
JacquardLoomCard,
+
+ [HumanReadable(Available = false, LongName = "Magnetic stripe card", ShortName = "magnetic stripe")]
MagneticStripeCard,
+
+ [HumanReadable(Available = false, LongName = "Optical phonecard", ShortName = "optical phonecard")]
OpticalPhonecard,
+
+ [HumanReadable(Available = false, LongName = "Punched card", ShortName = "punchcard")]
PunchedCard,
+
+ [HumanReadable(Available = false, LongName = "Punched tape", ShortName = "punchtape")]
PunchedTape,
#endregion
#region Tape
+ [HumanReadable(Available = false, LongName = "Cassette Tape", ShortName = "cassette")]
Cassette,
+
+ [HumanReadable(Available = false, LongName = "Data Tape Cartridge", ShortName = "data cartridge")]
DataCartridge,
+
+ [HumanReadable(Available = false, LongName = "Open Reel Tape", ShortName = "open reel")]
OpenReel,
#endregion
#region Disc / Disc
+ [HumanReadable(LongName = "BD-ROM", ShortName = "bdrom")]
BluRay,
+
+ [HumanReadable(LongName = "CD-ROM", ShortName = "cdrom")]
CDROM,
+
+ [HumanReadable(LongName = "DVD-ROM", ShortName = "dvd")]
DVD,
+
+ [HumanReadable(LongName = "Floppy Disk", ShortName = "fd")]
FloppyDisk,
+
+ [HumanReadable(Available = false, LongName = "Floptical", ShortName = "floptical")]
Floptical,
+
+ [HumanReadable(LongName = "GD-ROM", ShortName = "gdrom")]
GDROM,
+
+ [HumanReadable(LongName = "HD-DVD-ROM", ShortName = "hddvd")]
HDDVD,
+
+ [HumanReadable(LongName = "Hard Disk", ShortName = "hdd")]
HardDisk,
+
+ [HumanReadable(Available = false, LongName = "Iomega Bernoulli Disk", ShortName = "bernoulli")]
IomegaBernoulliDisk,
+
+ [HumanReadable(Available = false, LongName = "Iomega Jaz", ShortName = "jaz")]
IomegaJaz,
+
+ [HumanReadable(Available = false, LongName = "Iomega Zip", ShortName = "zip")]
IomegaZip,
+
+ [HumanReadable(LongName = "LD-ROM / LV-ROM", ShortName = "ldrom")]
LaserDisc, // LD-ROM and LV-ROM variants
+
+ [HumanReadable(Available = false, LongName = "64DD Disk", ShortName = "64dd")]
Nintendo64DD,
+
+ [HumanReadable(Available = false, LongName = "Famicom Disk System Disk", ShortName = "fds")]
NintendoFamicomDiskSystem,
+
+ [HumanReadable(LongName = "GameCube Game Disc", ShortName = "gc")]
NintendoGameCubeGameDisc,
+
+ [HumanReadable(LongName = "Wii Optical Disc", ShortName = "wii")]
NintendoWiiOpticalDisc,
+
+ [HumanReadable(LongName = "Wii U Optical Disc", ShortName = "wiiu")]
NintendoWiiUOpticalDisc,
+
+ [HumanReadable(LongName = "UMD", ShortName = "umd")]
UMD,
#endregion
#region Unsorted Formats
+ [HumanReadable(Available = false, LongName = "Cartridge", ShortName = "cart")]
Cartridge,
+
+ [HumanReadable(Available = false, LongName = "CED", ShortName = "ced")]
CED,
+
+ [HumanReadable(Available = false, LongName = "Compact Flash", ShortName = "cf")]
CompactFlash,
+
+ [HumanReadable(Available = false, LongName = "MMC", ShortName = "mmc")]
MMC,
+
+ [HumanReadable(Available = false, LongName = "SD Card", ShortName = "sd")]
SDCard,
+
+ [HumanReadable(Available = false, LongName = "Flash Drive", ShortName = "fkd")]
FlashDrive,
#endregion
diff --git a/RedumpLib/Data/Extensions.cs b/RedumpLib/Data/Extensions.cs
index 16244e0a..a981c510 100644
--- a/RedumpLib/Data/Extensions.cs
+++ b/RedumpLib/Data/Extensions.cs
@@ -8,6 +8,782 @@ namespace RedumpLib.Data
///
public static class Extensions
{
+ #region Cross-Enumeration
+
+ ///
+ /// Get a list of valid MediaTypes for a given RedumpSystem
+ ///
+ /// RedumpSystem value to check
+ /// MediaTypes, if possible
+ public static List MediaTypes(this RedumpSystem? system)
+ {
+ var types = new List();
+
+ switch (system)
+ {
+ #region Consoles
+
+ // https://en.wikipedia.org/wiki/Atari_Jaguar_CD
+ case RedumpSystem.AtariJaguarCDInteractiveMultimediaSystem:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Playdia
+ case RedumpSystem.BandaiPlaydiaQuickInteractiveSystem:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Apple_Bandai_Pippin
+ case RedumpSystem.BandaiPippin:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Amiga_CD32
+ case RedumpSystem.CommodoreAmigaCD32:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Commodore_CDTV
+ case RedumpSystem.CommodoreAmigaCDTV:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/EVO_Smart_Console
+ case RedumpSystem.EnvizionsEVOSmartConsole:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // https://en.wikipedia.org/wiki/FM_Towns_Marty
+ case RedumpSystem.FujitsuFMTownsMarty:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.FloppyDisk);
+ break;
+
+ // https://en.wikipedia.org/wiki/VideoNow
+ case RedumpSystem.HasbroVideoNow:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/VideoNow
+ case RedumpSystem.HasbroVideoNowColor:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/VideoNow
+ case RedumpSystem.HasbroVideoNowJr:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/VideoNow
+ case RedumpSystem.HasbroVideoNowXP:
+ types.Add(MediaType.CDROM);
+ break;
+
+ case RedumpSystem.MattelFisherPriceiXL:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/HyperScan
+ case RedumpSystem.MattelHyperScan:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Xbox_(console)
+ case RedumpSystem.MicrosoftXbox:
+ types.Add(MediaType.DVD);
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Xbox_360
+ case RedumpSystem.MicrosoftXbox360:
+ types.Add(MediaType.DVD);
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Xbox_One
+ case RedumpSystem.MicrosoftXboxOne:
+ types.Add(MediaType.BluRay);
+ break;
+
+ // https://en.wikipedia.org/wiki/Xbox_Series_X_and_Series_S
+ case RedumpSystem.MicrosoftXboxSeriesXS:
+ types.Add(MediaType.BluRay);
+ break;
+
+ // https://en.wikipedia.org/wiki/TurboGrafx-16
+ case RedumpSystem.NECPCEngineCDTurboGrafxCD:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/PC-FX
+ case RedumpSystem.NECPCFXPCFXGA:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/GameCube
+ 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 RedumpSystem.NintendoSonySuperNESCDROMSystem:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Wii
+ 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 RedumpSystem.NintendoWiiU:
+ types.Add(MediaType.NintendoWiiUOpticalDisc);
+ break;
+
+ // https://en.wikipedia.org/wiki/3DO_Interactive_Multiplayer
+ case RedumpSystem.Panasonic3DOInteractiveMultiplayer:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Philips_CD-i
+ case RedumpSystem.PhilipsCDi:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/LaserActive
+ case RedumpSystem.PioneerLaserActive:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.LaserDisc);
+ break;
+
+ // https://en.wikipedia.org/wiki/Sega_CD
+ case RedumpSystem.SegaMegaCDSegaCD:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Dreamcast
+ 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 RedumpSystem.SegaSaturn:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Neo_Geo_CD
+ case RedumpSystem.SNKNeoGeoCD:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/PlayStation_(console)
+ case RedumpSystem.SonyPlayStation:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/PlayStation_2
+ case RedumpSystem.SonyPlayStation2:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // https://en.wikipedia.org/wiki/PlayStation_3
+ case RedumpSystem.SonyPlayStation3:
+ types.Add(MediaType.BluRay);
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // https://en.wikipedia.org/wiki/PlayStation_4
+ case RedumpSystem.SonyPlayStation4:
+ types.Add(MediaType.BluRay);
+ break;
+
+ // https://en.wikipedia.org/wiki/PlayStation_5
+ case RedumpSystem.SonyPlayStation5:
+ types.Add(MediaType.BluRay);
+ break;
+
+ // https://en.wikipedia.org/wiki/PlayStation_Portable
+ 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 RedumpSystem.MemorexVisualInformationSystem:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Nuon_(DVD_technology)
+ case RedumpSystem.VMLabsNUON:
+ types.Add(MediaType.DVD);
+ break;
+
+ // https://en.wikipedia.org/wiki/V.Flash
+ case RedumpSystem.VTechVFlashVSmilePro:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Game_Wave_Family_Entertainment_System
+ case RedumpSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem:
+ types.Add(MediaType.DVD);
+ break;
+
+ #endregion
+
+ #region Computers
+
+ // https://en.wikipedia.org/wiki/Acorn_Archimedes
+ case RedumpSystem.AcornArchimedes:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.FloppyDisk);
+ break;
+
+ // https://en.wikipedia.org/wiki/Macintosh
+ case RedumpSystem.AppleMacintosh:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ types.Add(MediaType.FloppyDisk);
+ types.Add(MediaType.HardDisk);
+ break;
+
+ // https://en.wikipedia.org/wiki/Amiga
+ case RedumpSystem.CommodoreAmigaCD:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.FloppyDisk);
+ break;
+
+ // https://en.wikipedia.org/wiki/FM_Towns
+ case RedumpSystem.FujitsuFMTownsseries:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/IBM_PC_compatible
+ case RedumpSystem.IBMPCcompatible:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ types.Add(MediaType.BluRay);
+ types.Add(MediaType.FloppyDisk);
+ types.Add(MediaType.HardDisk);
+ types.Add(MediaType.DataCartridge);
+ break;
+
+ // https://en.wikipedia.org/wiki/PC-8800_series
+ case RedumpSystem.NECPC88series:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.FloppyDisk);
+ break;
+
+ // https://en.wikipedia.org/wiki/PC-9800_series
+ case RedumpSystem.NECPC98series:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ types.Add(MediaType.FloppyDisk);
+ break;
+
+ // https://en.wikipedia.org/wiki/X68000
+ case RedumpSystem.SharpX68000:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.FloppyDisk);
+ break;
+
+ #endregion
+
+ #region Arcade
+
+ // https://www.bigbookofamigahardware.com/bboah/product.aspx?id=36
+ case RedumpSystem.AmigaCUBOCD32:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Orbatak
+ case RedumpSystem.AmericanLaserGames3DO:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // http://system16.com/hardware.php?id=779
+ 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 RedumpSystem.Atronic:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // https://www.arcade-museum.com/members/member_detail.php?member_id=406530
+ case RedumpSystem.AUSCOMSystem1:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // http://newlifegames.net/nlg/index.php?topic=285.0
+ case RedumpSystem.BallyGameMagic:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/CP_System_III
+ case RedumpSystem.CapcomCPSystemIII:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // UNKNOWN
+ case RedumpSystem.funworldPhotoPlay:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // UNKNOWN
+ case RedumpSystem.GlobalVRVarious:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://service.globalvr.com/troubleshooting/vortek.html
+ case RedumpSystem.GlobalVRVortek:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://service.globalvr.com/downloads/v3/040-1001-01c-V3-System-Manual.pdf
+ case RedumpSystem.GlobalVRVortekV3:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://www.icegame.com/games
+ case RedumpSystem.ICEPCHardware:
+ types.Add(MediaType.DVD);
+ break;
+
+ // https://github.com/mamedev/mame/blob/master/src/mame/drivers/iteagle.cpp
+ case RedumpSystem.IncredibleTechnologiesEagle:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // UNKNOWN
+ case RedumpSystem.IncredibleTechnologiesVarious:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // https://en.wikipedia.org/wiki/E-Amusement
+ case RedumpSystem.KonamieAmusement:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // http://system16.com/hardware.php?id=828
+ case RedumpSystem.KonamiFireBeat:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // http://system16.com/hardware.php?id=577
+ case RedumpSystem.KonamiSystemGV:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // http://system16.com/hardware.php?id=575
+ case RedumpSystem.KonamiM2:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // http://system16.com/hardware.php?id=586
+ // http://system16.com/hardware.php?id=977
+ 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 RedumpSystem.KonamiPython2:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // http://system16.com/hardware.php?id=582
+ // http://system16.com/hardware.php?id=822
+ // http://system16.com/hardware.php?id=823
+ case RedumpSystem.KonamiSystem573:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // http://system16.com/hardware.php?id=827
+ case RedumpSystem.KonamiTwinkle:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // UNKNOWN
+ case RedumpSystem.KonamiVarious:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // http://www.meritgames.com/Support_Center/manuals/PM0591-01.pdf
+ case RedumpSystem.MeritIndustriesBoardwalk:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // 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 RedumpSystem.MeritIndustriesMegaTouchForce:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // http://www.meritgames.com/Service%20Center/Ion%20Troubleshooting.pdf
+ case RedumpSystem.MeritIndustriesMegaTouchION:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // 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 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 RedumpSystem.MeritIndustriesMegaTouchXL:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // http://system16.com/hardware.php?id=546
+ // http://system16.com/hardware.php?id=872
+ case RedumpSystem.NamcoCapcomSystem256:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // http://system16.com/hardware.php?id=543
+ case RedumpSystem.NamcoSystem246:
+ types.Add(MediaType.CDROM);
+ types.Add(MediaType.DVD);
+ break;
+
+ // http://system16.com/hardware.php?id=545
+ 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 RedumpSystem.NamcoSystem12:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // http://system16.com/hardware.php?id=900
+ 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 RedumpSystem.NewJatreCDi:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // http://blog.system11.org/?p=2499
+ case RedumpSystem.NichibutsuHighRateSystem:
+ types.Add(MediaType.DVD);
+ break;
+
+ // http://blog.system11.org/?p=2514
+ 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 RedumpSystem.NichibutsuXRateSystem:
+ types.Add(MediaType.DVD);
+ break;
+
+ // https://en.wikipedia.org/wiki/Panasonic_M2
+ 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 RedumpSystem.PhotoPlayVarious:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // UNKNOWN
+ case RedumpSystem.RawThrillsVarious:
+ types.Add(MediaType.DVD);
+ break;
+
+ // http://system16.com/hardware.php?id=729
+ 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 RedumpSystem.SegaEuropaR:
+ types.Add(MediaType.DVD);
+ break;
+
+ // http://system16.com/hardware.php?id=985
+ // http://system16.com/hardware.php?id=731
+ // http://system16.com/hardware.php?id=984
+ // http://system16.com/hardware.php?id=986
+ case RedumpSystem.SegaLindbergh:
+ types.Add(MediaType.DVD);
+ break;
+
+ // http://system16.com/hardware.php?id=721
+ // http://system16.com/hardware.php?id=723
+ // http://system16.com/hardware.php?id=906
+ // http://system16.com/hardware.php?id=722
+ case RedumpSystem.SegaNaomi:
+ types.Add(MediaType.CDROM); // Low density partition
+ types.Add(MediaType.GDROM); // High density partition
+ break;
+
+ // http://system16.com/hardware.php?id=725
+ // http://system16.com/hardware.php?id=726
+ // http://system16.com/hardware.php?id=727
+ 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 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 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 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 RedumpSystem.SegaRingWide:
+ types.Add(MediaType.DVD);
+ break;
+
+ // http://system16.com/hardware.php?id=711
+ case RedumpSystem.SegaTitanVideo:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // http://system16.com/hardware.php?id=709
+ // http://system16.com/hardware.php?id=710
+ case RedumpSystem.SegaSystem32:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://github.com/mamedev/mame/blob/master/src/mame/drivers/seibucats.cpp
+ case RedumpSystem.SeibuCATSSystem:
+ types.Add(MediaType.DVD);
+ break;
+
+ // https://www.tab.at/en/support/support/downloads
+ 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 RedumpSystem.TsunamiTsuMoMultiGameMotionSystem:
+ types.Add(MediaType.CDROM);
+ break;
+
+ #endregion
+
+ #region Others
+
+ // https://en.wikipedia.org/wiki/Audio_CD
+ case RedumpSystem.AudioCD:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Blu-ray#Player_profiles
+ case RedumpSystem.BDVideo:
+ types.Add(MediaType.BluRay);
+ break;
+
+ // https://en.wikipedia.org/wiki/DVD-Audio
+ case RedumpSystem.DVDAudio:
+ types.Add(MediaType.DVD);
+ break;
+
+ // https://en.wikipedia.org/wiki/DVD-Video
+ case RedumpSystem.DVDVideo:
+ types.Add(MediaType.DVD);
+ break;
+
+ // https://en.wikipedia.org/wiki/Blue_Book_(CD_standard)
+ case RedumpSystem.EnhancedCD:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/HD_DVD
+ case RedumpSystem.HDDVDVideo:
+ types.Add(MediaType.HDDVD);
+ break;
+
+ // UNKNOWN
+ case RedumpSystem.NavisoftNaviken21:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // UNKNOWN
+ case RedumpSystem.PalmOS:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Photo_CD
+ case RedumpSystem.PhotoCD:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // UNKNOWN
+ case RedumpSystem.PlayStationGameSharkUpdates:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // UNKNOWN
+ case RedumpSystem.PocketPC:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Doors_and_Windows_(EP)
+ case RedumpSystem.RainbowDisc:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://segaretro.org/Prologue_21
+ case RedumpSystem.SegaPrologue21MultimediaKaraokeSystem:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Super_Audio_CD
+ case RedumpSystem.SuperAudioCD:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://www.cnet.com/products/tao-music-iktv-karaoke-station-karaoke-system-series/
+ case RedumpSystem.TaoiKTV:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // http://ultimateconsoledatabase.com/golden/kiss_site.htm
+ case RedumpSystem.TomyKissSite:
+ types.Add(MediaType.CDROM);
+ break;
+
+ // https://en.wikipedia.org/wiki/Video_CD
+ case RedumpSystem.VideoCD:
+ types.Add(MediaType.CDROM);
+ break;
+
+ #endregion
+
+ default:
+ types.Add(MediaType.NONE);
+ break;
+ }
+
+ return types;
+ }
+
+ ///
+ /// Convert master list of all media types to currently known Redump disc types
+ ///
+ /// MediaType value to check
+ /// DiscType if possible, null on error
+ public static DiscType? ToDiscType(this MediaType? mediaType)
+ {
+ switch (mediaType)
+ {
+ case MediaType.BluRay:
+ return DiscType.BD50;
+ case MediaType.CDROM:
+ return DiscType.CD;
+ case MediaType.DVD:
+ return DiscType.DVD9;
+ case MediaType.GDROM:
+ return DiscType.GDROM;
+ case MediaType.HDDVD:
+ return DiscType.HDDVDSL;
+ // case MediaType.MILCD: // TODO: Support this?
+ // return DiscType.MILCD;
+ case MediaType.NintendoGameCubeGameDisc:
+ return DiscType.NintendoGameCubeGameDisc;
+ case MediaType.NintendoWiiOpticalDisc:
+ return DiscType.NintendoWiiOpticalDiscDL;
+ case MediaType.NintendoWiiUOpticalDisc:
+ return DiscType.NintendoWiiUOpticalDiscSL;
+ case MediaType.UMD:
+ return DiscType.UMDDL;
+ default:
+ return null;
+ }
+ }
+
+ ///
+ /// Convert currently known Redump disc types to master list of all media types
+ ///
+ /// DiscType value to check
+ /// MediaType if possible, null on error
+ public static MediaType? ToMediaType(this DiscType? discType)
+ {
+ switch (discType)
+ {
+ case DiscType.BD25:
+ case DiscType.BD50:
+ return MediaType.BluRay;
+ case DiscType.CD:
+ return MediaType.CDROM;
+ case DiscType.DVD5:
+ case DiscType.DVD9:
+ return MediaType.DVD;
+ case DiscType.GDROM:
+ return MediaType.GDROM;
+ case DiscType.HDDVDSL:
+ return MediaType.HDDVD;
+ // case DiscType.MILCD: // TODO: Support this?
+ // return MediaType.MILCD;
+ case DiscType.NintendoGameCubeGameDisc:
+ return MediaType.NintendoGameCubeGameDisc;
+ case DiscType.NintendoWiiOpticalDiscSL:
+ case DiscType.NintendoWiiOpticalDiscDL:
+ return MediaType.NintendoWiiOpticalDisc;
+ case DiscType.NintendoWiiUOpticalDiscSL:
+ return MediaType.NintendoWiiUOpticalDisc;
+ case DiscType.UMDSL:
+ case DiscType.UMDDL:
+ return MediaType.UMD;
+ default:
+ return null;
+ }
+ }
+
+ #endregion
+
#region Disc Category
///
@@ -261,6 +1037,24 @@ namespace RedumpLib.Data
#endregion
+ #region Media Type
+
+ ///
+ /// Get the Redump longnames for each known media type
+ ///
+ ///
+ ///
+ public static string LongName(this MediaType? mediaType) => AttributeHelper.GetAttribute(mediaType)?.LongName;
+
+ ///
+ /// Get the Redump shortnames for each known media type
+ ///
+ ///
+ ///
+ public static string ShortName(this MediaType? mediaType) => AttributeHelper.GetAttribute(mediaType)?.ShortName;
+
+ #endregion
+
#region Region
///
@@ -1335,706 +2129,6 @@ namespace RedumpLib.Data
}
}
- ///
- /// Get a list of valid MediaTypes for a given RedumpSystem
- ///
- /// RedumpSystem value to check
- /// MediaTypes, if possible
- public static List MediaTypes(this RedumpSystem? system)
- {
- var types = new List();
-
- switch (system)
- {
- #region Consoles
-
- // https://en.wikipedia.org/wiki/Atari_Jaguar_CD
- case RedumpSystem.AtariJaguarCDInteractiveMultimediaSystem:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Playdia
- case RedumpSystem.BandaiPlaydiaQuickInteractiveSystem:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Apple_Bandai_Pippin
- case RedumpSystem.BandaiPippin:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Amiga_CD32
- case RedumpSystem.CommodoreAmigaCD32:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Commodore_CDTV
- case RedumpSystem.CommodoreAmigaCDTV:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/EVO_Smart_Console
- case RedumpSystem.EnvizionsEVOSmartConsole:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // https://en.wikipedia.org/wiki/FM_Towns_Marty
- case RedumpSystem.FujitsuFMTownsMarty:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.FloppyDisk);
- break;
-
- // https://en.wikipedia.org/wiki/VideoNow
- case RedumpSystem.HasbroVideoNow:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/VideoNow
- case RedumpSystem.HasbroVideoNowColor:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/VideoNow
- case RedumpSystem.HasbroVideoNowJr:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/VideoNow
- case RedumpSystem.HasbroVideoNowXP:
- types.Add(MediaType.CDROM);
- break;
-
- case RedumpSystem.MattelFisherPriceiXL:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/HyperScan
- case RedumpSystem.MattelHyperScan:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Xbox_(console)
- case RedumpSystem.MicrosoftXbox:
- types.Add(MediaType.DVD);
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Xbox_360
- case RedumpSystem.MicrosoftXbox360:
- types.Add(MediaType.DVD);
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Xbox_One
- case RedumpSystem.MicrosoftXboxOne:
- types.Add(MediaType.BluRay);
- break;
-
- // https://en.wikipedia.org/wiki/Xbox_Series_X_and_Series_S
- case RedumpSystem.MicrosoftXboxSeriesXS:
- types.Add(MediaType.BluRay);
- break;
-
- // https://en.wikipedia.org/wiki/TurboGrafx-16
- case RedumpSystem.NECPCEngineCDTurboGrafxCD:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/PC-FX
- case RedumpSystem.NECPCFXPCFXGA:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/GameCube
- 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 RedumpSystem.NintendoSonySuperNESCDROMSystem:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Wii
- 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 RedumpSystem.NintendoWiiU:
- types.Add(MediaType.NintendoWiiUOpticalDisc);
- break;
-
- // https://en.wikipedia.org/wiki/3DO_Interactive_Multiplayer
- case RedumpSystem.Panasonic3DOInteractiveMultiplayer:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Philips_CD-i
- case RedumpSystem.PhilipsCDi:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/LaserActive
- case RedumpSystem.PioneerLaserActive:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.LaserDisc);
- break;
-
- // https://en.wikipedia.org/wiki/Sega_CD
- case RedumpSystem.SegaMegaCDSegaCD:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Dreamcast
- 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 RedumpSystem.SegaSaturn:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Neo_Geo_CD
- case RedumpSystem.SNKNeoGeoCD:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/PlayStation_(console)
- case RedumpSystem.SonyPlayStation:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/PlayStation_2
- case RedumpSystem.SonyPlayStation2:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // https://en.wikipedia.org/wiki/PlayStation_3
- case RedumpSystem.SonyPlayStation3:
- types.Add(MediaType.BluRay);
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // https://en.wikipedia.org/wiki/PlayStation_4
- case RedumpSystem.SonyPlayStation4:
- types.Add(MediaType.BluRay);
- break;
-
- // https://en.wikipedia.org/wiki/PlayStation_5
- case RedumpSystem.SonyPlayStation5:
- types.Add(MediaType.BluRay);
- break;
-
- // https://en.wikipedia.org/wiki/PlayStation_Portable
- 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 RedumpSystem.MemorexVisualInformationSystem:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Nuon_(DVD_technology)
- case RedumpSystem.VMLabsNUON:
- types.Add(MediaType.DVD);
- break;
-
- // https://en.wikipedia.org/wiki/V.Flash
- case RedumpSystem.VTechVFlashVSmilePro:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Game_Wave_Family_Entertainment_System
- case RedumpSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem:
- types.Add(MediaType.DVD);
- break;
-
- #endregion
-
- #region Computers
-
- // https://en.wikipedia.org/wiki/Acorn_Archimedes
- case RedumpSystem.AcornArchimedes:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.FloppyDisk);
- break;
-
- // https://en.wikipedia.org/wiki/Macintosh
- case RedumpSystem.AppleMacintosh:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- types.Add(MediaType.FloppyDisk);
- types.Add(MediaType.HardDisk);
- break;
-
- // https://en.wikipedia.org/wiki/Amiga
- case RedumpSystem.CommodoreAmigaCD:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.FloppyDisk);
- break;
-
- // https://en.wikipedia.org/wiki/FM_Towns
- case RedumpSystem.FujitsuFMTownsseries:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/IBM_PC_compatible
- case RedumpSystem.IBMPCcompatible:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- types.Add(MediaType.BluRay);
- types.Add(MediaType.FloppyDisk);
- types.Add(MediaType.HardDisk);
- types.Add(MediaType.DataCartridge);
- break;
-
- // https://en.wikipedia.org/wiki/PC-8800_series
- case RedumpSystem.NECPC88series:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.FloppyDisk);
- break;
-
- // https://en.wikipedia.org/wiki/PC-9800_series
- case RedumpSystem.NECPC98series:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- types.Add(MediaType.FloppyDisk);
- break;
-
- // https://en.wikipedia.org/wiki/X68000
- case RedumpSystem.SharpX68000:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.FloppyDisk);
- break;
-
- #endregion
-
- #region Arcade
-
- // https://www.bigbookofamigahardware.com/bboah/product.aspx?id=36
- case RedumpSystem.AmigaCUBOCD32:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Orbatak
- case RedumpSystem.AmericanLaserGames3DO:
- types.Add(MediaType.CDROM);
- break;
-
- // http://system16.com/hardware.php?id=779
- 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 RedumpSystem.Atronic:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // https://www.arcade-museum.com/members/member_detail.php?member_id=406530
- case RedumpSystem.AUSCOMSystem1:
- types.Add(MediaType.CDROM);
- break;
-
- // http://newlifegames.net/nlg/index.php?topic=285.0
- case RedumpSystem.BallyGameMagic:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/CP_System_III
- case RedumpSystem.CapcomCPSystemIII:
- types.Add(MediaType.CDROM);
- break;
-
- // UNKNOWN
- case RedumpSystem.funworldPhotoPlay:
- types.Add(MediaType.CDROM);
- break;
-
- // UNKNOWN
- case RedumpSystem.GlobalVRVarious:
- types.Add(MediaType.CDROM);
- break;
-
- // https://service.globalvr.com/troubleshooting/vortek.html
- case RedumpSystem.GlobalVRVortek:
- types.Add(MediaType.CDROM);
- break;
-
- // https://service.globalvr.com/downloads/v3/040-1001-01c-V3-System-Manual.pdf
- case RedumpSystem.GlobalVRVortekV3:
- types.Add(MediaType.CDROM);
- break;
-
- // https://www.icegame.com/games
- case RedumpSystem.ICEPCHardware:
- types.Add(MediaType.DVD);
- break;
-
- // https://github.com/mamedev/mame/blob/master/src/mame/drivers/iteagle.cpp
- case RedumpSystem.IncredibleTechnologiesEagle:
- types.Add(MediaType.CDROM);
- break;
-
- // UNKNOWN
- case RedumpSystem.IncredibleTechnologiesVarious:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // https://en.wikipedia.org/wiki/E-Amusement
- case RedumpSystem.KonamieAmusement:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // http://system16.com/hardware.php?id=828
- case RedumpSystem.KonamiFireBeat:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // http://system16.com/hardware.php?id=577
- case RedumpSystem.KonamiSystemGV:
- types.Add(MediaType.CDROM);
- break;
-
- // http://system16.com/hardware.php?id=575
- case RedumpSystem.KonamiM2:
- types.Add(MediaType.CDROM);
- break;
-
- // http://system16.com/hardware.php?id=586
- // http://system16.com/hardware.php?id=977
- 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 RedumpSystem.KonamiPython2:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // http://system16.com/hardware.php?id=582
- // http://system16.com/hardware.php?id=822
- // http://system16.com/hardware.php?id=823
- case RedumpSystem.KonamiSystem573:
- types.Add(MediaType.CDROM);
- break;
-
- // http://system16.com/hardware.php?id=827
- case RedumpSystem.KonamiTwinkle:
- types.Add(MediaType.CDROM);
- break;
-
- // UNKNOWN
- case RedumpSystem.KonamiVarious:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // http://www.meritgames.com/Support_Center/manuals/PM0591-01.pdf
- case RedumpSystem.MeritIndustriesBoardwalk:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // 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 RedumpSystem.MeritIndustriesMegaTouchForce:
- types.Add(MediaType.CDROM);
- break;
-
- // http://www.meritgames.com/Service%20Center/Ion%20Troubleshooting.pdf
- case RedumpSystem.MeritIndustriesMegaTouchION:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // 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 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 RedumpSystem.MeritIndustriesMegaTouchXL:
- types.Add(MediaType.CDROM);
- break;
-
- // http://system16.com/hardware.php?id=546
- // http://system16.com/hardware.php?id=872
- case RedumpSystem.NamcoCapcomSystem256:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // http://system16.com/hardware.php?id=543
- case RedumpSystem.NamcoSystem246:
- types.Add(MediaType.CDROM);
- types.Add(MediaType.DVD);
- break;
-
- // http://system16.com/hardware.php?id=545
- 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 RedumpSystem.NamcoSystem12:
- types.Add(MediaType.CDROM);
- break;
-
- // http://system16.com/hardware.php?id=900
- 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 RedumpSystem.NewJatreCDi:
- types.Add(MediaType.CDROM);
- break;
-
- // http://blog.system11.org/?p=2499
- case RedumpSystem.NichibutsuHighRateSystem:
- types.Add(MediaType.DVD);
- break;
-
- // http://blog.system11.org/?p=2514
- 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 RedumpSystem.NichibutsuXRateSystem:
- types.Add(MediaType.DVD);
- break;
-
- // https://en.wikipedia.org/wiki/Panasonic_M2
- 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 RedumpSystem.PhotoPlayVarious:
- types.Add(MediaType.CDROM);
- break;
-
- // UNKNOWN
- case RedumpSystem.RawThrillsVarious:
- types.Add(MediaType.DVD);
- break;
-
- // http://system16.com/hardware.php?id=729
- 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 RedumpSystem.SegaEuropaR:
- types.Add(MediaType.DVD);
- break;
-
- // http://system16.com/hardware.php?id=985
- // http://system16.com/hardware.php?id=731
- // http://system16.com/hardware.php?id=984
- // http://system16.com/hardware.php?id=986
- case RedumpSystem.SegaLindbergh:
- types.Add(MediaType.DVD);
- break;
-
- // http://system16.com/hardware.php?id=721
- // http://system16.com/hardware.php?id=723
- // http://system16.com/hardware.php?id=906
- // http://system16.com/hardware.php?id=722
- case RedumpSystem.SegaNaomi:
- types.Add(MediaType.CDROM); // Low density partition
- types.Add(MediaType.GDROM); // High density partition
- break;
-
- // http://system16.com/hardware.php?id=725
- // http://system16.com/hardware.php?id=726
- // http://system16.com/hardware.php?id=727
- 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 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 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 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 RedumpSystem.SegaRingWide:
- types.Add(MediaType.DVD);
- break;
-
- // http://system16.com/hardware.php?id=711
- case RedumpSystem.SegaTitanVideo:
- types.Add(MediaType.CDROM);
- break;
-
- // http://system16.com/hardware.php?id=709
- // http://system16.com/hardware.php?id=710
- case RedumpSystem.SegaSystem32:
- types.Add(MediaType.CDROM);
- break;
-
- // https://github.com/mamedev/mame/blob/master/src/mame/drivers/seibucats.cpp
- case RedumpSystem.SeibuCATSSystem:
- types.Add(MediaType.DVD);
- break;
-
- // https://www.tab.at/en/support/support/downloads
- 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 RedumpSystem.TsunamiTsuMoMultiGameMotionSystem:
- types.Add(MediaType.CDROM);
- break;
-
- #endregion
-
- #region Others
-
- // https://en.wikipedia.org/wiki/Audio_CD
- case RedumpSystem.AudioCD:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Blu-ray#Player_profiles
- case RedumpSystem.BDVideo:
- types.Add(MediaType.BluRay);
- break;
-
- // https://en.wikipedia.org/wiki/DVD-Audio
- case RedumpSystem.DVDAudio:
- types.Add(MediaType.DVD);
- break;
-
- // https://en.wikipedia.org/wiki/DVD-Video
- case RedumpSystem.DVDVideo:
- types.Add(MediaType.DVD);
- break;
-
- // https://en.wikipedia.org/wiki/Blue_Book_(CD_standard)
- case RedumpSystem.EnhancedCD:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/HD_DVD
- case RedumpSystem.HDDVDVideo:
- types.Add(MediaType.HDDVD);
- break;
-
- // UNKNOWN
- case RedumpSystem.NavisoftNaviken21:
- types.Add(MediaType.CDROM);
- break;
-
- // UNKNOWN
- case RedumpSystem.PalmOS:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Photo_CD
- case RedumpSystem.PhotoCD:
- types.Add(MediaType.CDROM);
- break;
-
- // UNKNOWN
- case RedumpSystem.PlayStationGameSharkUpdates:
- types.Add(MediaType.CDROM);
- break;
-
- // UNKNOWN
- case RedumpSystem.PocketPC:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Doors_and_Windows_(EP)
- case RedumpSystem.RainbowDisc:
- types.Add(MediaType.CDROM);
- break;
-
- // https://segaretro.org/Prologue_21
- case RedumpSystem.SegaPrologue21MultimediaKaraokeSystem:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Super_Audio_CD
- case RedumpSystem.SuperAudioCD:
- types.Add(MediaType.CDROM);
- break;
-
- // https://www.cnet.com/products/tao-music-iktv-karaoke-station-karaoke-system-series/
- case RedumpSystem.TaoiKTV:
- types.Add(MediaType.CDROM);
- break;
-
- // http://ultimateconsoledatabase.com/golden/kiss_site.htm
- case RedumpSystem.TomyKissSite:
- types.Add(MediaType.CDROM);
- break;
-
- // https://en.wikipedia.org/wiki/Video_CD
- case RedumpSystem.VideoCD:
- types.Add(MediaType.CDROM);
- break;
-
- #endregion
-
- default:
- types.Add(MediaType.NONE);
- break;
- }
-
- return types;
- }
-
#endregion
#region System Category