using System;
// TODO: Figure out the best way to put these back in their libraries
namespace SabreTools.Core
{
#region DatFiles
///
/// DAT output formats
///
[Flags]
public enum DatFormat
{
#region XML Formats
///
/// Logiqx XML (using machine)
///
Logiqx = 1 << 0,
///
/// Logiqx XML (using game)
///
LogiqxDeprecated = 1 << 1,
///
/// MAME Softare List XML
///
SoftwareList = 1 << 2,
///
/// MAME Listxml output
///
Listxml = 1 << 3,
///
/// OfflineList XML
///
OfflineList = 1 << 4,
///
/// SabreDAT XML
///
SabreXML = 1 << 5,
///
/// openMSX Software List XML
///
OpenMSX = 1 << 6,
#endregion
#region Propietary Formats
///
/// ClrMamePro custom
///
ClrMamePro = 1 << 7,
///
/// RomCenter INI-based
///
RomCenter = 1 << 8,
///
/// DOSCenter custom
///
DOSCenter = 1 << 9,
///
/// AttractMode custom
///
AttractMode = 1 << 10,
#endregion
#region Standardized Text Formats
///
/// ClrMamePro missfile
///
MissFile = 1 << 11,
///
/// Comma-Separated Values (standardized)
///
CSV = 1 << 12,
///
/// Semicolon-Separated Values (standardized)
///
SSV = 1 << 13,
///
/// Tab-Separated Values (standardized)
///
TSV = 1 << 14,
///
/// MAME Listrom output
///
Listrom = 1 << 15,
///
/// Everdrive Packs SMDB
///
EverdriveSMDB = 1 << 16,
///
/// SabreJSON
///
SabreJSON = 1 << 17,
#endregion
#region SFV-similar Formats
///
/// CRC32 hash list
///
RedumpSFV = 1 << 18,
///
/// MD5 hash list
///
RedumpMD5 = 1 << 19,
#if NET_FRAMEWORK
///
/// RIPEMD160 hash list
///
RedumpRIPEMD160 = 1 << 20,
#endif
///
/// SHA-1 hash list
///
RedumpSHA1 = 1 << 21,
///
/// SHA-256 hash list
///
RedumpSHA256 = 1 << 22,
///
/// SHA-384 hash list
///
RedumpSHA384 = 1 << 23,
///
/// SHA-512 hash list
///
RedumpSHA512 = 1 << 24,
///
/// SpamSum hash list
///
RedumpSpamSum = 1 << 25,
#endregion
// Specialty combinations
ALL = Int32.MaxValue,
}
///
/// Determines the DAT deduplication type
///
public enum DedupeType
{
None = 0,
Full,
// Force only deduping with certain types
Game,
CRC,
MD5,
#if NET_FRAMEWORK
RIPEMD160,
#endif
SHA1,
SHA256,
SHA384,
SHA512,
}
///
/// List of valid field types within a DatItem/Machine
///
public enum Field : int
{
NULL = 0,
#region DatHeader
#region Common
DatHeader_FileName,
DatHeader_Name,
DatHeader_Description,
DatHeader_RootDir,
DatHeader_Category,
DatHeader_Version,
DatHeader_Date,
DatHeader_Author,
DatHeader_Email,
DatHeader_Homepage,
DatHeader_Url,
DatHeader_Comment,
DatHeader_HeaderSkipper,
DatHeader_Type,
DatHeader_ForceMerging,
DatHeader_ForceNodump,
DatHeader_ForcePacking,
#endregion
#region ListXML
DatHeader_Debug,
DatHeader_MameConfig,
#endregion
#region Logiqx
DatHeader_Build,
DatHeader_RomMode,
DatHeader_BiosMode,
DatHeader_SampleMode,
DatHeader_LockRomMode,
DatHeader_LockBiosMode,
DatHeader_LockSampleMode,
#endregion
#region OfflineList
DatHeader_System,
DatHeader_ScreenshotsWidth,
DatHeader_ScreenshotsHeight,
DatHeader_CanOpen,
DatHeader_RomTitle,
// Infos
DatHeader_Info_Name,
DatHeader_Info_Visible,
DatHeader_Info_IsNamingOption,
DatHeader_Info_Default,
#endregion
#region RomCenter
DatHeader_RomCenterVersion,
#endregion
#endregion // DatHeader
#region Machine
#region Common
Machine_Name,
Machine_Comment,
Machine_Description,
Machine_Year,
Machine_Manufacturer,
Machine_Publisher,
Machine_Category,
Machine_RomOf,
Machine_CloneOf,
Machine_SampleOf,
Machine_Type,
#endregion
#region AttractMode
Machine_Players,
Machine_Rotation,
Machine_Control,
Machine_Status,
Machine_DisplayCount,
Machine_DisplayType,
Machine_Buttons,
#endregion
#region ListXML
Machine_SourceFile,
Machine_Runnable,
#endregion
#region Logiqx
Machine_Board,
Machine_RebuildTo,
#endregion
#region Logiqx EmuArc
Machine_TitleID,
Machine_Developer,
Machine_Genre,
Machine_Subgenre,
Machine_Ratings,
Machine_Score,
Machine_Enabled,
Machine_CRC,
Machine_RelatedTo,
#endregion
#region OpenMSX
Machine_GenMSXID,
Machine_System,
Machine_Country,
#endregion
#region SoftwareList
Machine_Supported,
#endregion
#endregion // Machine
#region DatItem
#region Common
DatItem_Type,
#endregion
#region Item-Specific
#region Actionable
// Rom
DatItem_Name,
DatItem_Bios,
DatItem_Size,
DatItem_CRC,
DatItem_MD5,
#if NET_FRAMEWORK
DatItem_RIPEMD160,
#endif
DatItem_SHA1,
DatItem_SHA256,
DatItem_SHA384,
DatItem_SHA512,
DatItem_SpamSum,
DatItem_Merge,
DatItem_Region,
DatItem_Offset,
DatItem_Date,
DatItem_Status,
DatItem_Optional,
DatItem_Inverted,
// Rom (AttractMode)
DatItem_AltName,
DatItem_AltTitle,
// Rom (OpenMSX)
DatItem_Original,
DatItem_OpenMSXSubType,
DatItem_OpenMSXType,
DatItem_Remark,
DatItem_Boot,
// Rom (SoftwareList)
DatItem_LoadFlag,
DatItem_Value,
// Disk
DatItem_Index,
DatItem_Writable,
#endregion
#region Auxiliary
// Adjuster
DatItem_Default,
// Analog
DatItem_Analog_Mask,
// BiosSet
DatItem_Description,
// Chip
DatItem_Tag,
DatItem_ChipType,
DatItem_Clock,
// Condition
DatItem_Mask,
DatItem_Relation,
DatItem_Condition_Tag,
DatItem_Condition_Mask,
DatItem_Condition_Relation,
DatItem_Condition_Value,
// Control
DatItem_Control_Type,
DatItem_Control_Player,
DatItem_Control_Buttons,
DatItem_Control_RequiredButtons,
DatItem_Control_Minimum,
DatItem_Control_Maximum,
DatItem_Control_Sensitivity,
DatItem_Control_KeyDelta,
DatItem_Control_Reverse,
DatItem_Control_Ways,
DatItem_Control_Ways2,
DatItem_Control_Ways3,
// DataArea
DatItem_AreaName,
DatItem_AreaSize,
DatItem_AreaWidth,
DatItem_AreaEndianness,
// Device
DatItem_DeviceType,
DatItem_FixedImage,
DatItem_Mandatory,
DatItem_Interface,
// Display
DatItem_DisplayType,
DatItem_Rotate,
DatItem_FlipX,
DatItem_Width,
DatItem_Height,
DatItem_Refresh,
DatItem_PixClock,
DatItem_HTotal,
DatItem_HBEnd,
DatItem_HBStart,
DatItem_VTotal,
DatItem_VBEnd,
DatItem_VBStart,
// Driver
DatItem_SupportStatus,
DatItem_EmulationStatus,
DatItem_CocktailStatus,
DatItem_SaveStateStatus,
// Extension
DatItem_Extension_Name,
// Feature
DatItem_FeatureType,
DatItem_FeatureStatus,
DatItem_FeatureOverall,
// Input
DatItem_Service,
DatItem_Tilt,
DatItem_Players,
DatItem_Coins,
// Instance
DatItem_Instance_Name,
DatItem_Instance_BriefName,
// Location
DatItem_Location_Name,
DatItem_Location_Number,
DatItem_Location_Inverted,
// Part
DatItem_Part_Name,
DatItem_Part_Interface,
// PartFeature
DatItem_Part_Feature_Name,
DatItem_Part_Feature_Value,
// RamOption
DatItem_Content,
// Release
DatItem_Language,
// Setting
DatItem_Setting_Name,
DatItem_Setting_Value,
DatItem_Setting_Default,
// SlotOption
DatItem_SlotOption_Name,
DatItem_SlotOption_DeviceName,
DatItem_SlotOption_Default,
// SoftwareList
DatItem_SoftwareListStatus,
DatItem_Filter,
// Sound
DatItem_Channels,
#endregion
#endregion // Item-Specific
#endregion // DatItem
}
///
/// Available hashing types
///
[Flags]
public enum Hash
{
CRC = 1 << 0,
MD5 = 1 << 1,
#if NET_FRAMEWORK
RIPEMD160 = 1 << 2,
#endif
SHA1 = 1 << 3,
SHA256 = 1 << 4,
SHA384 = 1 << 5,
SHA512 = 1 << 6,
SpamSum = 1 << 7,
// Special combinations
Standard = CRC | MD5 | SHA1,
#if NET_FRAMEWORK
DeepHashes = RIPEMD160 | SHA256 | SHA384 | SHA512 | SpamSum,
SecureHashes = MD5 | RIPEMD160 | SHA1 | SHA256 | SHA384 | SHA512 | SpamSum,
#else
DeepHashes = SHA256 | SHA384 | SHA512 | SpamSum,
SecureHashes = MD5 | SHA1 | SHA256 | SHA384 | SHA512 | SpamSum,
#endif
}
///
/// Determines merging tag handling for DAT output
///
public enum MergingFlag
{
None = 0,
Split,
Merged,
NonMerged,
Full,
/// This is not usually defined for Merging flags
Device,
}
///
/// Determines nodump tag handling for DAT output
///
public enum NodumpFlag
{
None = 0,
Obsolete,
Required,
Ignore,
}
///
/// Determines packing tag handling for DAT output
///
public enum PackingFlag
{
None = 0,
///
/// Force all sets to be in archives, except disk and media
///
Zip,
///
/// Force all sets to be extracted into subfolders
///
Unzip,
///
/// Force sets with single items to be extracted to the parent folder
///
Partial,
///
/// Force all sets to be extracted to the parent folder
///
Flat,
}
///
/// Determines which files should be skipped in DFD
///
public enum SkipFileType
{
None = 0,
Archive,
File,
}
///
/// Determines what sort of files get externally hashed
///
/// TODO: Can FileType be used instead?
[Flags]
public enum TreatAsFile
{
CHD = 1 << 0,
Archive = 1 << 1,
AaruFormat = 1 << 2,
NonArchive = CHD | AaruFormat,
All = CHD | Archive | AaruFormat,
}
#endregion
#region DatItems
///
/// Determine the chip type
///
[Flags]
public enum ChipType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
CPU = 1 << 0,
Audio = 1 << 1,
}
///
/// Determine the control type
///
[Flags]
public enum ControlType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
Joy = 1 << 0,
Stick = 1 << 1,
Paddle = 1 << 2,
Pedal = 1 << 3,
Lightgun = 1 << 4,
Positional = 1 << 5,
Dial = 1 << 6,
Trackball = 1 << 7,
Mouse = 1 << 8,
OnlyButtons = 1 << 9,
Keypad = 1 << 10,
Keyboard = 1 << 11,
Mahjong = 1 << 12,
Hanafuda = 1 << 13,
Gambling = 1 << 14,
}
///
/// Determine the device type
///
[Flags]
public enum DeviceType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
Unknown = 1 << 0,
Cartridge = 1 << 1,
FloppyDisk = 1 << 2,
HardDisk = 1 << 3,
Cylinder = 1 << 4,
Cassette = 1 << 5,
PunchCard = 1 << 6,
PunchTape = 1 << 7,
Printout = 1 << 8,
Serial = 1 << 9,
Parallel = 1 << 10,
Snapshot = 1 << 11,
QuickLoad = 1 << 12,
MemCard = 1 << 13,
CDROM = 1 << 14,
MagTape = 1 << 15,
ROMImage = 1 << 16,
MIDIIn = 1 << 17,
MIDIOut = 1 << 18,
Picture = 1 << 19,
VidFile = 1 << 20,
}
///
/// Determine the display type
///
[Flags]
public enum DisplayType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
Raster = 1 << 0,
Vector = 1 << 1,
LCD = 1 << 2,
SVG = 1 << 3,
Unknown = 1 << 4,
}
///
/// Determines which type of duplicate a file is
///
[Flags]
public enum DupeType
{
// Type of match
Hash = 1 << 0,
All = 1 << 1,
// Location of match
Internal = 1 << 2,
External = 1 << 3,
}
///
/// Determine the endianness
///
[Flags]
public enum Endianness
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
Big = 1 << 0,
Little = 1 << 1,
}
///
/// Determine the emulation status
///
[Flags]
public enum FeatureStatus
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
Unemulated = 1 << 0,
Imperfect = 1 << 1,
}
///
/// Determine the feature type
///
[Flags]
public enum FeatureType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
Protection = 1 << 0,
Palette = 1 << 1,
Graphics = 1 << 2,
Sound = 1 << 3,
Controls = 1 << 4,
Keyboard = 1 << 5,
Mouse = 1 << 6,
Microphone = 1 << 7,
Camera = 1 << 8,
Disk = 1 << 9,
Printer = 1 << 10,
Lan = 1 << 11,
Wan = 1 << 12,
Timing = 1 << 13,
}
///
/// Determine the status of the item
///
[Flags]
public enum ItemStatus
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
None = 1 << 0,
Good = 1 << 1,
BadDump = 1 << 2,
Nodump = 1 << 3,
Verified = 1 << 4,
}
///
/// Determine what type of file an item is
///
public enum ItemType
{
// "Actionable" item types
Rom,
Disk,
Media,
// "Auxiliary" item types
Adjuster,
Analog,
Archive,
BiosSet,
Chip,
Condition,
Configuration,
Control,
DataArea,
Device,
DeviceReference,
DipSwitch,
DiskArea,
Display,
Driver,
Extension,
Feature,
Info,
Input,
Instance,
Location,
Part,
PartFeature,
Port,
RamOption,
Release,
Sample,
Setting,
SharedFeature,
Slot,
SlotOption,
SoftwareList,
Sound,
Blank = 99, // This is not a real type, only used internally
}
///
/// Determine the loadflag value
///
[Flags]
public enum LoadFlag
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
Load16Byte = 1 << 0,
Load16Word = 1 << 1,
Load16WordSwap = 1 << 2,
Load32Byte = 1 << 3,
Load32Word = 1 << 4,
Load32WordSwap = 1 << 5,
Load32DWord = 1 << 6,
Load64Word = 1 << 7,
Load64WordSwap = 1 << 8,
Reload = 1 << 9,
Fill = 1 << 10,
Continue = 1 << 11,
ReloadPlain = 1 << 12,
Ignore = 1 << 13,
}
///
/// Determine what type of machine it is
///
[Flags]
public enum MachineType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 1 << 0,
Bios = 1 << 1,
Device = 1 << 2,
Mechanical = 1 << 3,
}
///
/// Determine which OpenMSX subtype an item is
///
[Flags]
public enum OpenMSXSubType
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
Rom = 1 << 0,
MegaRom = 1 << 1,
SCCPlusCart = 1 << 2,
}
///
/// Determine relation of value to condition
///
[Flags]
public enum Relation
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
Equal = 1 << 0,
NotEqual = 1 << 1,
GreaterThan = 1 << 2,
LessThanOrEqual = 1 << 3,
LessThan = 1 << 4,
GreaterThanOrEqual = 1 << 5,
}
///
/// Determine machine runnable status
///
[Flags]
public enum Runnable
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
No = 1 << 0,
Partial = 1 << 1,
Yes = 1 << 2,
}
///
/// Determine software list status
///
[Flags]
public enum SoftwareListStatus
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
Original = 1 << 0,
Compatible = 1 << 1,
}
///
/// Determine machine support status
///
[Flags]
public enum Supported
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
No = 1 << 0,
Partial = 1 << 1,
Yes = 1 << 2,
}
///
/// Determine driver support statuses
///
[Flags]
public enum SupportStatus
{
///
/// This is a fake flag that is used for filter only
///
NULL = 0,
Good = 1 << 0,
Imperfect = 1 << 1,
Preliminary = 1 << 2,
}
#endregion
#region FileTypes
///
/// List of known blocks types
///
///
public enum AaruBlockType : uint
{
/// Block containing data
DataBlock = 0x4B4C4244,
/// Block containing a deduplication table
DeDuplicationTable = 0x2A544444,
/// Block containing the index
Index = 0x58444E49,
/// Block containing the index
Index2 = 0x32584449,
/// Block containing logical geometry
GeometryBlock = 0x4D4F4547,
/// Block containing metadata
MetadataBlock = 0x4154454D,
/// Block containing optical disc tracks
TracksBlock = 0x534B5254,
/// Block containing CICM XML metadata
CicmBlock = 0x4D434943,
/// Block containing contents checksums
ChecksumBlock = 0x4D534B43,
/// TODO: Block containing data position measurements
DataPositionMeasurementBlock = 0x2A4D5044,
/// TODO: Block containing a snapshot index
SnapshotBlock = 0x50414E53,
/// TODO: Block containing how to locate the parent image
ParentBlock = 0x50524E54,
/// Block containing an array of hardware used to create the image
DumpHardwareBlock = 0x2A504D44,
/// Block containing list of files for a tape image
TapeFileBlock = 0x454C4654,
/// Block containing list of partitions for a tape image
TapePartitionBlock = 0x54425054,
/// Block containing list of indexes for Compact Disc tracks
CompactDiscIndexesBlock = 0x58494443
}
///
public enum AaruChecksumAlgorithm : byte
{
Invalid = 0, Md5 = 1, Sha1 = 2,
Sha256 = 3, SpamSum = 4
}
///
/// List of known data types
///
///
public enum AaruDataType : ushort
{
/// No data
NoData = 0,
/// User data
UserData = 1,
/// CompactDisc partial Table of Contents
CompactDiscPartialToc = 2,
/// CompactDisc session information
CompactDiscSessionInfo = 3,
/// CompactDisc Table of Contents
CompactDiscToc = 4,
/// CompactDisc Power Management Area
CompactDiscPma = 5,
/// CompactDisc Absolute Time In Pregroove
CompactDiscAtip = 6,
/// CompactDisc Lead-in's CD-Text
CompactDiscLeadInCdText = 7,
/// DVD Physical Format Information
DvdPfi = 8,
/// DVD Lead-in's Copyright Management Information
DvdLeadInCmi = 9,
/// DVD Disc Key
DvdDiscKey = 10,
/// DVD Burst Cutting Area
DvdBca = 11,
/// DVD DMI
DvdDmi = 12,
/// DVD Media Identifier
DvdMediaIdentifier = 13,
/// DVD Media Key Block
DvdMediaKeyBlock = 14,
/// DVD-RAM Disc Definition Structure
DvdRamDds = 15,
/// DVD-RAM Medium Status
DvdRamMediumStatus = 16,
/// DVD-RAM Spare Area Information
DvdRamSpareArea = 17,
/// DVD-R RMD
DvdRRmd = 18,
/// DVD-R Pre-recorded Information
DvdRPrerecordedInfo = 19,
/// DVD-R Media Identifier
DvdRMediaIdentifier = 20,
/// DVD-R Physical Format Information
DvdRPfi = 21,
/// DVD ADress In Pregroove
DvdAdip = 22,
/// HD DVD Copy Protection Information
HdDvdCpi = 23,
/// HD DVD Medium Status
HdDvdMediumStatus = 24,
/// DVD DL Layer Capacity
DvdDlLayerCapacity = 25,
/// DVD DL Middle Zone Address
DvdDlMiddleZoneAddress = 26,
/// DVD DL Jump Interval Size
DvdDlJumpIntervalSize = 27,
/// DVD DL Manual Layer Jump LBA
DvdDlManualLayerJumpLba = 28,
/// Bluray Disc Information
BlurayDi = 29,
/// Bluray Burst Cutting Area
BlurayBca = 30,
/// Bluray Disc Definition Structure
BlurayDds = 31,
/// Bluray Cartridge Status
BlurayCartridgeStatus = 32,
/// Bluray Spare Area Information
BluraySpareArea = 33,
/// AACS Volume Identifier
AacsVolumeIdentifier = 34,
/// AACS Serial Number
AacsSerialNumber = 35,
/// AACS Media Identifier
AacsMediaIdentifier = 36,
/// AACS Media Key Block
AacsMediaKeyBlock = 37,
/// AACS Data Keys
AacsDataKeys = 38,
/// AACS LBA Extents
AacsLbaExtents = 39,
/// CPRM Media Key Block
CprmMediaKeyBlock = 40,
/// Recognized Layers
HybridRecognizedLayers = 41,
/// MMC Write Protection
ScsiMmcWriteProtection = 42,
/// MMC Disc Information
ScsiMmcDiscInformation = 43,
/// MMC Track Resources Information
ScsiMmcTrackResourcesInformation = 44,
/// MMC POW Resources Information
ScsiMmcPowResourcesInformation = 45,
/// SCSI INQUIRY RESPONSE
ScsiInquiry = 46,
/// SCSI MODE PAGE 2Ah
ScsiModePage2A = 47,
/// ATA IDENTIFY response
AtaIdentify = 48,
/// ATAPI IDENTIFY response
AtapiIdentify = 49,
/// PCMCIA CIS
PcmciaCis = 50,
/// SecureDigital CID
SecureDigitalCid = 51,
/// SecureDigital CSD
SecureDigitalCsd = 52,
/// SecureDigital SCR
SecureDigitalScr = 53,
/// SecureDigital OCR
SecureDigitalOcr = 54,
/// MultiMediaCard CID
MultiMediaCardCid = 55,
/// MultiMediaCard CSD
MultiMediaCardCsd = 56,
/// MultiMediaCard OCR
MultiMediaCardOcr = 57,
/// MultiMediaCard Extended CSD
MultiMediaCardExtendedCsd = 58,
/// Xbox Security Sector
XboxSecuritySector = 59,
/// Floppy Lead-out
FloppyLeadOut = 60,
/// Dvd Disc Control Block
DvdDiscControlBlock = 61,
/// CompactDisc First track pregap
CompactDiscFirstTrackPregap = 62,
/// CompactDisc Lead-out
CompactDiscLeadOut = 63,
/// SCSI MODE SENSE (6) response
ScsiModeSense6 = 64,
/// SCSI MODE SENSE (10) response
ScsiModeSense10 = 65,
/// USB descriptors
UsbDescriptors = 66,
/// Xbox DMI
XboxDmi = 67,
/// Xbox Physical Format Information
XboxPfi = 68,
/// CompactDisc sector prefix (sync, header
CdSectorPrefix = 69,
/// CompactDisc sector suffix (edc, ecc p, ecc q)
CdSectorSuffix = 70,
/// CompactDisc subchannel
CdSectorSubchannel = 71,
/// Apple Profile (20 byte) tag
AppleProfileTag = 72,
/// Apple Sony (12 byte) tag
AppleSonyTag = 73,
/// Priam Data Tower (24 byte) tag
PriamDataTowerTag = 74,
/// CompactDisc Media Catalogue Number (as in Lead-in), 13 bytes, ASCII
CompactDiscMediaCatalogueNumber = 75,
/// CompactDisc sector prefix (sync, header), only incorrect stored
CdSectorPrefixCorrected = 76,
/// CompactDisc sector suffix (edc, ecc p, ecc q), only incorrect stored
CdSectorSuffixCorrected = 77,
/// CompactDisc MODE 2 subheader
CompactDiscMode2Subheader = 78,
/// CompactDisc Lead-in
CompactDiscLeadIn = 79
}
///
/// Internal media format for AaruFormat
///
///
public enum AaruMediaType : uint
{
#region Generics, types 0 to 9
/// Unknown disk type
Unknown = 0,
/// Unknown magneto-optical
UnknownMO = 1,
/// Generic hard disk
GENERIC_HDD = 2,
/// Microdrive type hard disk
Microdrive = 3,
/// Zoned hard disk
Zone_HDD = 4,
/// USB flash drives
FlashDrive = 5,
/// USB flash drives
UnknownTape = 4,
#endregion Generics, types 0 to 9
#region Somewhat standard Compact Disc formats, types 10 to 39
/// Any unknown or standard violating CD
CD = 10,
/// CD Digital Audio (Red Book)
CDDA = 11,
/// CD+G (Red Book)
CDG = 12,
/// CD+EG (Red Book)
CDEG = 13,
/// CD-i (Green Book)
CDI = 14,
/// CD-ROM (Yellow Book)
CDROM = 15,
/// CD-ROM XA (Yellow Book)
CDROMXA = 16,
/// CD+ (Blue Book)
CDPLUS = 17,
/// CD-MO (Orange Book)
CDMO = 18,
/// CD-Recordable (Orange Book)
CDR = 19,
/// CD-ReWritable (Orange Book)
CDRW = 20,
/// Mount-Rainier CD-RW
CDMRW = 21,
/// Video CD (White Book)
VCD = 22,
/// Super Video CD (White Book)
SVCD = 23,
/// Photo CD (Beige Book)
PCD = 24,
/// Super Audio CD (Scarlet Book)
SACD = 25,
/// Double-Density CD-ROM (Purple Book)
DDCD = 26,
/// DD CD-R (Purple Book)
DDCDR = 27,
/// DD CD-RW (Purple Book)
DDCDRW = 28,
/// DTS audio CD (non-standard)
DTSCD = 29,
/// CD-MIDI (Red Book)
CDMIDI = 30,
/// CD-Video (ISO/IEC 61104)
CDV = 31,
/// 120mm, Phase-Change, 1298496 sectors, 512 bytes/sector, PD650, ECMA-240, ISO 15485
PD650 = 32,
/// 120mm, Write-Once, 1281856 sectors, 512 bytes/sector, PD650, ECMA-240, ISO 15485
PD650_WORM = 33,
///
/// CD-i Ready, contains a track before the first TOC track, in mode 2, and all TOC tracks are Audio. Subchannel
/// marks track as audio pause.
///
CDIREADY = 34, FMTOWNS = 35,
#endregion Somewhat standard Compact Disc formats, types 10 to 39
#region Standard DVD formats, types 40 to 50
/// DVD-ROM (applies to DVD Video and DVD Audio)
DVDROM = 40,
/// DVD-R
DVDR = 41,
/// DVD-RW
DVDRW = 42,
/// DVD+R
DVDPR = 43,
/// DVD+RW
DVDPRW = 44,
/// DVD+RW DL
DVDPRWDL = 45,
/// DVD-R DL
DVDRDL = 46,
/// DVD+R DL
DVDPRDL = 47,
/// DVD-RAM
DVDRAM = 48,
/// DVD-RW DL
DVDRWDL = 49,
/// DVD-Download
DVDDownload = 50,
#endregion Standard DVD formats, types 40 to 50
#region Standard HD-DVD formats, types 51 to 59
/// HD DVD-ROM (applies to HD DVD Video)
HDDVDROM = 51,
/// HD DVD-RAM
HDDVDRAM = 52,
/// HD DVD-R
HDDVDR = 53,
/// HD DVD-RW
HDDVDRW = 54,
/// HD DVD-R DL
HDDVDRDL = 55,
/// HD DVD-RW DL
HDDVDRWDL = 56,
#endregion Standard HD-DVD formats, types 51 to 59
#region Standard Blu-ray formats, types 60 to 69
/// BD-ROM (and BD Video)
BDROM = 60,
/// BD-R
BDR = 61,
/// BD-RE
BDRE = 62,
/// BD-R XL
BDRXL = 63,
/// BD-RE XL
BDREXL = 64,
#endregion Standard Blu-ray formats, types 60 to 69
#region Rare or uncommon optical standards, types 70 to 79
/// Enhanced Versatile Disc
EVD = 70,
/// Forward Versatile Disc
FVD = 71,
/// Holographic Versatile Disc
HVD = 72,
/// China Blue High Definition
CBHD = 73,
/// High Definition Versatile Multilayer Disc
HDVMD = 74,
/// Versatile Compact Disc High Density
VCDHD = 75,
/// Stacked Volumetric Optical Disc
SVOD = 76,
/// Five Dimensional disc
FDDVD = 77,
/// China Video Disc
CVD = 78,
#endregion Rare or uncommon optical standards, types 70 to 79
#region LaserDisc based, types 80 to 89
/// Pioneer LaserDisc
LD = 80,
/// Pioneer LaserDisc data
LDROM = 81, LDROM2 = 82, LVROM = 83, MegaLD = 84,
#endregion LaserDisc based, types 80 to 89
#region MiniDisc based, types 90 to 99
/// Sony Hi-MD
HiMD = 90,
/// Sony MiniDisc
MD = 91,
/// Sony MD-Data
MDData = 92,
/// Sony MD-Data2
MDData2 = 93,
/// Sony MiniDisc, 60 minutes, formatted with Hi-MD format
MD60 = 94,
/// Sony MiniDisc, 74 minutes, formatted with Hi-MD format
MD74 = 95,
/// Sony MiniDisc, 80 minutes, formatted with Hi-MD format
MD80 = 96,
#endregion MiniDisc based, types 90 to 99
#region Plasmon UDO, types 100 to 109
/// 5.25", Phase-Change, 1834348 sectors, 8192 bytes/sector, Ultra Density Optical, ECMA-350, ISO 17345
UDO = 100,
/// 5.25", Phase-Change, 3669724 sectors, 8192 bytes/sector, Ultra Density Optical 2, ECMA-380, ISO 11976
UDO2 = 101,
/// 5.25", Write-Once, 3668759 sectors, 8192 bytes/sector, Ultra Density Optical 2, ECMA-380, ISO 11976
UDO2_WORM = 102,
#endregion Plasmon UDO, types 100 to 109
#region Sony game media, types 110 to 129
PlayStationMemoryCard = 110, PlayStationMemoryCard2 = 111,
/// Sony PlayStation game CD
PS1CD = 112,
/// Sony PlayStation 2 game CD
PS2CD = 113,
/// Sony PlayStation 2 game DVD
PS2DVD = 114,
/// Sony PlayStation 3 game DVD
PS3DVD = 115,
/// Sony PlayStation 3 game Blu-ray
PS3BD = 116,
/// Sony PlayStation 4 game Blu-ray
PS4BD = 117,
/// Sony PlayStation Portable Universal Media Disc (ECMA-365)
UMD = 118, PlayStationVitaGameCard = 119,
#endregion Sony game media, types 110 to 129
#region Microsoft game media, types 130 to 149
/// Microsoft X-box Game Disc
XGD = 130,
/// Microsoft X-box 360 Game Disc
XGD2 = 131,
/// Microsoft X-box 360 Game Disc
XGD3 = 132,
/// Microsoft X-box One Game Disc
XGD4 = 133,
#endregion Microsoft game media, types 130 to 149
#region Sega game media, types 150 to 169
/// Sega MegaCD
MEGACD = 150,
/// Sega Saturn disc
SATURNCD = 151,
/// Sega/Yamaha Gigabyte Disc
GDROM = 152,
/// Sega/Yamaha recordable Gigabyte Disc
GDR = 153, SegaCard = 154, MilCD = 155,
#endregion Sega game media, types 150 to 169
#region Other game media, types 170 to 179
/// PC-Engine / TurboGrafx cartridge
HuCard = 170,
/// PC-Engine / TurboGrafx CD
SuperCDROM2 = 171,
/// Atari Jaguar CD
JaguarCD = 172,
/// 3DO CD
ThreeDO = 173,
/// NEC PC-FX
PCFX = 174,
/// NEO-GEO CD
NeoGeoCD = 175,
/// Commodore CDTV
CDTV = 176,
/// Amiga CD32
CD32 = 177,
/// Nuon (DVD based videogame console)
Nuon = 178,
/// Bandai Playdia
Playdia = 179,
#endregion Other game media, types 170 to 179
#region Apple standard floppy format, types 180 to 189
/// 5.25", SS, DD, 35 tracks, 13 spt, 256 bytes/sector, GCR
Apple32SS = 180,
/// 5.25", DS, DD, 35 tracks, 13 spt, 256 bytes/sector, GCR
Apple32DS = 181,
/// 5.25", SS, DD, 35 tracks, 16 spt, 256 bytes/sector, GCR
Apple33SS = 182,
/// 5.25", DS, DD, 35 tracks, 16 spt, 256 bytes/sector, GCR
Apple33DS = 183,
/// 3.5", SS, DD, 80 tracks, 8 to 12 spt, 512 bytes/sector, GCR
AppleSonySS = 184,
/// 3.5", DS, DD, 80 tracks, 8 to 12 spt, 512 bytes/sector, GCR
AppleSonyDS = 185,
/// 5.25", DS, ?D, ?? tracks, ?? spt, 512 bytes/sector, GCR, opposite side heads, aka Twiggy
AppleFileWare = 186,
#endregion Apple standard floppy format
#region IBM/Microsoft PC floppy formats, types 190 to 209
/// 5.25", SS, DD, 40 tracks, 8 spt, 512 bytes/sector, MFM
DOS_525_SS_DD_8 = 190,
/// 5.25", SS, DD, 40 tracks, 9 spt, 512 bytes/sector, MFM
DOS_525_SS_DD_9 = 191,
/// 5.25", DS, DD, 40 tracks, 8 spt, 512 bytes/sector, MFM
DOS_525_DS_DD_8 = 192,
/// 5.25", DS, DD, 40 tracks, 9 spt, 512 bytes/sector, MFM
DOS_525_DS_DD_9 = 193,
/// 5.25", DS, HD, 80 tracks, 15 spt, 512 bytes/sector, MFM
DOS_525_HD = 194,
/// 3.5", SS, DD, 80 tracks, 8 spt, 512 bytes/sector, MFM
DOS_35_SS_DD_8 = 195,
/// 3.5", SS, DD, 80 tracks, 9 spt, 512 bytes/sector, MFM
DOS_35_SS_DD_9 = 196,
/// 3.5", DS, DD, 80 tracks, 8 spt, 512 bytes/sector, MFM
DOS_35_DS_DD_8 = 197,
/// 3.5", DS, DD, 80 tracks, 9 spt, 512 bytes/sector, MFM
DOS_35_DS_DD_9 = 198,
/// 3.5", DS, HD, 80 tracks, 18 spt, 512 bytes/sector, MFM
DOS_35_HD = 199,
/// 3.5", DS, ED, 80 tracks, 36 spt, 512 bytes/sector, MFM
DOS_35_ED = 200,
/// 3.5", DS, HD, 80 tracks, 21 spt, 512 bytes/sector, MFM
DMF = 201,
/// 3.5", DS, HD, 82 tracks, 21 spt, 512 bytes/sector, MFM
DMF_82 = 202,
///
/// 5.25", DS, HD, 80 tracks, ? spt, ??? + ??? + ??? bytes/sector, MFM track 0 = ??15 sectors, 512 bytes/sector,
/// falsified to DOS as 19 spt, 512 bps
///
XDF_525 = 203,
///
/// 3.5", DS, HD, 80 tracks, 4 spt, 8192 + 2048 + 1024 + 512 bytes/sector, MFM track 0 = 19 sectors, 512
/// bytes/sector, falsified to DOS as 23 spt, 512 bps
///
XDF_35 = 204,
#endregion IBM/Microsoft PC standard floppy formats, types 190 to 209
#region IBM standard floppy formats, types 210 to 219
/// 8", SS, SD, 32 tracks, 8 spt, 319 bytes/sector, FM
IBM23FD = 210,
/// 8", SS, SD, 73 tracks, 26 spt, 128 bytes/sector, FM
IBM33FD_128 = 211,
/// 8", SS, SD, 74 tracks, 15 spt, 256 bytes/sector, FM, track 0 = 26 sectors, 128 bytes/sector
IBM33FD_256 = 212,
/// 8", SS, SD, 74 tracks, 8 spt, 512 bytes/sector, FM, track 0 = 26 sectors, 128 bytes/sector
IBM33FD_512 = 213,
/// 8", DS, SD, 74 tracks, 26 spt, 128 bytes/sector, FM, track 0 = 26 sectors, 128 bytes/sector
IBM43FD_128 = 214,
/// 8", DS, SD, 74 tracks, 26 spt, 256 bytes/sector, FM, track 0 = 26 sectors, 128 bytes/sector
IBM43FD_256 = 215,
///
/// 8", DS, DD, 74 tracks, 26 spt, 256 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
///
IBM53FD_256 = 216,
///
/// 8", DS, DD, 74 tracks, 15 spt, 512 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
///
IBM53FD_512 = 217,
///
/// 8", DS, DD, 74 tracks, 8 spt, 1024 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
///
IBM53FD_1024 = 218,
#endregion IBM standard floppy formats, types 210 to 219
#region DEC standard floppy formats, types 220 to 229
/// 8", SS, DD, 77 tracks, 26 spt, 128 bytes/sector, FM
RX01 = 220,
/// 8", SS, DD, 77 tracks, 26 spt, 256 bytes/sector, FM/MFM
RX02 = 221,
/// 8", DS, DD, 77 tracks, 26 spt, 256 bytes/sector, FM/MFM
RX03 = 222,
/// 5.25", SS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM
RX50 = 223,
#endregion DEC standard floppy formats, types 220 to 229
#region Acorn standard floppy formats, types 230 to 239
/// 5,25", SS, SD, 40 tracks, 10 spt, 256 bytes/sector, FM
ACORN_525_SS_SD_40 = 230,
/// 5,25", SS, SD, 80 tracks, 10 spt, 256 bytes/sector, FM
ACORN_525_SS_SD_80 = 231,
/// 5,25", SS, DD, 40 tracks, 16 spt, 256 bytes/sector, MFM
ACORN_525_SS_DD_40 = 232,
/// 5,25", SS, DD, 80 tracks, 16 spt, 256 bytes/sector, MFM
ACORN_525_SS_DD_80 = 233,
/// 5,25", DS, DD, 80 tracks, 16 spt, 256 bytes/sector, MFM
ACORN_525_DS_DD = 234,
/// 3,5", DS, DD, 80 tracks, 5 spt, 1024 bytes/sector, MFM
ACORN_35_DS_DD = 235,
/// 3,5", DS, HD, 80 tracks, 10 spt, 1024 bytes/sector, MFM
ACORN_35_DS_HD = 236,
#endregion Acorn standard floppy formats, types 230 to 239
#region Atari standard floppy formats, types 240 to 249
/// 5,25", SS, SD, 40 tracks, 18 spt, 128 bytes/sector, FM
ATARI_525_SD = 240,
/// 5,25", SS, ED, 40 tracks, 26 spt, 128 bytes/sector, MFM
ATARI_525_ED = 241,
/// 5,25", SS, DD, 40 tracks, 18 spt, 256 bytes/sector, MFM
ATARI_525_DD = 242,
/// 3,5", SS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM
ATARI_35_SS_DD = 243,
/// 3,5", DS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM
ATARI_35_DS_DD = 244,
/// 3,5", SS, DD, 80 tracks, 11 spt, 512 bytes/sector, MFM
ATARI_35_SS_DD_11 = 245,
/// 3,5", DS, DD, 80 tracks, 11 spt, 512 bytes/sector, MFM
ATARI_35_DS_DD_11 = 246,
#endregion Atari standard floppy formats, types 240 to 249
#region Commodore standard floppy formats, types 250 to 259
/// 3,5", DS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM (1581)
CBM_35_DD = 250,
/// 3,5", DS, DD, 80 tracks, 11 spt, 512 bytes/sector, MFM (Amiga)
CBM_AMIGA_35_DD = 251,
/// 3,5", DS, HD, 80 tracks, 22 spt, 512 bytes/sector, MFM (Amiga)
CBM_AMIGA_35_HD = 252,
/// 5,25", SS, DD, 35 tracks, GCR
CBM_1540 = 253,
/// 5,25", SS, DD, 40 tracks, GCR
CBM_1540_Ext = 254,
/// 5,25", DS, DD, 35 tracks, GCR
CBM_1571 = 255,
#endregion Commodore standard floppy formats, types 250 to 259
#region NEC/SHARP standard floppy formats, types 260 to 269
/// 8", DS, SD, 77 tracks, 26 spt, 128 bytes/sector, FM
NEC_8_SD = 260,
/// 8", DS, DD, 77 tracks, 26 spt, 256 bytes/sector, MFM
NEC_8_DD = 261,
/// 5.25", SS, SD, 80 tracks, 16 spt, 256 bytes/sector, FM
NEC_525_SS = 262,
/// 5.25", DS, SD, 80 tracks, 16 spt, 256 bytes/sector, MFM
NEC_525_DS = 263,
/// 5,25", DS, HD, 77 tracks, 8 spt, 1024 bytes/sector, MFM
NEC_525_HD = 264,
/// 3,5", DS, HD, 77 tracks, 8 spt, 1024 bytes/sector, MFM, aka mode 3
NEC_35_HD_8 = 265,
/// 3,5", DS, HD, 80 tracks, 15 spt, 512 bytes/sector, MFM
NEC_35_HD_15 = 266,
/// 3,5", DS, TD, 240 tracks, 38 spt, 512 bytes/sector, MFM
NEC_35_TD = 267,
/// 5,25", DS, HD, 77 tracks, 8 spt, 1024 bytes/sector, MFM
SHARP_525 = NEC_525_HD,
/// 3,5", DS, HD, 80 tracks, 9 spt, 1024 bytes/sector, MFM
SHARP_525_9 = 268,
/// 3,5", DS, HD, 77 tracks, 8 spt, 1024 bytes/sector, MFM
SHARP_35 = NEC_35_HD_8,
/// 3,5", DS, HD, 80 tracks, 9 spt, 1024 bytes/sector, MFM
SHARP_35_9 = 269,
#endregion NEC/SHARP standard floppy formats, types 260 to 269
#region ECMA floppy standards, types 270 to 289
///
/// 5,25", DS, DD, 80 tracks, 8 spt, 1024 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track
/// 0 side 1 = 26 sectors, 256 bytes/sector
///
ECMA_99_8 = 270,
///
/// 5,25", DS, DD, 77 tracks, 15 spt, 512 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track
/// 0 side 1 = 26 sectors, 256 bytes/sector
///
ECMA_99_15 = 271,
///
/// 5,25", DS, DD, 77 tracks, 26 spt, 256 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track
/// 0 side 1 = 26 sectors, 256 bytes/sector
///
ECMA_99_26 = 272,
/// 3,5", DS, DD, 80 tracks, 9 spt, 512 bytes/sector, MFM
ECMA_100 = DOS_35_DS_DD_9,
/// 3,5", DS, HD, 80 tracks, 18 spt, 512 bytes/sector, MFM
ECMA_125 = DOS_35_HD,
/// 3,5", DS, ED, 80 tracks, 36 spt, 512 bytes/sector, MFM
ECMA_147 = DOS_35_ED,
/// 8", SS, SD, 77 tracks, 26 spt, 128 bytes/sector, FM
ECMA_54 = 273,
/// 8", DS, SD, 77 tracks, 26 spt, 128 bytes/sector, FM
ECMA_59 = 274,
/// 5,25", SS, DD, 35 tracks, 9 spt, 256 bytes/sector, FM, track 0 side 0 = 16 sectors, 128 bytes/sector
ECMA_66 = 275,
///
/// 8", DS, DD, 77 tracks, 8 spt, 1024 bytes/sector, FM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
///
ECMA_69_8 = 276,
///
/// 8", DS, DD, 77 tracks, 15 spt, 512 bytes/sector, FM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
///
ECMA_69_15 = 277,
///
/// 8", DS, DD, 77 tracks, 26 spt, 256 bytes/sector, FM, track 0 side 0 = 26 sectors, 128 bytes/sector, track 0
/// side 1 = 26 sectors, 256 bytes/sector
///
ECMA_69_26 = 278,
///
/// 5,25", DS, DD, 40 tracks, 16 spt, 256 bytes/sector, FM, track 0 side 0 = 16 sectors, 128 bytes/sector, track 0
/// side 1 = 16 sectors, 256 bytes/sector
///
ECMA_70 = 279,
///
/// 5,25", DS, DD, 80 tracks, 16 spt, 256 bytes/sector, FM, track 0 side 0 = 16 sectors, 128 bytes/sector, track 0
/// side 1 = 16 sectors, 256 bytes/sector
///
ECMA_78 = 280,
/// 5,25", DS, DD, 80 tracks, 9 spt, 512 bytes/sector, FM
ECMA_78_2 = 281,
#endregion ECMA floppy standards, types 270 to 289
#region Non-standard PC formats (FDFORMAT, 2M, etc), types 290 to 308
/// 5,25", DS, DD, 82 tracks, 10 spt, 512 bytes/sector, MFM
FDFORMAT_525_DD = 290,
/// 5,25", DS, HD, 82 tracks, 17 spt, 512 bytes/sector, MFM
FDFORMAT_525_HD = 291,
/// 3,5", DS, DD, 82 tracks, 10 spt, 512 bytes/sector, MFM
FDFORMAT_35_DD = 292,
/// 3,5", DS, HD, 82 tracks, 21 spt, 512 bytes/sector, MFM
FDFORMAT_35_HD = 293,
#endregion Non-standard PC formats (FDFORMAT, 2M, etc), types 290 to 308
#region Apricot ACT standard floppy formats, type 309
/// 3.5", DS, DD, 70 tracks, 9 spt, 512 bytes/sector, MFM
Apricot_35 = 309,
#endregion Apricot ACT standard floppy formats, type 309
#region OnStream ADR, types 310 to 319
ADR2120 = 310, ADR260 = 311, ADR30 = 312,
ADR50 = 313,
#endregion OnStream ADR, types 310 to 319
#region Advanced Intelligent Tape, types 320 to 339
AIT1 = 320, AIT1Turbo = 321, AIT2 = 322,
AIT2Turbo = 323, AIT3 = 324, AIT3Ex = 325,
AIT3Turbo = 326, AIT4 = 327, AIT5 = 328,
AITETurbo = 329, SAIT1 = 330, SAIT2 = 331,
#endregion Advanced Intelligent Tape, types 320 to 339
#region Iomega, types 340 to 359
/// Obsolete type for 8"x11" Bernoulli Box disk
[Obsolete]
Bernoulli = 340,
/// Obsolete type for 5⅓" Bernoulli Box II disks
[Obsolete]
Bernoulli2 = 341, Ditto = 342, DittoMax = 343, Jaz = 344,
Jaz2 = 345, PocketZip = 346, REV120 = 347,
REV35 = 348, REV70 = 349, ZIP100 = 350,
ZIP250 = 351, ZIP750 = 352,
/// 5⅓" Bernoulli Box II disk with 35Mb capacity
Bernoulli35 = 353,
/// 5⅓" Bernoulli Box II disk with 44Mb capacity
Bernoulli44 = 354,
/// 5⅓" Bernoulli Box II disk with 65Mb capacity
Bernoulli65 = 355,
/// 5⅓" Bernoulli Box II disk with 90Mb capacity
Bernoulli90 = 356,
/// 5⅓" Bernoulli Box II disk with 105Mb capacity
Bernoulli105 = 357,
/// 5⅓" Bernoulli Box II disk with 150Mb capacity
Bernoulli150 = 358,
/// 5⅓" Bernoulli Box II disk with 230Mb capacity
Bernoulli230 = 359,
#endregion Iomega, types 340 to 359
#region Audio or video media, types 360 to 369
CompactCassette = 360, Data8 = 361, MiniDV = 362,
/// D/CAS-25: Digital data on Compact Cassette form factor, special magnetic media, 9-track
Dcas25 = 363,
/// D/CAS-85: Digital data on Compact Cassette form factor, special magnetic media, 17-track
Dcas85 = 364,
/// D/CAS-103: Digital data on Compact Cassette form factor, special magnetic media, 21-track
Dcas103 = 365,
#endregion Audio media, types 360 to 369
#region CompactFlash Association, types 370 to 379
CFast = 370, CompactFlash = 371, CompactFlashType2 = 372,
#endregion CompactFlash Association, types 370 to 379
#region Digital Audio Tape / Digital Data Storage, types 380 to 389
DigitalAudioTape = 380, DAT160 = 381, DAT320 = 382,
DAT72 = 383, DDS1 = 384, DDS2 = 385,
DDS3 = 386, DDS4 = 387,
#endregion Digital Audio Tape / Digital Data Storage, types 380 to 389
#region DEC, types 390 to 399
CompactTapeI = 390, CompactTapeII = 391, DECtapeII = 392,
DLTtapeIII = 393, DLTtapeIIIxt = 394, DLTtapeIV = 395,
DLTtapeS4 = 396, SDLT1 = 397, SDLT2 = 398,
VStapeI = 399,
#endregion DEC, types 390 to 399
#region Exatape, types 400 to 419
Exatape15m = 400, Exatape22m = 401, Exatape22mAME = 402,
Exatape28m = 403, Exatape40m = 404, Exatape45m = 405,
Exatape54m = 406, Exatape75m = 407, Exatape76m = 408,
Exatape80m = 409, Exatape106m = 410, Exatape160mXL = 411,
Exatape112m = 412, Exatape125m = 413, Exatape150m = 414,
Exatape170m = 415, Exatape225m = 416,
#endregion Exatape, types 400 to 419
#region PCMCIA / ExpressCard, types 420 to 429
ExpressCard34 = 420, ExpressCard54 = 421, PCCardTypeI = 422,
PCCardTypeII = 423, PCCardTypeIII = 424, PCCardTypeIV = 425,
#endregion PCMCIA / ExpressCard, types 420 to 429
#region SyQuest, types 430 to 449
/// SyQuest 135Mb cartridge for use in EZ135 and EZFlyer drives
EZ135 = 430,
/// SyQuest EZFlyer 230Mb cartridge for use in EZFlyer drive
EZ230 = 431,
/// SyQuest 4.7Gb for use in Quest drive
Quest = 432,
/// SyQuest SparQ 1Gb cartridge
SparQ = 433,
/// SyQuest 5Mb cartridge for SQ306RD drive
SQ100 = 434,
/// SyQuest 10Mb cartridge for SQ312RD drive
SQ200 = 435,
/// SyQuest 15Mb cartridge for SQ319RD drive
SQ300 = 436,
/// SyQuest 105Mb cartridge for SQ3105 and SQ3270 drives
SQ310 = 437,
/// SyQuest 270Mb cartridge for SQ3270 drive
SQ327 = 438,
/// SyQuest 44Mb cartridge for SQ555, SQ5110 and SQ5200C/SQ200 drives
SQ400 = 439,
/// SyQuest 88Mb cartridge for SQ5110 and SQ5200C/SQ200 drives
SQ800 = 440,
/// SyQuest 1.5Gb cartridge for SyJet drive
[Obsolete]
SQ1500 = 441,
/// SyQuest 200Mb cartridge for use in SQ5200C drive
SQ2000 = 442,
/// SyQuest 1.5Gb cartridge for SyJet drive
SyJet = 443,
#endregion SyQuest, types 430 to 449
#region Nintendo, types 450 to 469
FamicomGamePak = 450, GameBoyAdvanceGamePak = 451, GameBoyGamePak = 452,
/// Nintendo GameCube Optical Disc
GOD = 453, N64DD = 454, N64GamePak = 455, NESGamePak = 456,
Nintendo3DSGameCard = 457, NintendoDiskCard = 458, NintendoDSGameCard = 459,
NintendoDSiGameCard = 460, SNESGamePak = 461, SNESGamePakUS = 462,
/// Nintendo Wii Optical Disc
WOD = 463,
/// Nintendo Wii U Optical Disc
WUOD = 464, SwitchGameCard = 465,
#endregion Nintendo, types 450 to 469
#region IBM Tapes, types 470 to 479
IBM3470 = 470, IBM3480 = 471, IBM3490 = 472,
IBM3490E = 473, IBM3592 = 474,
#endregion IBM Tapes, types 470 to 479
#region LTO Ultrium, types 480 to 509
LTO = 480, LTO2 = 481, LTO3 = 482,
LTO3WORM = 483, LTO4 = 484, LTO4WORM = 485,
LTO5 = 486, LTO5WORM = 487, LTO6 = 488,
LTO6WORM = 489, LTO7 = 490, LTO7WORM = 491,
#endregion LTO Ultrium, types 480 to 509
#region MemoryStick, types 510 to 519
MemoryStick = 510, MemoryStickDuo = 511, MemoryStickMicro = 512,
MemoryStickPro = 513, MemoryStickProDuo = 514,
#endregion MemoryStick, types 510 to 519
#region SecureDigital, types 520 to 529
microSD = 520, miniSD = 521, SecureDigital = 522,
#endregion SecureDigital, types 520 to 529
#region MultiMediaCard, types 530 to 539
MMC = 530, MMCmicro = 531, RSMMC = 532,
MMCplus = 533, MMCmobile = 534,
#endregion MultiMediaCard, types 530 to 539
#region SLR, types 540 to 569
MLR1 = 540, MLR1SL = 541, MLR3 = 542,
SLR1 = 543, SLR2 = 544, SLR3 = 545,
SLR32 = 546, SLR32SL = 547, SLR4 = 548,
SLR5 = 549, SLR5SL = 550, SLR6 = 551,
SLRtape7 = 552, SLRtape7SL = 553, SLRtape24 = 554,
SLRtape24SL = 555, SLRtape40 = 556, SLRtape50 = 557,
SLRtape60 = 558, SLRtape75 = 559, SLRtape100 = 560,
SLRtape140 = 561,
#endregion SLR, types 540 to 569
#region QIC, types 570 to 589
QIC11 = 570, QIC120 = 571, QIC1350 = 572,
QIC150 = 573, QIC24 = 574, QIC3010 = 575,
QIC3020 = 576, QIC3080 = 577, QIC3095 = 578,
QIC320 = 579, QIC40 = 580, QIC525 = 581,
QIC80 = 582,
#endregion QIC, types 570 to 589
#region StorageTek tapes, types 590 to 609
STK4480 = 590, STK4490 = 591, STK9490 = 592,
T9840A = 593, T9840B = 594, T9840C = 595,
T9840D = 596, T9940A = 597, T9940B = 598,
T10000A = 599, T10000B = 600, T10000C = 601,
T10000D = 602,
#endregion StorageTek tapes, types 590 to 609
#region Travan, types 610 to 619
Travan = 610, Travan1Ex = 611, Travan3 = 612,
Travan3Ex = 613, Travan4 = 614, Travan5 = 615,
Travan7 = 616,
#endregion Travan, types 610 to 619
#region VXA, types 620 to 629
VXA1 = 620, VXA2 = 621, VXA3 = 622,
#endregion VXA, types 620 to 629
#region Magneto-optical, types 630 to 659
/// 5,25", M.O., WORM, 650Mb, 318750 sectors, 1024 bytes/sector, ECMA-153, ISO 11560
ECMA_153 = 630,
/// 5,25", M.O., WORM, 600Mb, 581250 sectors, 512 bytes/sector, ECMA-153, ISO 11560
ECMA_153_512 = 631,
/// 3,5", M.O., RW, 128Mb, 248826 sectors, 512 bytes/sector, ECMA-154, ISO 10090
ECMA_154 = 632,
/// 5,25", M.O., RW/WORM, 1Gb, 904995 sectors, 512 bytes/sector, ECMA-183, ISO 13481
ECMA_183_512 = 633,
/// 5,25", M.O., RW/WORM, 1Gb, 498526 sectors, 1024 bytes/sector, ECMA-183, ISO 13481
ECMA_183 = 634,
/// 5,25", M.O., RW/WORM, 1.2Gb, 1165600 sectors, 512 bytes/sector, ECMA-184, ISO 13549
ECMA_184_512 = 635,
/// 5,25", M.O., RW/WORM, 1.3Gb, 639200 sectors, 1024 bytes/sector, ECMA-184, ISO 13549
ECMA_184 = 636,
/// 300mm, M.O., WORM, ??? sectors, 1024 bytes/sector, ECMA-189, ISO 13614
ECMA_189 = 637,
/// 300mm, M.O., WORM, ??? sectors, 1024 bytes/sector, ECMA-190, ISO 13403
ECMA_190 = 638,
/// 5,25", M.O., RW/WORM, 936921 or 948770 sectors, 1024 bytes/sector, ECMA-195, ISO 13842
ECMA_195 = 639,
/// 5,25", M.O., RW/WORM, 1644581 or 1647371 sectors, 512 bytes/sector, ECMA-195, ISO 13842
ECMA_195_512 = 640,
/// 3,5", M.O., 446325 sectors, 512 bytes/sector, ECMA-201, ISO 13963
ECMA_201 = 641,
/// 3,5", M.O., 429975 sectors, 512 bytes/sector, embossed, ISO 13963
ECMA_201_ROM = 642,
/// 3,5", M.O., 371371 sectors, 1024 bytes/sector, ECMA-223
ECMA_223 = 643,
/// 3,5", M.O., 694929 sectors, 512 bytes/sector, ECMA-223
ECMA_223_512 = 644,
/// 5,25", M.O., 1244621 sectors, 1024 bytes/sector, ECMA-238, ISO 15486
ECMA_238 = 645,
/// 3,5", M.O., 310352, 320332 or 321100 sectors, 2048 bytes/sector, ECMA-239, ISO 15498
ECMA_239 = 646,
/// 356mm, M.O., 14476734 sectors, 1024 bytes/sector, ECMA-260, ISO 15898
ECMA_260 = 647,
/// 356mm, M.O., 24445990 sectors, 1024 bytes/sector, ECMA-260, ISO 15898
ECMA_260_Double = 648,
/// 5,25", M.O., 1128134 sectors, 2048 bytes/sector, ECMA-280, ISO 18093
ECMA_280 = 649,
/// 300mm, M.O., 7355716 sectors, 2048 bytes/sector, ECMA-317, ISO 20162
ECMA_317 = 650,
/// 5,25", M.O., 1095840 sectors, 4096 bytes/sector, ECMA-322, ISO 22092
ECMA_322 = 651,
/// 5,25", M.O., 2043664 sectors, 2048 bytes/sector, ECMA-322, ISO 22092
ECMA_322_2k = 652,
/// 3,5", M.O., 605846 sectors, 2048 bytes/sector, Cherry Book, GigaMo, ECMA-351, ISO 17346
GigaMo = 653,
/// 3,5", M.O., 1063146 sectors, 2048 bytes/sector, Cherry Book 2, GigaMo 2, ECMA-353, ISO 22533
GigaMo2 = 654,
#endregion Magneto-optical, types 630 to 659
#region Other floppy standards, types 660 to 689
CompactFloppy = 660, DemiDiskette = 661,
/// 3.5", 652 tracks, 2 sides, 512 bytes/sector, Floptical, ECMA-207, ISO 14169
Floptical = 662, HiFD = 663, QuickDisk = 664, UHD144 = 665,
VideoFloppy = 666, Wafer = 667, ZXMicrodrive = 668,
#endregion Other floppy standards, types 660 to 669
#region Miscellaneous, types 670 to 689
BeeCard = 670, Borsu = 671, DataStore = 672,
DIR = 673, DST = 674, DTF = 675,
DTF2 = 676, Flextra3020 = 677, Flextra3225 = 678,
HiTC1 = 679, HiTC2 = 680, LT1 = 681,
MiniCard = 872, Orb = 683, Orb5 = 684,
SmartMedia = 685, xD = 686, XQD = 687,
DataPlay = 688,
#endregion Miscellaneous, types 670 to 689
#region Apple specific media, types 690 to 699
AppleProfile = 690, AppleWidget = 691, AppleHD20 = 692,
PriamDataTower = 693, Pippin = 694,
#endregion Apple specific media, types 690 to 699
#region DEC hard disks, types 700 to 729
///
/// 2382 cylinders, 4 tracks/cylinder, 42 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 204890112 bytes
///
RA60 = 700,
///
/// 546 cylinders, 14 tracks/cylinder, 31 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 121325568 bytes
///
RA80 = 701,
///
/// 1248 cylinders, 14 tracks/cylinder, 51 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 456228864 bytes
///
RA81 = 702,
///
/// 302 cylinders, 4 tracks/cylinder, 42 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 25976832
/// bytes
///
RC25 = 703,
///
/// 615 cylinders, 4 tracks/cylinder, 17 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 21411840
/// bytes
///
RD31 = 704,
///
/// 820 cylinders, 6 tracks/cylinder, 17 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 42823680
/// bytes
///
RD32 = 705,
///
/// 306 cylinders, 4 tracks/cylinder, 17 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 10653696
/// bytes
///
RD51 = 706,
///
/// 480 cylinders, 7 tracks/cylinder, 18 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 30965760
/// bytes
///
RD52 = 707,
///
/// 1024 cylinders, 7 tracks/cylinder, 18 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 75497472 bytes
///
RD53 = 708,
///
/// 1225 cylinders, 8 tracks/cylinder, 18 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 159936000 bytes
///
RD54 = 709,
///
/// 411 cylinders, 3 tracks/cylinder, 22 sectors/track, 256 words/sector, 16 bits/word, 512 bytes/sector, 13888512
/// bytes
///
RK06 = 710,
///
/// 411 cylinders, 3 tracks/cylinder, 20 sectors/track, 256 words/sector, 18 bits/word, 576 bytes/sector, 14204160
/// bytes
///
RK06_18 = 711,
///
/// 815 cylinders, 3 tracks/cylinder, 22 sectors/track, 256 words/sector, 16 bits/word, 512 bytes/sector, 27540480
/// bytes
///
RK07 = 712,
///
/// 815 cylinders, 3 tracks/cylinder, 20 sectors/track, 256 words/sector, 18 bits/word, 576 bytes/sector, 28166400
/// bytes
///
RK07_18 = 713,
///
/// 823 cylinders, 5 tracks/cylinder, 32 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 67420160
/// bytes
///
RM02 = 714,
///
/// 823 cylinders, 5 tracks/cylinder, 32 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, 67420160
/// bytes
///
RM03 = 715,
///
/// 823 cylinders, 19 tracks/cylinder, 32 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 256196608 bytes
///
RM05 = 716,
///
/// 203 cylinders, 10 tracks/cylinder, 22 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 22865920 bytes
///
RP02 = 717,
///
/// 203 cylinders, 10 tracks/cylinder, 20 sectors/track, 128 words/sector, 36 bits/word, 576 bytes/sector,
/// 23385600 bytes
///
RP02_18 = 718,
///
/// 400 cylinders, 10 tracks/cylinder, 22 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 45056000 bytes
///
RP03 = 719,
///
/// 400 cylinders, 10 tracks/cylinder, 20 sectors/track, 128 words/sector, 36 bits/word, 576 bytes/sector,
/// 46080000 bytes
///
RP03_18 = 720,
///
/// 411 cylinders, 19 tracks/cylinder, 22 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 87960576 bytes
///
RP04 = 721,
///
/// 411 cylinders, 19 tracks/cylinder, 20 sectors/track, 128 words/sector, 36 bits/word, 576 bytes/sector,
/// 89959680 bytes
///
RP04_18 = 722,
///
/// 411 cylinders, 19 tracks/cylinder, 22 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 87960576 bytes
///
RP05 = 723,
///
/// 411 cylinders, 19 tracks/cylinder, 20 sectors/track, 128 words/sector, 36 bits/word, 576 bytes/sector,
/// 89959680 bytes
///
RP05_18 = 724,
///
/// 815 cylinders, 19 tracks/cylinder, 22 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector,
/// 174423040 bytes
///
RP06 = 725,
///
/// 815 cylinders, 19 tracks/cylinder, 20 sectors/track, 128 words/sector, 36 bits/word, 576 bytes/sector,
/// 178387200 bytes
///
RP06_18 = 726,
#endregion DEC hard disks, types 700 to 729
#region Imation, types 730 to 739
LS120 = 730, LS240 = 731, FD32MB = 732,
RDX = 733,
/// Imation 320Gb RDX
RDX320 = 734,
#endregion Imation, types 730 to 739
#region VideoNow, types 740 to 749
VideoNow = 740, VideoNowColor = 741, VideoNowXp = 742,
#endregion
#region Iomega, types 750 to 759
/// 8"x11" Bernoulli Box disk with 10Mb capacity
Bernoulli10 = 750,
/// 8"x11" Bernoulli Box disk with 20Mb capacity
Bernoulli20 = 751,
/// 5⅓" Bernoulli Box II disk with 20Mb capacity
BernoulliBox2_20 = 752,
#endregion Iomega, types 750 to 759
#region Kodak, types 760 to 769
KodakVerbatim3 = 760, KodakVerbatim6 = 761, KodakVerbatim12 = 762,
#endregion Kodak, types 760 to 769
#region Sony and Panasonic Blu-ray derived, types 770 to 799
/// Professional Disc for video, single layer, rewritable, 23Gb
ProfessionalDisc = 770,
/// Professional Disc for video, dual layer, rewritable, 50Gb
ProfessionalDiscDual = 771,
/// Professional Disc for video, triple layer, rewritable, 100Gb
ProfessionalDiscTriple = 772,
/// Professional Disc for video, quad layer, write once, 128Gb
ProfessionalDiscQuad = 773,
/// Professional Disc for DATA, single layer, rewritable, 23Gb
PDD = 774,
/// Professional Disc for DATA, single layer, write once, 23Gb
PDD_WORM = 775,
/// Archival Disc, 1st gen., 300Gb
ArchivalDisc = 776,
/// Archival Disc, 2nd gen., 500Gb
ArchivalDisc2 = 777,
/// Archival Disc, 3rd gen., 1Tb
ArchivalDisc3 = 778,
/// Optical Disc archive, 1st gen., write once, 300Gb
ODC300R = 779,
/// Optical Disc archive, 1st gen., rewritable, 300Gb
ODC300RE = 780,
/// Optical Disc archive, 2nd gen., write once, 600Gb
ODC600R = 781,
/// Optical Disc archive, 2nd gen., rewritable, 600Gb
ODC600RE = 782,
/// Optical Disc archive, 3rd gen., rewritable, 1200Gb
ODC1200RE = 783,
/// Optical Disc archive, 3rd gen., write once, 1500Gb
ODC1500R = 784,
/// Optical Disc archive, 4th gen., write once, 3300Gb
ODC3300R = 785,
/// Optical Disc archive, 5th gen., write once, 5500Gb
ODC5500R = 786
#endregion Sony and Panasonic Blu-ray derived, types 770 to 799
}
///
/// Compression being used in CHD
///
public enum CHDCompression : uint
{
CHDCOMPRESSION_NONE = 0,
CHDCOMPRESSION_ZLIB = 1,
CHDCOMPRESSION_ZLIB_PLUS = 2,
CHDCOMPRESSION_AV = 3,
}
///
/// Availible CHD codec formats
///
public enum CHD_CODEC : uint
{
NONE = 0,
#region General Codecs
ZLIB = 0x7a6c6962, // zlib
LZMA = 0x6c7a6d61, // lzma
HUFFMAN = 0x68756666, // huff
FLAC = 0x666c6163, // flac
#endregion
#region General Codecs with CD Frontend
CD_ZLIB = 0x63647a6c, // cdzl
CD_LZMA = 0x63646c7a, // cdlz
CD_FLAC = 0x6364666c, // cdfl
#endregion
#region A/V Codecs
AVHUFF = 0x61766875, // avhu
#endregion
#region Pseudo-Codecs Returned by hunk_info
SELF = 1, // copy of another hunk
PARENT = 2, // copy of a parent's hunk
MINI = 3, // legacy "mini" 8-byte repeat
#endregion
}
///
/// Compression method based on flag
///
public enum CompressionMethod : ushort
{
Stored = 0,
Shrunk = 1,
ReducedCompressionFactor1 = 2,
ReducedCompressionFactor2 = 3,
ReducedCompressionFactor3 = 4,
ReducedCompressionFactor4 = 5,
Imploded = 6,
Tokenizing = 7,
Deflated = 8,
Delfate64 = 9,
PKWAREDataCompressionLibrary = 10,
Type11 = 11, // Reserved and unused (SHOULD NOT BE USED)
BZIP2 = 12,
Type13 = 13, // Reserved and unused (SHOULD NOT BE USED)
LZMA = 14,
Type15 = 15, // Reserved and unused (SHOULD NOT BE USED)
Type16 = 16, // Reserved and unused (SHOULD NOT BE USED)
Type17 = 17, // Reserved and unused (SHOULD NOT BE USED)
IBMTERSE = 18,
IBMLZ77 = 19,
WavPak = 97,
PPMdVersionIRev1 = 98,
}
///
/// Type of file that is being looked at
///
public enum FileType
{
// Singleton
None = 0,
AaruFormat,
CHD,
// Can contain children
Folder,
SevenZipArchive,
GZipArchive,
LRZipArchive,
LZ4Archive,
RarArchive,
TapeArchive,
XZArchive,
ZipArchive,
ZPAQArchive,
ZstdArchive,
}
///
/// Output format for rebuilt files
///
public enum OutputFormat
{
// Currently implemented
Folder,
ParentFolder,
TorrentZip,
TorrentGzip,
TorrentGzipRomba,
TorrentXZ,
TorrentXZRomba,
TapeArchive,
// Currently unimplemented fully
Torrent7Zip,
TorrentRar,
TorrentLRZip,
TorrentLZ4,
TorrentZstd,
TorrentZPAQ,
}
#endregion
#region Reports
///
/// Determine which format to output Stats to
///
[Flags]
public enum StatReportFormat
{
///
/// Only output to the console
///
None = 0x00,
///
/// Console-formatted
///
Textfile = 1 << 0,
///
/// ClrMamePro HTML
///
HTML = 1 << 1,
///
/// Comma-Separated Values (Standardized)
///
CSV = 1 << 2,
///
/// Semicolon-Separated Values (Standardized)
///
SSV = 1 << 3,
///
/// Tab-Separated Values (Standardized)
///
TSV = 1 << 4,
All = Int32.MaxValue,
}
#endregion
}