Formats cleanup before adding more

This commit is contained in:
Matt Nadareski
2019-05-06 10:52:07 -07:00
parent b4f0f7f4b3
commit 6f0ea2de3e
14 changed files with 386 additions and 167 deletions

View File

@@ -36,7 +36,7 @@ namespace DICUI
return cd;
case MediaType.DVD:
case MediaType.HDDVD:
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
case MediaType.NintendoWiiOpticalDisc:
return dvd;
case MediaType.BluRay:

View File

@@ -84,7 +84,7 @@ namespace DICUI
return PreferredDumpSpeedCD;
case MediaType.DVD:
case MediaType.HDDVD:
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
case MediaType.NintendoWiiOpticalDisc:
return PreferredDumpSpeedDVD;
case MediaType.BluRay:

View File

@@ -301,9 +301,11 @@ namespace DICUI.Forms.Windows
.ToList()
);
List<KnownSystemComboBoxItem> comboBoxItems = new List<KnownSystemComboBoxItem>();
comboBoxItems.Add(new KnownSystemComboBoxItem(KnownSystem.NONE));
// Initialize with the NONE system first so it appears on top
List<KnownSystemComboBoxItem> comboBoxItems = new List<KnownSystemComboBoxItem>
{
new KnownSystemComboBoxItem(KnownSystem.NONE)
};
foreach (var group in mapping)
{
@@ -538,7 +540,7 @@ namespace DICUI.Forms.Windows
private void GetOutputNames()
{
Drive drive = DriveLetterComboBox.SelectedItem as Drive;
KnownSystem? systemType = SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem;
//KnownSystem? systemType = SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem; // TODO: Add system as part of the output path
MediaType? mediaType = MediaTypeComboBox.SelectedItem as MediaType?;
OutputDirectoryTextBox.Text = Path.Combine(_options.DefaultOutputPath, drive?.VolumeLabel ?? string.Empty);
@@ -595,7 +597,7 @@ namespace DICUI.Forms.Windows
break;
case MediaType.DVD:
case MediaType.HDDVD:
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
case MediaType.NintendoWiiOpticalDisc:
preferred = _options.PreferredDumpSpeedDVD;
break;
@@ -625,8 +627,7 @@ namespace DICUI.Forms.Windows
private void CacheCurrentDiscType()
{
// Get the drive letter from the selected item
Drive drive = DriveLetterComboBox.SelectedItem as Drive;
if (drive == null || drive.IsFloppy)
if (!(DriveLetterComboBox.SelectedItem is Drive drive) || drive.IsFloppy)
return;
// Get the current optical disc type

View File

@@ -75,6 +75,11 @@
BandaiApplePippin,
CommodoreAmigaCD32,
CommodoreAmigaCDTV,
FujitsuFMTownsMarty,
HasbroVideoNow,
HasbroVideoNowColor,
HasbroVideoNowJr,
HasbroVideoNowXP,
MattelHyperscan,
MicrosoftXBOX,
MicrosoftXBOX360,
@@ -95,6 +100,7 @@
SonyPlayStation3,
SonyPlayStation4,
SonyPlayStationPortable,
TandyMemorexVisualInformationSystem,
VMLabsNuon,
VTechVFlashVSmilePro,
ZAPiTGamesGameWaveFamilyEntertainmentSystem,
@@ -107,7 +113,7 @@
AcornArchimedes,
AppleMacintosh,
CommodoreAmigaCD,
CommodoreAmiga,
FujitsuFMTowns,
IBMPCCompatible,
NECPC88,
@@ -143,7 +149,6 @@
KonamiTwinkle,
KonamiVarious,
MeritIndustriesBoardwalk,
MeritIndustriesMegaTouchAurora,
MeritIndustriesMegaTouchForce,
MeritIndustriesMegaTouchION,
MeritIndustriesMegaTouchMaxx,
@@ -173,7 +178,6 @@
SegaSystem32,
SeibuCATSSystem,
TABAustriaQuizard,
TandyMemorexVisualInformationSystem,
TsunamiTsuMoMultiGameMotionSystem,
MarkerArcadeEnd,
@@ -186,12 +190,6 @@
BDVideo,
DVDVideo,
EnhancedCD,
EnhancedDVD,
EnhancedBD,
HasbroVideoNow,
HasbroVideoNowColor,
HasbroVideoNowJr,
HasbroVideoNowXP,
HDDVDVideo,
PalmOS,
PhilipsCDiDigitalVideo,
@@ -261,7 +259,7 @@
LaserDisc, // LD-ROM and LV-ROM variants
Nintendo64DD,
NintendoFamicomDiskSystem,
NintendoGameCube,
NintendoGameCubeGameDisc,
NintendoWiiOpticalDisc,
NintendoWiiUOpticalDisc,
UMD,

View File

@@ -252,7 +252,7 @@ namespace DICUI.Utilities
case MediaType.UMD:
return ".iso";
case MediaType.LaserDisc:
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
return ".raw";
case MediaType.NintendoWiiUOpticalDisc:
return ".wud";
@@ -333,8 +333,8 @@ namespace DICUI.Utilities
return "64DD Disk";
case MediaType.NintendoFamicomDiskSystem:
return "Famicom Disk System Disk";
case MediaType.NintendoGameCube:
return "GameCube Disc";
case MediaType.NintendoGameCubeGameDisc:
return "GameCube Game Disc";
case MediaType.NintendoWiiOpticalDisc:
return "Wii Optical Disc";
case MediaType.NintendoWiiUOpticalDisc:
@@ -423,8 +423,8 @@ namespace DICUI.Utilities
return "64DD Disk";
case MediaType.NintendoFamicomDiskSystem:
return "Famicom Disk System Disk";
case MediaType.NintendoGameCube:
return "GameCube Disc";
case MediaType.NintendoGameCubeGameDisc:
return "GameCube Game Disc";
case MediaType.NintendoWiiOpticalDisc:
return "Wii Optical Disc";
case MediaType.NintendoWiiUOpticalDisc:
@@ -584,7 +584,8 @@ namespace DICUI.Utilities
case "nintendogamecube":
case "nintendo gamecube":
case "gamecube disc":
return MediaType.NintendoGameCube;
case "gamecube game disc":
return MediaType.NintendoGameCubeGameDisc;
case "wii":
case "nintendowii":
case "nintendo wii":
@@ -639,6 +640,16 @@ namespace DICUI.Utilities
return "Commodore Amiga CD32";
case KnownSystem.CommodoreAmigaCDTV:
return "Commodore Amiga CDTV";
case KnownSystem.FujitsuFMTownsMarty:
return "Fujitsu FM Towns Marty";
case KnownSystem.HasbroVideoNow:
return "Hasbro VideoNow";
case KnownSystem.HasbroVideoNowColor:
return "Hasbro VideoNow Color";
case KnownSystem.HasbroVideoNowJr:
return "Hasbro VideoNow Jr.";
case KnownSystem.HasbroVideoNowXP:
return "Hasbro VideoNow XP";
case KnownSystem.MattelHyperscan:
return "Mattel HyperScan";
case KnownSystem.MicrosoftXBOX:
@@ -679,6 +690,8 @@ namespace DICUI.Utilities
return "Sony PlayStation 4";
case KnownSystem.SonyPlayStationPortable:
return "Sony PlayStation Portable";
case KnownSystem.TandyMemorexVisualInformationSystem:
return "Tandy / Memorex Visual Information System";
case KnownSystem.VMLabsNuon:
return "VM Labs NUON";
case KnownSystem.VTechVFlashVSmilePro:
@@ -694,8 +707,8 @@ namespace DICUI.Utilities
return "Acorn Archimedes";
case KnownSystem.AppleMacintosh:
return "Apple Macintosh";
case KnownSystem.CommodoreAmigaCD:
return "Commodore Amiga CD";
case KnownSystem.CommodoreAmiga:
return "Commodore Amiga";
case KnownSystem.FujitsuFMTowns:
return "Fujitsu FM Towns series";
case KnownSystem.IBMPCCompatible:
@@ -757,8 +770,6 @@ namespace DICUI.Utilities
return "Konami PC-based Systems";
case KnownSystem.MeritIndustriesBoardwalk:
return "Merit Industries Boardwalk";
case KnownSystem.MeritIndustriesMegaTouchAurora:
return "Merit Industries MegaTouch Aurora";
case KnownSystem.MeritIndustriesMegaTouchForce:
return "Merit Industries MegaTouch Force";
case KnownSystem.MeritIndustriesMegaTouchION:
@@ -817,8 +828,6 @@ namespace DICUI.Utilities
return "Seibu CATS System";
case KnownSystem.TABAustriaQuizard:
return "TAB-Austria Quizard";
case KnownSystem.TandyMemorexVisualInformationSystem:
return "Tandy / Memorex Visual Information System";
case KnownSystem.TsunamiTsuMoMultiGameMotionSystem:
return "Tsunami TsuMo Multi-Game Motion System";
@@ -834,18 +843,6 @@ namespace DICUI.Utilities
return "DVD-Video";
case KnownSystem.EnhancedCD:
return "Enhanced CD";
case KnownSystem.EnhancedDVD:
return "Enhanced DVD";
case KnownSystem.EnhancedBD:
return "Enhanced BD";
case KnownSystem.HasbroVideoNow:
return "Hasbro VideoNow";
case KnownSystem.HasbroVideoNowColor:
return "Hasbro VideoNow Color";
case KnownSystem.HasbroVideoNowJr:
return "Hasbro VideoNow Jr.";
case KnownSystem.HasbroVideoNowXP:
return "Hasbro VideoNow XP";
case KnownSystem.HDDVDVideo:
return "HD-DVD-Video";
case KnownSystem.PalmOS:
@@ -892,8 +889,18 @@ namespace DICUI.Utilities
return "pippin";
case KnownSystem.CommodoreAmigaCD32:
return "cd32";
case KnownSystem.FujitsuFMTownsMarty:
return "fmtm";
case KnownSystem.CommodoreAmigaCDTV:
return "cdtv";
case KnownSystem.HasbroVideoNow:
return "videonow";
case KnownSystem.HasbroVideoNowColor:
return "videonowcolor";
case KnownSystem.HasbroVideoNowJr:
return "videonowjr";
case KnownSystem.HasbroVideoNowXP:
return "videonowxp";
case KnownSystem.MattelHyperscan:
return "hyperscan";
case KnownSystem.MicrosoftXBOX:
@@ -934,6 +941,8 @@ namespace DICUI.Utilities
return "ps4";
case KnownSystem.SonyPlayStationPortable:
return "psp";
case KnownSystem.TandyMemorexVisualInformationSystem:
return "vis";
case KnownSystem.VMLabsNuon:
return "nuon";
case KnownSystem.VTechVFlashVSmilePro:
@@ -949,8 +958,8 @@ namespace DICUI.Utilities
return "archimedes";
case KnownSystem.AppleMacintosh:
return "mac";
case KnownSystem.CommodoreAmigaCD:
return "amigacd";
case KnownSystem.CommodoreAmiga:
return "amiga";
case KnownSystem.FujitsuFMTowns:
return "fmtowns";
case KnownSystem.IBMPCCompatible:
@@ -1012,8 +1021,6 @@ namespace DICUI.Utilities
return "konami pc";
case KnownSystem.MeritIndustriesBoardwalk:
return "boardwalk";
case KnownSystem.MeritIndustriesMegaTouchAurora:
return "megatouch aurora";
case KnownSystem.MeritIndustriesMegaTouchForce:
return "megatouch force";
case KnownSystem.MeritIndustriesMegaTouchION:
@@ -1072,8 +1079,6 @@ namespace DICUI.Utilities
return "seibu cats";
case KnownSystem.TABAustriaQuizard:
return "quizard";
case KnownSystem.TandyMemorexVisualInformationSystem:
return "vis";
case KnownSystem.TsunamiTsuMoMultiGameMotionSystem:
return "tsumo";
@@ -1089,18 +1094,6 @@ namespace DICUI.Utilities
return "dvd-video";
case KnownSystem.EnhancedCD:
return "enhanced cd";
case KnownSystem.EnhancedDVD:
return "enhanced dvd";
case KnownSystem.EnhancedBD:
return "enhanced bd";
case KnownSystem.HasbroVideoNow:
return "videonow";
case KnownSystem.HasbroVideoNowColor:
return "videonowcolor";
case KnownSystem.HasbroVideoNowJr:
return "videonowjr";
case KnownSystem.HasbroVideoNowXP:
return "videonowxp";
case KnownSystem.HDDVDVideo:
return "hddvd-video";
case KnownSystem.PalmOS:
@@ -1176,6 +1169,31 @@ namespace DICUI.Utilities
case "commodoreamigacdtv":
case "commodore amiga cdtv":
return KnownSystem.CommodoreAmigaCDTV;
case "fmtm":
case "fmtownsmarty":
case "fm towns marty":
case "fujitsufmtownsmarty":
case "fujitsu fm towns marty":
return KnownSystem.FujitsuFMTownsMarty;
case "videonow":
case "hasbrovideonow":
case "hasbro videonow":
return KnownSystem.HasbroVideoNow;
case "videonowcolor":
case "videonow color":
case "hasbrovideonowcolor":
case "hasbro videonow color":
return KnownSystem.HasbroVideoNowColor;
case "videonowjr":
case "videonow jr":
case "hasbrovideonowjr":
case "hasbro videonow jr":
return KnownSystem.HasbroVideoNowColor;
case "videonowxp":
case "videonow xp":
case "hasbrovideonowxp":
case "hasbro videonow xp":
return KnownSystem.HasbroVideoNowColor;
case "hyperscan":
case "mattelhyperscan":
case "mattel hyperscan":
@@ -1316,6 +1334,17 @@ namespace DICUI.Utilities
case "sonyplaystationportable":
case "sony playstation portable":
return KnownSystem.SonyPlayStationPortable;
case "vis":
case "tandyvis":
case "tandy vis":
case "tandyvisualinformationsystem":
case "tandy visual information system":
case "memorexvis":
case "memorex vis":
case "memorexvisualinformationsystem":
case "memorex visual information sytem":
case "tandy / memorex visual information system":
return KnownSystem.TandyMemorexVisualInformationSystem;
case "nuon":
case "vmlabsnuon":
case "vm labs nuon":
@@ -1365,13 +1394,9 @@ namespace DICUI.Utilities
case "apple macintosh":
return KnownSystem.AppleMacintosh;
case "amiga":
case "amigacd":
case "amiga cd":
case "commodoreamiga":
case "commodore amiga":
case "commodoreamigacd":
case "commodore amiga cd":
return KnownSystem.CommodoreAmigaCD;
return KnownSystem.CommodoreAmiga;
case "fmtowns":
case "fmt":
case "fm towns":
@@ -1516,11 +1541,6 @@ namespace DICUI.Utilities
case "meritindustriesboardwalk":
case "merit industries boardwalk":
return KnownSystem.MeritIndustriesBoardwalk;
case "megatouchaurora":
case "megatouch aurora":
case "meritindustriesmegatouchaurora":
case "merit industries megatouch aurora":
return KnownSystem.MeritIndustriesMegaTouchAurora;
case "megatouchforce":
case "megatouch force":
case "meritindustriesmegatouchforce":
@@ -1682,17 +1702,6 @@ namespace DICUI.Utilities
case "tabaustriaquizard":
case "tab-austria quizard":
return KnownSystem.TABAustriaQuizard;
case "vis":
case "tandyvis":
case "tandy vis":
case "tandyvisualinformationsystem":
case "tandy visual information system":
case "memorexvis":
case "memorex vis":
case "memorexvisualinformationsystem":
case "memorex visual information sytem":
case "tandy / memorex visual information system":
return KnownSystem.TandyMemorexVisualInformationSystem;
case "tsumo":
case "tsunamitsumo":
case "tsunami tsumo":
@@ -1721,33 +1730,6 @@ namespace DICUI.Utilities
case "enhanced cdrom":
case "enhanced cd-rom":
return KnownSystem.EnhancedCD;
case "enhanceddvd":
case "enhanced dvd":
return KnownSystem.EnhancedDVD;
case "enhancedbd":
case "enhanced bd":
case "enhancedbluray":
case "enhanced bluray":
return KnownSystem.EnhancedBD;
case "videonow":
case "hasbrovideonow":
case "hasbro videonow":
return KnownSystem.HasbroVideoNow;
case "videonowcolor":
case "videonow color":
case "hasbrovideonowcolor":
case "hasbro videonow color":
return KnownSystem.HasbroVideoNowColor;
case "videonowjr":
case "videonow jr":
case "hasbrovideonowjr":
case "hasbro videonow jr":
return KnownSystem.HasbroVideoNowColor;
case "videonowxp":
case "videonow xp":
case "hasbrovideonowxp":
case "hasbro videonow xp":
return KnownSystem.HasbroVideoNowColor;
case "hddvdvideo":
case "hddvd-video":
case "hd-dvd-video":

View File

@@ -322,7 +322,7 @@ namespace DICUI.Utilities
case MediaType.DVD:
case MediaType.HDDVD:
case MediaType.BluRay:
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
case MediaType.NintendoWiiOpticalDisc:
return File.Exists(combinedBase + ".dat")
&& File.Exists(combinedBase + "_cmd.txt")
@@ -480,8 +480,6 @@ namespace DICUI.Utilities
{
case KnownSystem.AppleMacintosh:
case KnownSystem.EnhancedCD:
case KnownSystem.EnhancedDVD:
case KnownSystem.EnhancedBD:
case KnownSystem.IBMPCCompatible:
case KnownSystem.RainbowDisc:
mappings[Template.ISBNField] = Template.OptionalValue;
@@ -608,8 +606,6 @@ namespace DICUI.Utilities
{
case KnownSystem.AppleMacintosh:
case KnownSystem.EnhancedCD:
case KnownSystem.EnhancedDVD:
case KnownSystem.EnhancedBD:
case KnownSystem.IBMPCCompatible:
case KnownSystem.RainbowDisc:
mappings[Template.ISBNField] = Template.OptionalValue;
@@ -771,8 +767,6 @@ namespace DICUI.Utilities
{
case KnownSystem.AppleMacintosh:
case KnownSystem.EnhancedCD:
case KnownSystem.EnhancedDVD:
case KnownSystem.EnhancedBD:
case KnownSystem.IBMPCCompatible:
case KnownSystem.RainbowDisc:
output.Add(Template.ISBNField + ": " + info[Template.ISBNField]);
@@ -820,8 +814,6 @@ namespace DICUI.Utilities
{
case KnownSystem.AppleMacintosh:
case KnownSystem.EnhancedCD:
case KnownSystem.EnhancedDVD:
case KnownSystem.EnhancedBD:
case KnownSystem.IBMPCCompatible:
case KnownSystem.RainbowDisc:
output.Add(Template.CopyProtectionField + ": " + info[Template.CopyProtectionField]); output.Add("");

View File

@@ -53,7 +53,7 @@ namespace DICUI.Utilities
case MediaType.GDROM:
case MediaType.HDDVD:
case MediaType.BluRay:
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
case MediaType.NintendoWiiOpticalDisc:
return true;
default:

View File

@@ -150,7 +150,7 @@ namespace DICUI.Utilities
// GameCube and Wii
if (this[DICFlag.Raw])
{
type = MediaType.NintendoGameCube;
type = MediaType.NintendoGameCubeGameDisc;
system = KnownSystem.NintendoGameCube;
}
@@ -1386,7 +1386,7 @@ namespace DICUI.Utilities
case MediaType.BluRay:
Command = DICCommand.BluRay;
return;
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
Command = DICCommand.DigitalVideoDisc;
return;
case MediaType.NintendoWiiOpticalDisc:
@@ -1486,7 +1486,7 @@ namespace DICUI.Utilities
break;
// Special Formats
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
this[DICFlag.Raw] = true;
break;
case MediaType.NintendoWiiOpticalDisc:

View File

@@ -25,94 +25,181 @@ namespace DICUI.Utilities
{
#region Consoles
// https://en.wikipedia.org/wiki/Atari_Jaguar_CD
case KnownSystem.AtariJaguarCD:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Playdia
case KnownSystem.BandaiPlaydiaQuickInteractiveSystem:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Apple_Bandai_Pippin
case KnownSystem.BandaiApplePippin:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Amiga_CD32
case KnownSystem.CommodoreAmigaCD32:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Commodore_CDTV
case KnownSystem.CommodoreAmigaCDTV:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/FM_Towns_Marty
case KnownSystem.FujitsuFMTownsMarty:
types.Add(MediaType.CDROM);
types.Add(MediaType.FloppyDisk);
break;
// https://en.wikipedia.org/wiki/VideoNow
case KnownSystem.HasbroVideoNow:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/VideoNow
case KnownSystem.HasbroVideoNowColor:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/VideoNow
case KnownSystem.HasbroVideoNowJr:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/VideoNow
case KnownSystem.HasbroVideoNowXP:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/HyperScan
case KnownSystem.MattelHyperscan:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Xbox_(console)
case KnownSystem.MicrosoftXBOX:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/Xbox_360
case KnownSystem.MicrosoftXBOX360:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/Xbox_One
case KnownSystem.MicrosoftXBOXOne:
types.Add(MediaType.BluRay);
break;
// https://en.wikipedia.org/wiki/TurboGrafx-16
case KnownSystem.NECPCEngineTurboGrafxCD:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/PC-FX
case KnownSystem.NECPCFX:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/GameCube
case KnownSystem.NintendoGameCube:
types.Add(MediaType.NintendoGameCube);
types.Add(MediaType.NintendoGameCubeGameDisc);
break;
// https://en.wikipedia.org/wiki/Wii
case KnownSystem.NintendoWii:
types.Add(MediaType.NintendoWiiOpticalDisc);
break;
// https://en.wikipedia.org/wiki/Wii_U
case KnownSystem.NintendoWiiU:
types.Add(MediaType.NintendoWiiUOpticalDisc);
break;
// https://en.wikipedia.org/wiki/3DO_Interactive_Multiplayer
case KnownSystem.Panasonic3DOInteractiveMultiplayer:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Philips_CD-i
case KnownSystem.PhilipsCDi:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Sega_CD
case KnownSystem.SegaCDMegaCD:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Dreamcast
case KnownSystem.SegaDreamcast:
types.Add(MediaType.CDROM); // Low density partition
types.Add(MediaType.CDROM); // Low density partition, MIL-CD
types.Add(MediaType.GDROM); // High density partition
break;
// https://en.wikipedia.org/wiki/Sega_Saturn
case KnownSystem.SegaSaturn:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Neo_Geo_CD
case KnownSystem.SNKNeoGeoCD:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/PlayStation_(console)
case KnownSystem.SonyPlayStation:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/PlayStation_2
case KnownSystem.SonyPlayStation2:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/PlayStation_3
case KnownSystem.SonyPlayStation3:
types.Add(MediaType.BluRay);
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/PlayStation_4
case KnownSystem.SonyPlayStation4:
types.Add(MediaType.BluRay);
break;
// https://en.wikipedia.org/wiki/PlayStation_Portable
case KnownSystem.SonyPlayStationPortable:
types.Add(MediaType.UMD);
types.Add(MediaType.DVD); // TODO: Confirm this
types.Add(MediaType.CDROM); // Development discs only
types.Add(MediaType.DVD); // Development discs only
break;
// https://en.wikipedia.org/wiki/Tandy_Video_Information_System
case KnownSystem.TandyMemorexVisualInformationSystem:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Nuon_(DVD_technology)
case KnownSystem.VMLabsNuon:
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/V.Flash
case KnownSystem.VTechVFlashVSmilePro:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Game_Wave_Family_Entertainment_System
case KnownSystem.ZAPiTGamesGameWaveFamilyEntertainmentSystem:
types.Add(MediaType.DVD);
break;
@@ -121,213 +208,365 @@ namespace DICUI.Utilities
#region Computers
// https://en.wikipedia.org/wiki/Acorn_Archimedes
case KnownSystem.AcornArchimedes:
types.Add(MediaType.CDROM);
types.Add(MediaType.FloppyDisk);
break;
// https://en.wikipedia.org/wiki/Macintosh
case KnownSystem.AppleMacintosh:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
types.Add(MediaType.FloppyDisk);
break;
case KnownSystem.CommodoreAmigaCD:
// https://en.wikipedia.org/wiki/Amiga
case KnownSystem.CommodoreAmiga:
types.Add(MediaType.CDROM);
types.Add(MediaType.FloppyDisk);
break;
// https://en.wikipedia.org/wiki/FM_Towns
case KnownSystem.FujitsuFMTowns:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/IBM_PC_compatible
case KnownSystem.IBMPCCompatible:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
types.Add(MediaType.FloppyDisk);
break;
// https://en.wikipedia.org/wiki/PC-8800_series
case KnownSystem.NECPC88:
types.Add(MediaType.CDROM);
types.Add(MediaType.FloppyDisk);
break;
// https://en.wikipedia.org/wiki/PC-9800_series
case KnownSystem.NECPC98:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
types.Add(MediaType.FloppyDisk);
break;
// https://en.wikipedia.org/wiki/X68000
case KnownSystem.SharpX68000:
types.Add(MediaType.CDROM);
types.Add(MediaType.FloppyDisk);
break;
#endregion
#region Arcade
// https://www.bigbookofamigahardware.com/bboah/product.aspx?id=36
case KnownSystem.AmigaCUBOCD32:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Orbatak
case KnownSystem.AmericanLaserGames3DO:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=779
case KnownSystem.Atari3DO:
types.Add(MediaType.CDROM);
break;
// http://newlifegames.net/nlg/index.php?topic=22003.0
// http://newlifegames.net/nlg/index.php?topic=5486.msg119440
case KnownSystem.Atronic:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://www.arcade-museum.com/members/member_detail.php?member_id=406530
case KnownSystem.AUSCOMSystem1:
types.Add(MediaType.CDROM);
break;
// http://newlifegames.net/nlg/index.php?topic=285.0
case KnownSystem.BallyGameMagic:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/CP_System_III
case KnownSystem.CapcomCPSystemIII:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
case KnownSystem.GlobalVRVarious:
types.Add(MediaType.CDROM);
break;
// https://service.globalvr.com/troubleshooting/vortek.html
case KnownSystem.GlobalVRVortek:
types.Add(MediaType.CDROM);
break;
// https://service.globalvr.com/downloads/v3/040-1001-01c-V3-System-Manual.pdf
case KnownSystem.GlobalVRVortekV3:
types.Add(MediaType.DVD); // TODO: Confirm
types.Add(MediaType.CDROM);
break;
// https://www.icegame.com/games
case KnownSystem.ICEPCHardware:
types.Add(MediaType.DVD);
break;
// https://github.com/mamedev/mame/blob/master/src/mame/drivers/iteagle.cpp
case KnownSystem.IncredibleTechnologiesEagle:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
case KnownSystem.IncredibleTechnologiesVarious:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/E-Amusement
case KnownSystem.KonamieAmusement:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=828
case KnownSystem.KonamiFirebeat:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=577
case KnownSystem.KonamiGVSystem:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=575
case KnownSystem.KonamiM2:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=586
// http://system16.com/hardware.php?id=977
case KnownSystem.KonamiPython:
types.Add(MediaType.DVD); // TODO: Confirm
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=976
// http://system16.com/hardware.php?id=831
case KnownSystem.KonamiPython2:
types.Add(MediaType.DVD); // TODO: Confirm
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 KnownSystem.KonamiSystem573:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=827
case KnownSystem.KonamiTwinkle:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
case KnownSystem.KonamiVarious:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://www.meritgames.com/Support_Center/manuals/PM0591-01.pdf
case KnownSystem.MeritIndustriesBoardwalk:
types.Add(MediaType.CDROM); // TODO: Confirm
break;
case KnownSystem.MeritIndustriesMegaTouchAurora:
types.Add(MediaType.CDROM); // TODO: Confirm
break;
case KnownSystem.MeritIndustriesMegaTouchForce:
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 KnownSystem.MeritIndustriesMegaTouchForce:
types.Add(MediaType.CDROM);
break;
// http://www.meritgames.com/Service%20Center/Ion%20Troubleshooting.pdf
case KnownSystem.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 KnownSystem.MeritIndustriesMegaTouchMaxx:
types.Add(MediaType.DVD);
types.Add(MediaType.CDROM);
break;
// http://www.meritgames.com/Support_Center/manuals/pm0076_OA_Megatouch%20XL%20Trouble%20Shooting%20Manual.pdf
// http://www.meritgames.com/Support_Center/MEGA%20XL/manuals/Megatouch_XL_pm0109-0D.pdf
// http://www.meritgames.com/Support_Center/MEGA%20XL/manuals/Megatouch_XL_Super_5000_manual.pdf
case KnownSystem.MeritIndustriesMegaTouchXL:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=546
// http://system16.com/hardware.php?id=872
case KnownSystem.NamcoCapcomSystem256:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=543
case KnownSystem.NamcoCapcomTaitoSystem246:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=545
case KnownSystem.NamcoSegaNintendoTriforce:
types.Add(MediaType.CDROM); // Low density partition
types.Add(MediaType.GDROM); // High density partition
break;
// http://system16.com/hardware.php?id=535
case KnownSystem.NamcoSystem12:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=900
case KnownSystem.NamcoSystem357:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
types.Add(MediaType.BluRay);
break;
// https://www.arcade-history.com/?n=the-yakyuuken-part-1&page=detail&id=33049
case KnownSystem.NewJatreCDi:
types.Add(MediaType.CDROM);
break;
// http://blog.system11.org/?p=2499
case KnownSystem.NichibutsuHighRateSystem:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// http://blog.system11.org/?p=2514
case KnownSystem.NichibutsuSuperCD:
types.Add(MediaType.CDROM);
break;
// http://collectedit.com/collectors/shou-time-213/arcade-pcbs-281/x-rate-dvd-series-17-newlywed-life-japan-by-nichibutsu-32245
case KnownSystem.NichibutsuXRateSystem:
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/Panasonic_M2
case KnownSystem.PanasonicM2:
types.Add(MediaType.CDROM);
types.Add(MediaType.DVD);
break;
// https://github.com/mamedev/mame/blob/master/src/mame/drivers/photoply.cpp
case KnownSystem.PhotoPlayVarious:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
case KnownSystem.RawThrillsVarious:
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=729
case KnownSystem.SegaChihiro:
types.Add(MediaType.CDROM); // Low density partition
types.Add(MediaType.GDROM); // High density partition
break;
// http://system16.com/hardware.php?id=907
case KnownSystem.SegaEuropaR:
types.Add(MediaType.DVD); // TODO: Confirm
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 KnownSystem.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 KnownSystem.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 KnownSystem.SegaNaomi2:
types.Add(MediaType.CDROM); // Low density partition
types.Add(MediaType.GDROM); // High density partition
break;
// http://system16.com/hardware.php?id=975
// https://en.wikipedia.org/wiki/List_of_Sega_arcade_system_boards#Sega_Nu
case KnownSystem.SegaNu:
types.Add(MediaType.DVD);
types.Add(MediaType.BluRay);
break;
// http://system16.com/hardware.php?id=910
// https://en.wikipedia.org/wiki/List_of_Sega_arcade_system_boards#Sega_Ring_series
case KnownSystem.SegaRingEdge:
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=982
// https://en.wikipedia.org/wiki/List_of_Sega_arcade_system_boards#Sega_Ring_series
case KnownSystem.SegaRingEdge2:
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=911
// https://en.wikipedia.org/wiki/List_of_Sega_arcade_system_boards#Sega_Ring_series
case KnownSystem.SegaRingWide:
types.Add(MediaType.DVD);
break;
// http://system16.com/hardware.php?id=711
case KnownSystem.SegaTitanVideo:
types.Add(MediaType.CDROM);
break;
// http://system16.com/hardware.php?id=709
// http://system16.com/hardware.php?id=710
case KnownSystem.SegaSystem32:
types.Add(MediaType.CDROM);
break;
// https://github.com/mamedev/mame/blob/master/src/mame/drivers/seibucats.cpp
case KnownSystem.SeibuCATSSystem:
types.Add(MediaType.DVD);
break;
// https://www.tab.at/en/support/support/downloads
case KnownSystem.TABAustriaQuizard:
types.Add(MediaType.CDROM);
break;
case KnownSystem.TandyMemorexVisualInformationSystem:
types.Add(MediaType.CDROM);
break;
// https://primetimeamusements.com/product/tsumo-multi-game-motion-system/
// https://www.highwaygames.com/arcade-machines/tsumo-tsunami-motion-8117/
case KnownSystem.TsunamiTsuMoMultiGameMotionSystem:
types.Add(MediaType.CDROM);
break;
@@ -336,60 +575,67 @@ namespace DICUI.Utilities
#region Others
// https://en.wikipedia.org/wiki/Audio_CD
case KnownSystem.AudioCD:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Blu-ray#Player_profiles
case KnownSystem.BDVideo:
types.Add(MediaType.BluRay);
break;
// https://en.wikipedia.org/wiki/DVD-Video
case KnownSystem.DVDVideo:
types.Add(MediaType.DVD);
break;
// https://en.wikipedia.org/wiki/Blue_Book_(CD_standard)
case KnownSystem.EnhancedCD:
types.Add(MediaType.CDROM);
break;
case KnownSystem.EnhancedDVD:
types.Add(MediaType.DVD);
break;
case KnownSystem.EnhancedBD:
types.Add(MediaType.BluRay);
break;
case KnownSystem.HasbroVideoNow:
types.Add(MediaType.CDROM);
break;
case KnownSystem.HasbroVideoNowColor:
types.Add(MediaType.CDROM);
break;
case KnownSystem.HasbroVideoNowJr:
types.Add(MediaType.CDROM);
break;
case KnownSystem.HasbroVideoNowXP:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/HD_DVD
case KnownSystem.HDDVDVideo:
types.Add(MediaType.HDDVD);
break;
// UNKNOWN
case KnownSystem.PalmOS:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
case KnownSystem.PhilipsCDiDigitalVideo:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Photo_CD
case KnownSystem.PhotoCD:
types.Add(MediaType.CDROM);
break;
// UNKNOWN
case KnownSystem.PlayStationGameSharkUpdates:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Doors_and_Windows_(EP)
case KnownSystem.RainbowDisc:
types.Add(MediaType.CDROM);
break;
// https://www.cnet.com/products/tao-music-iktv-karaoke-station-karaoke-system-series/
case KnownSystem.TaoiKTV:
types.Add(MediaType.CDROM);
break;
// http://ultimateconsoledatabase.com/golden/kiss_site.htm
case KnownSystem.TomyKissSite:
types.Add(MediaType.CDROM);
break;
// https://en.wikipedia.org/wiki/Video_CD
case KnownSystem.VideoCD:
types.Add(MediaType.CDROM);
break;
@@ -552,7 +798,7 @@ namespace DICUI.Utilities
// Partially supported types
case MediaType.GDROM:
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
case MediaType.NintendoWiiOpticalDisc:
return Result.Success("{0} partially supported for dumping", type.Name());

View File

@@ -23,7 +23,7 @@ namespace DICUI.Test.Utilities
[Theory]
[InlineData(KnownSystem.AppleMacintosh, MediaType.LaserDisc, true, 20, null, null)]
[InlineData(KnownSystem.NintendoGameCube, MediaType.NintendoGameCube, false, 20, null, new DICFlag[] { DICFlag.Raw })]
[InlineData(KnownSystem.NintendoGameCube, MediaType.NintendoGameCubeGameDisc, false, 20, null, new DICFlag[] { DICFlag.Raw })]
[InlineData(KnownSystem.IBMPCCompatible, MediaType.DVD, false, 20, null, new DICFlag[] { })]
/* paranoid mode tests */
[InlineData(KnownSystem.IBMPCCompatible, MediaType.CDROM, true, 1000, 2, new DICFlag[] { DICFlag.C2Opcode, DICFlag.NoFixSubQSecuROM, DICFlag.ScanFileProtect, DICFlag.ScanSectorProtect, DICFlag.SubchannelReadLevel })]
@@ -55,7 +55,7 @@ namespace DICUI.Test.Utilities
[InlineData("", null, null, null, null)]
[InlineData("cd F test.bin 8 /c2 20", MediaType.CDROM, KnownSystem.IBMPCCompatible, "F", "test.bin")]
[InlineData("fd A blah\\test.img", MediaType.FloppyDisk, KnownSystem.IBMPCCompatible, "A", "blah\\test.img")]
[InlineData("dvd X super\\blah\\test.iso 8 /raw", MediaType.NintendoGameCube, KnownSystem.NintendoGameCube, "X", "super\\blah\\test.iso")]
[InlineData("dvd X super\\blah\\test.iso 8 /raw", MediaType.NintendoGameCubeGameDisc, KnownSystem.NintendoGameCube, "X", "super\\blah\\test.iso")]
[InlineData("stop D", null, null, "D", null)]
public void DetermineFlagsTest(string parameters, MediaType? expectedMediaType, KnownSystem? expectedKnownSystem, string expectedDriveLetter, string expectedPath)
{

View File

@@ -10,7 +10,7 @@ namespace DICUI.Test.Utilities
[Theory]
[InlineData(KnownSystem.BandaiApplePippin, MediaType.CDROM)]
[InlineData(KnownSystem.MicrosoftXBOX, MediaType.DVD)]
[InlineData(KnownSystem.NintendoGameCube, MediaType.NintendoGameCube)]
[InlineData(KnownSystem.NintendoGameCube, MediaType.NintendoGameCubeGameDisc)]
[InlineData(KnownSystem.NintendoWii, MediaType.NintendoWiiOpticalDisc)]
[InlineData(KnownSystem.NintendoWiiU, MediaType.NintendoWiiUOpticalDisc)]
[InlineData(KnownSystem.SonyPlayStationPortable, MediaType.UMD)]

View File

@@ -36,7 +36,7 @@ namespace DICUI
return cd;
case MediaType.DVD:
case MediaType.HDDVD:
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
case MediaType.NintendoWiiOpticalDisc:
return dvd;
case MediaType.BluRay:

View File

@@ -84,7 +84,7 @@ namespace DICUI
return PreferredDumpSpeedCD;
case MediaType.DVD:
case MediaType.HDDVD:
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
case MediaType.NintendoWiiOpticalDisc:
return PreferredDumpSpeedDVD;
case MediaType.BluRay:

View File

@@ -589,7 +589,7 @@ namespace DICUI.Windows
break;
case MediaType.DVD:
case MediaType.HDDVD:
case MediaType.NintendoGameCube:
case MediaType.NintendoGameCubeGameDisc:
case MediaType.NintendoWiiOpticalDisc:
preferred = _options.PreferredDumpSpeedDVD;
break;