diff --git a/MPF.Library/Aaru/Converters.cs b/MPF.Library/Aaru/Converters.cs index 4587c4ce..48aa3e09 100644 --- a/MPF.Library/Aaru/Converters.cs +++ b/MPF.Library/Aaru/Converters.cs @@ -1,4 +1,5 @@ using MPF.Data; +using RedumpLib.Data; namespace MPF.Aaru { diff --git a/MPF.Library/Aaru/Parameters.cs b/MPF.Library/Aaru/Parameters.cs index 84579398..42ce80a2 100644 --- a/MPF.Library/Aaru/Parameters.cs +++ b/MPF.Library/Aaru/Parameters.cs @@ -1433,7 +1433,7 @@ namespace MPF.Aaru } // First check to see if the combination of system and MediaType is valid - var validTypes = Validators.GetValidMediaTypes(this.System); + var validTypes = this.System.MediaTypes(); if (!validTypes.Contains(this.Type)) return; diff --git a/MPF.Library/Converters/MediaTypeConverter.cs b/MPF.Library/Converters/MediaTypeConverter.cs index 6c7d505b..3dd7d4d9 100644 --- a/MPF.Library/Converters/MediaTypeConverter.cs +++ b/MPF.Library/Converters/MediaTypeConverter.cs @@ -3,6 +3,7 @@ using MPF.Data; using MPF.Utilities; using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using RedumpLib.Data; namespace MPF.Converters { diff --git a/MPF.Library/DD/Converters.cs b/MPF.Library/DD/Converters.cs index a59ae0fc..22a2eeda 100644 --- a/MPF.Library/DD/Converters.cs +++ b/MPF.Library/DD/Converters.cs @@ -1,4 +1,5 @@ using MPF.Data; +using RedumpLib.Data; namespace MPF.DD { diff --git a/MPF.Library/Data/Constants.cs b/MPF.Library/Data/Constants.cs index c1a54e8a..e96c9afb 100644 --- a/MPF.Library/Data/Constants.cs +++ b/MPF.Library/Data/Constants.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using RedumpLib.Data; namespace MPF.Data { diff --git a/MPF.Library/Data/DumpEnvironment.cs b/MPF.Library/Data/DumpEnvironment.cs index 9f137a14..7de05c82 100644 --- a/MPF.Library/Data/DumpEnvironment.cs +++ b/MPF.Library/Data/DumpEnvironment.cs @@ -569,7 +569,7 @@ namespace MPF.Data IProgress protectionProgress = null) { // Ensure the current disc combination should exist - if (!Validators.GetValidMediaTypes(System).Contains(Type)) + if (!System.MediaTypes().Contains(Type)) return null; // Sanitize the output filename to strip off any potential extension diff --git a/MPF.Library/Data/Enumerations.cs b/MPF.Library/Data/Enumerations.cs index 1f30f6c9..3251125e 100644 --- a/MPF.Library/Data/Enumerations.cs +++ b/MPF.Library/Data/Enumerations.cs @@ -49,64 +49,6 @@ namespace MPF.Data UmdImageCreator, } - /// - /// Known media types - /// - public enum MediaType - { - NONE = 0, - - #region Punched Media - - ApertureCard, - JacquardLoomCard, - MagneticStripeCard, - OpticalPhonecard, - PunchedCard, - PunchedTape, - - #endregion - - #region Tape - - Cassette, - DataCartridge, - OpenReel, - - #endregion - - #region Disc / Disc - - BluRay, - CDROM, - DVD, - FloppyDisk, - Floptical, - GDROM, - HDDVD, - HardDisk, - IomegaBernoulliDisk, - IomegaJaz, - IomegaZip, - LaserDisc, // LD-ROM and LV-ROM variants - Nintendo64DD, - NintendoFamicomDiskSystem, - NintendoGameCubeGameDisc, - NintendoWiiOpticalDisc, - NintendoWiiUOpticalDisc, - UMD, - - #endregion - - // Unsorted Formats - Cartridge, - CED, - CompactFlash, - MMC, - SDCard, - FlashDrive, - } - /// /// Physical media types /// diff --git a/MPF.Library/DiscImageCreator/Parameters.cs b/MPF.Library/DiscImageCreator/Parameters.cs index 7f4a0884..314e3e4b 100644 --- a/MPF.Library/DiscImageCreator/Parameters.cs +++ b/MPF.Library/DiscImageCreator/Parameters.cs @@ -1615,7 +1615,7 @@ namespace MPF.DiscImageCreator Filename = filename; // First check to see if the combination of system and MediaType is valid - var validTypes = Validators.GetValidMediaTypes(this.System); + var validTypes = this.System.MediaTypes(); if (!validTypes.Contains(this.Type)) return; @@ -2337,7 +2337,7 @@ namespace MPF.DiscImageCreator private void SetBaseCommand(RedumpSystem? system, MediaType? type) { // If we have an invalid combination, we should BaseCommand = null - if (!Validators.GetValidMediaTypes(system).Contains(type)) + if (!system.MediaTypes().Contains(type)) { BaseCommand = null; return; diff --git a/MPF.Library/Utilities/Validators.cs b/MPF.Library/Utilities/Validators.cs index fc712a17..979b5310 100644 --- a/MPF.Library/Utilities/Validators.cs +++ b/MPF.Library/Utilities/Validators.cs @@ -16,706 +16,6 @@ namespace MPF.Utilities { public static class Validators { - /// - /// Get a list of valid MediaTypes for a given RedumpSystem - /// - /// RedumpSystem value to check - /// MediaTypes, if possible - public static List GetValidMediaTypes(RedumpSystem? sys) - { - var types = new List(); - - switch (sys) - { - #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; - } - /// /// Create a list of active drives matched to their volume labels /// diff --git a/MPF.Test/Converters/MediaTypeExtensionsTest.cs b/MPF.Test/Converters/MediaTypeExtensionsTest.cs index 43b72e86..c9bcdfa8 100644 --- a/MPF.Test/Converters/MediaTypeExtensionsTest.cs +++ b/MPF.Test/Converters/MediaTypeExtensionsTest.cs @@ -1,6 +1,7 @@ using MPF.Converters; using MPF.Data; using MPF.Utilities; +using RedumpLib.Data; using Xunit; namespace MPF.Test.Converters diff --git a/MPF.Test/UI/AllowedSpeedsTest.cs b/MPF.Test/UI/AllowedSpeedsTest.cs index 154b6037..7305b644 100644 --- a/MPF.Test/UI/AllowedSpeedsTest.cs +++ b/MPF.Test/UI/AllowedSpeedsTest.cs @@ -1,5 +1,6 @@ using System.Linq; using MPF.Data; +using RedumpLib.Data; using Xunit; namespace MPF.Test.Data diff --git a/MPF.Test/Utilities/ParametersTest.cs b/MPF.Test/Utilities/ParametersTest.cs index 664a4c02..ec97a68c 100644 --- a/MPF.Test/Utilities/ParametersTest.cs +++ b/MPF.Test/Utilities/ParametersTest.cs @@ -47,7 +47,7 @@ namespace MPF.Test.Utilities HashSet expectedSet = new HashSet(expected ?? new string[0]); HashSet actualSet = new HashSet(actual.Keys.Cast() ?? new string[0]); Assert.Equal(expectedSet, actualSet); - if (rereadC2 == -1 || !Validators.GetValidMediaTypes(knownSystem).Contains(mediaType)) + if (rereadC2 == -1 || !knownSystem.MediaTypes().Contains(mediaType)) Assert.Null(actual.C2OpcodeValue[0]); else Assert.Equal(rereadC2, actual.C2OpcodeValue[0]); diff --git a/MPF.Test/Utilities/ValidatorsTest.cs b/MPF.Test/Utilities/ValidatorsTest.cs index 7e227570..69682af4 100644 --- a/MPF.Test/Utilities/ValidatorsTest.cs +++ b/MPF.Test/Utilities/ValidatorsTest.cs @@ -18,7 +18,7 @@ namespace MPF.Test.Utilities [InlineData(RedumpSystem.SonyPlayStationPortable, MediaType.UMD)] public void GetValidMediaTypesTest(RedumpSystem? knownSystem, MediaType? expected) { - var actual = Validators.GetValidMediaTypes(knownSystem); + var actual = knownSystem.MediaTypes(); Assert.Contains(expected, actual); } diff --git a/MPF/ViewModels/MainViewModel.cs b/MPF/ViewModels/MainViewModel.cs index 28a165a7..2a3e0a09 100644 --- a/MPF/ViewModels/MainViewModel.cs +++ b/MPF/ViewModels/MainViewModel.cs @@ -151,7 +151,7 @@ namespace MPF.GUI.ViewModels if (currentSystem != null) { - var mediaTypeValues = Validators.GetValidMediaTypes(currentSystem); + var mediaTypeValues = currentSystem.MediaTypes(); MediaTypes = Element.GenerateElements().Where(m => mediaTypeValues.Contains(m.Value)).ToList(); App.Instance.MediaTypeComboBox.ItemsSource = MediaTypes; @@ -642,7 +642,7 @@ namespace MPF.GUI.ViewModels // Get reasonable default values based on the current system RedumpSystem? currentSystem = Systems[App.Instance.SystemTypeComboBox.SelectedIndex]; - MediaType? defaultMediaType = Validators.GetValidMediaTypes(currentSystem).FirstOrDefault() ?? MediaType.CDROM; + MediaType? defaultMediaType = currentSystem.MediaTypes().FirstOrDefault() ?? MediaType.CDROM; if (defaultMediaType == MediaType.NONE) defaultMediaType = MediaType.CDROM; diff --git a/RedumpLib/Data/Enumerations.cs b/RedumpLib/Data/Enumerations.cs index b7ea8fdc..5067665b 100644 --- a/RedumpLib/Data/Enumerations.cs +++ b/RedumpLib/Data/Enumerations.cs @@ -271,6 +271,67 @@ namespace RedumpLib.Data OptionsMenu, } + /// + /// All possible media types + /// + public enum MediaType + { + NONE = 0, + + #region Punched Media + + ApertureCard, + JacquardLoomCard, + MagneticStripeCard, + OpticalPhonecard, + PunchedCard, + PunchedTape, + + #endregion + + #region Tape + + Cassette, + DataCartridge, + OpenReel, + + #endregion + + #region Disc / Disc + + BluRay, + CDROM, + DVD, + FloppyDisk, + Floptical, + GDROM, + HDDVD, + HardDisk, + IomegaBernoulliDisk, + IomegaJaz, + IomegaZip, + LaserDisc, // LD-ROM and LV-ROM variants + Nintendo64DD, + NintendoFamicomDiskSystem, + NintendoGameCubeGameDisc, + NintendoWiiOpticalDisc, + NintendoWiiUOpticalDisc, + UMD, + + #endregion + + #region Unsorted Formats + + Cartridge, + CED, + CompactFlash, + MMC, + SDCard, + FlashDrive, + + #endregion + } + /// /// List of all known systems /// diff --git a/RedumpLib/Data/Extensions.cs b/RedumpLib/Data/Extensions.cs index 2d1abc9f..16244e0a 100644 --- a/RedumpLib/Data/Extensions.cs +++ b/RedumpLib/Data/Extensions.cs @@ -1,4 +1,5 @@ -using RedumpLib.Attributes; +using System.Collections.Generic; +using RedumpLib.Attributes; namespace RedumpLib.Data { @@ -517,11 +518,11 @@ namespace RedumpLib.Data /// /// Get the RedumpSystem enum value for a given string /// - /// String value to convert + /// String value to convert /// RedumpSystem represented by the string, if possible - public static RedumpSystem? ToRedumpSystem(string sys) + public static RedumpSystem? ToRedumpSystem(string system) { - switch (sys) + switch (system) { #region BIOS Sets @@ -1334,6 +1335,706 @@ 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