using System; namespace MPF.Data { /// /// Available hashing types /// [Flags] public enum Hash { CRC = 1 << 0, MD5 = 1 << 1, SHA1 = 1 << 2, SHA256 = 1 << 3, SHA384 = 1 << 4, SHA512 = 1 << 5, // Special combinations Standard = CRC | MD5 | SHA1, All = CRC | MD5 | SHA1 | SHA256 | SHA384 | SHA512, } /// /// Drive type for dumping /// public enum InternalDriveType { Optical, Floppy, HardDisk, Removable, } /// /// Program that is being used to dump media /// public enum InternalProgram { NONE = 0, // Dumping support Aaru, DD, DiscImageCreator, // Verification support only CleanRip, DCDumper, UmdImageCreator, } /// /// Known systems /// public enum KnownSystem { NONE = 0, #region Disc-Based Consoles AtariJaguarCD, BandaiPlaydiaQuickInteractiveSystem, BandaiApplePippin, CommodoreAmigaCD32, CommodoreAmigaCDTV, EnvizionsEVOSmartConsole, FujitsuFMTownsMarty, HasbroVideoNow, HasbroVideoNowColor, HasbroVideoNowJr, HasbroVideoNowXP, MattelFisherPriceiXL, MattelHyperscan, MicrosoftXBOX, MicrosoftXBOX360, MicrosoftXBOXOne, MicrosoftXboxSeriesXS, NECPCEngineTurboGrafxCD, NECPCFX, NintendoGameCube, NintendoSonySuperNESCDROMSystem, NintendoWii, NintendoWiiU, Panasonic3DOInteractiveMultiplayer, // The 3DO Company 3DO Interactive Multiplayer PhilipsCDi, PioneerLaserActive, SegaCDMegaCD, SegaDreamcast, SegaSaturn, SNKNeoGeoCD, SonyPlayStation, SonyPlayStation2, SonyPlayStation3, SonyPlayStation4, SonyPlayStation5, SonyPlayStationPortable, TandyMemorexVisualInformationSystem, VMLabsNuon, VTechVFlashVSmilePro, ZAPiTGamesGameWaveFamilyEntertainmentSystem, MarkerDiscBasedConsoleEnd, #endregion #region Cartridge-Based and Other Consoles /* AmstradGX4000, APFMicrocomputerSystem, Atari2600VCS, Atari5200, Atari7800, AtariJaguar, AtariXEVideoGameSystem, Audiosonic1292AdvancedProgrammableVideoSystem, BallyAstrocade, BitCorporationDina, CasioLoopy, CasioPV1000, Commodore64GamesSystem, DaewooElectronicsZemmix, EmersonArcadia2001, EpochCassetteVision, EpochSuperCassetteVision, FairchildChannelF, FuntechSuperACan, GeneralConsumerElectricVectrex, HeberBBCBridgeCompanion, IntertonVC4000, JungleTacVii, LeapFrogClickStart, LJNVideoArt, MagnavoxOdyssey2, MattelIntellivision, NECPCEngineTurboGrafx16, NichibutsuMyVision, Nintendo64, Nintendo64DD, NintendoFamilyComputerNintendoEntertainmentSystem, NintendoFamilyComputerDiskSystem, NintendoSuperFamicomSuperNintendoEntertainmentSystem, NintendoSwitch, PhilipsVideopacPlusG7400, RCAStudioII, Sega32X, SegaMarkIIIMasterSystem, SegaMegaDriveGenesis, SegaSG1000, SNKNeoGeo, SSDCOMPANYLIMITEDXaviXPORT, ViewMasterInteractiveVision, VTechCreatiVision, VTechVSmile, VTechSocrates, WorldsOfWonderActionMax, MarkerOtherConsoleEnd, */ #endregion #region Computers AcornArchimedes, AppleMacintosh, CommodoreAmiga, FujitsuFMTowns, IBMPCCompatible, NECPC88, NECPC98, SharpX68000, MarkerComputerEnd, #endregion #region Arcade AmigaCUBOCD32, AmericanLaserGames3DO, Atari3DO, Atronic, AUSCOMSystem1, BallyGameMagic, CapcomCPSystemIII, funworldPhotoPlay, GlobalVRVarious, GlobalVRVortek, GlobalVRVortekV3, ICEPCHardware, IncredibleTechnologiesEagle, IncredibleTechnologiesVarious, KonamieAmusement, KonamiFirebeat, KonamiGVSystem, KonamiM2, KonamiPython, KonamiPython2, KonamiSystem573, KonamiTwinkle, KonamiVarious, MeritIndustriesBoardwalk, MeritIndustriesMegaTouchForce, MeritIndustriesMegaTouchION, MeritIndustriesMegaTouchMaxx, MeritIndustriesMegaTouchXL, NamcoCapcomSystem256, NamcoCapcomTaitoSystem246, NamcoSegaNintendoTriforce, NamcoSystem12, NamcoSystem357, NewJatreCDi, NichibutsuHighRateSystem, NichibutsuSuperCD, NichibutsuXRateSystem, PanasonicM2, PhotoPlayVarious, RawThrillsVarious, SegaChihiro, SegaEuropaR, SegaLindbergh, SegaNaomi, SegaNaomi2, SegaNu, SegaRingEdge, SegaRingEdge2, SegaRingWide, SegaTitanVideo, SegaSystem32, SeibuCATSSystem, TABAustriaQuizard, TsunamiTsuMoMultiGameMotionSystem, MarkerArcadeEnd, #endregion #region Other AudioCD, BDVideo, DVDAudio, DVDVideo, EnhancedCD, HDDVDVideo, NavisoftNaviken21, PalmOS, PhotoCD, PlayStationGameSharkUpdates, RainbowDisc, SegaPrologue21, SuperAudioCD, TaoiKTV, TomyKissSite, VideoCD, MarkerOtherEnd, #endregion } /// /// Known system category /// public enum KnownSystemCategory { DiscBasedConsole = 0, OtherConsole, Computer, Arcade, Other, Custom }; /// /// 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 /// /// public enum PhysicalMediaType : ushort { Unknown = 0, Other = 1, TapeCartridge = 2, QICCartridge = 3, AITCartridge = 4, DTFCartridge = 5, DATCartridge = 6, EightMillimeterTapeCartridge = 7, NineteenMillimeterTapeCartridge = 8, DLTCartridge = 9, HalfInchMagneticTapeCartridge = 10, CartridgeDisk = 11, JAZDisk = 12, ZIPDisk = 13, SyQuestDisk = 14, WinchesterRemovableDisk = 15, CDROM = 16, CDROMXA = 17, CDI = 18, CDRecordable = 19, WORM = 20, MagnetoOptical = 21, DVD = 22, DVDPlusRW = 23, DVDRAM = 24, DVDROM = 25, DVDVideo = 26, Divx = 27, FloppyDiskette = 28, HardDisk = 29, MemoryCard = 30, HardCopy = 31, ClikDisk = 32, CDRW = 33, CDDA = 34, CDPlus = 35, DVDRecordable = 36, DVDMinusRW = 37, DVDAudio = 38, DVD5 = 39, DVD9 = 40, DVD10 = 41, DVD18 = 42, MagnetoOpticalRewriteable = 43, MagnetoOpticalWriteOnce = 44, MagnetoOpticalRewriteableLIMDOW = 45, PhaseChangeWriteOnce = 46, PhaseChangeRewriteable = 47, PhaseChangeDualRewriteable = 48, AblativeWriteOnce = 49, NearFieldRecording = 50, MiniQic = 51, Travan = 52, EightMillimeterMetalParticle = 53, EightMillimeterAdvancedMetalEvaporate = 54, NCTP = 55, LTOUltrium = 56, LTOAccelis = 57, NineTrackTape = 58, EighteenTrackTape = 59, ThirtySixTrackTape = 60, Magstar3590 = 61, MagstarMP = 62, D2Tape = 63, TapeDSTSmall = 64, TapeDSTMedium = 65, TapeDSTLarge = 66, } /// /// Redump disc category /// public enum RedumpDiscCategory { Games = 1, Demos = 2, Video = 3, Audio = 4, Multimedia = 5, Applications = 6, Coverdiscs = 7, Educational = 8, BonusDiscs = 9, Preproduction = 10, AddOns = 11, } /// /// Redump dump status /// public enum RedumpDumpStatus { BadDumpRed = 2, PossibleBadDumpYellow = 3, OriginalMediaBlue = 4, TwoOrMoreDumpsGreen = 5, } /// /// Redump supported langauge /// public enum RedumpLanguage { Afrikaans, Albanian, Arabic, Basque, Bulgarian, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Gaelic, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Icelandic, Italian, Japanese, Korean, Latin, Latvian, Lithuanian, Macedonian, Norwegian, Polish, Portuguese, Punjabi, Romanian, Russian, Serbian, Slovak, Slovenian, Spanish, Swedish, Tamil, Thai, Turkish, Ukrainian, } /// /// Redump PS2 language selection via /// public enum RedumpLanguageSelection { BiosSettings, LanguageSelector, OptionsMenu, } /// /// Supported Redump region /// public enum RedumpRegion { Argentina, Asia, AsiaEurope, AsiaUSA, Australia, AustraliaGermany, AustraliaNewZealand, Austria, AustriaSwitzerland, Belgium, BelgiumNetherlands, Brazil, Bulgaria, Canada, China, Croatia, Czech, Denmark, Estonia, Europe, EuropeAsia, EuropeAustralia, EuropeCanada, EuropeGermany, Export, Finland, France, FranceSpain, Germany, GreaterChina, Greece, Hungary, Iceland, India, Ireland, Israel, Italy, Japan, JapanAsia, JapanEurope, JapanKorea, JapanUSA, Korea, LatinAmerica, Lithuania, Netherlands, NewZealand, Norway, Poland, Portugal, Romania, Russia, Scandinavia, Serbia, Singapore, Slovakia, SouthAfrica, Spain, SpainPortugal, Sweden, Switzerland, Taiwan, Thailand, Turkey, UnitedArabEmirates, UK, UKAustralia, Ukraine, USA, USAAsia, USAAustralia, USABrazil, USACanada, USAEurope, USAGermany, USAJapan, USAKorea, World, } /// /// List of all known Redump systems /// public enum RedumpSystem { // Special BIOS sets MicrosoftXboxBIOS, NintendoGameCubeBIOS, SonyPlayStationBIOS, SonyPlayStation2BIOS, // Regular systems AcornArchimedes, AppleMacintosh, AtariJaguarCDInteractiveMultimediaSystem, AudioCD, BandaiPippin, BandaiPlaydiaQuickInteractiveSystem, BDVideo, CommodoreAmigaCD, CommodoreAmigaCD32, CommodoreAmigaCDTV, DVDVideo, EnhancedCD, FujitsuFMTownsseries, funworldPhotoPlay, HasbroVideoNow, HasbroVideoNowColor, HasbroVideoNowJr, HasbroVideoNowXP, IBMPCcompatible, IncredibleTechnologiesEagle, KonamieAmusement, KonamiFireBeat, KonamiM2, KonamiSystem573, KonamiSystemGV, KonamiTwinkle, MattelFisherPriceiXL, MattelHyperScan, MemorexVisualInformationSystem, MicrosoftXbox, MicrosoftXbox360, MicrosoftXboxOne, MicrosoftXboxSeriesXS, NamcoSegaNintendoTriforce, NamcoSystem12, NamcoSystem246, NavisoftNaviken21, NECPCEngineCDTurboGrafxCD, NECPC88series, NECPC98series, NECPCFXPCFXGA, NintendoGameCube, NintendoWii, NintendoWiiU, PalmOS, Panasonic3DOInteractiveMultiplayer, PanasonicM2, PhilipsCDi, PhotoCD, PlayStationGameSharkUpdates, SegaChihiro, SegaDreamcast, SegaLindbergh, SegaMegaCDSegaCD, SegaNaomi, SegaNaomi2, SegaPrologue21, SegaRingEdge, SegaRingEdge2, SegaSaturn, SegaTitanVideo, SharpX68000, SNKNeoGeoCD, SonyPlayStation, SonyPlayStation2, SonyPlayStation3, SonyPlayStation4, SonyPlayStation5, SonyPlayStationPortable, TABAustriaQuizard, TaoiKTV, TomyKissSite, VideoCD, VMLabsNUON, VTechVFlashVSmilePro, ZAPiTGamesGameWaveFamilyEntertainmentSystem, } /// /// Generic yes/no values for Redump /// public enum YesNo { NULL = 0, No = 1, Yes = 2, } #region Win32_CDROMDrive // https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-cdromdrive /// /// Availability and status of the device /// public enum Availability : ushort { Other = 1, Unknown = 2, RunningFullPower = 3, Warning = 4, InTest = 5, NotApplicable = 6, PowerOff = 7, OffLine = 8, OffDuty = 9, Degraded = 10, NotInstalled = 11, InstallError = 12, PowerSaveUnknown = 13, PowerSaveLowPowerMode = 14, PowerSaveStandby = 15, PowerCycle = 16, PowerSaveWarning = 17, Paused = 18, NotReady = 19, NotConfigured = 20, Quiesced = 21, } /// /// Optical drive capabilities /// public enum Capabilities : ushort { Unknown = 0, Other = 1, SequentialAccess = 2, RandomAccess = 3, SupportsWriting = 4, Encryption = 5, Compression = 6, SupportsRemoveableMedia = 7, ManualCleaning = 8, AutomaticCleaning = 9, SMARTNotification = 10, SupportsDualSidedMedia = 11, PredismountEjectNotRequired = 12, } /// /// File system flags /// [Flags] public enum FileSystemFlags : uint { None = 0, CaseSensitiveSearch = 1, CasePreservedNames = 2, UnicodeOnDisk = 4, PersistentACLs = 8, FileCompression = 16, VolumeQuotas = 32, SupportsSparseFiles = 64, SupportsReparsePoints = 128, SupportsRemoteStorage = 256, SupportsLongNames = 16384, VolumeIsCompressed = 32768, ReadOnlyVolume = 524289, // TODO: Invesitgate, as this value seems wrong SupportsObjectIDS = 65536, SupportsEncryption = 131072, SupportsNamedStreams = 262144, } /// /// Specific power-related capabilities of a logical device /// public enum PowerManagementCapabilities : ushort { Unknown = 0, NotSupported = 1, Disabled = 2, Enabled = 3, PowerSavingModesEnteredAutomatically = 4, PowerStateSettable = 5, PowerCyclingSupported = 6, TimedPowerOnSupported = 7, } #endregion }