Exemple #1
0
        /// <summary>
        /// Set default parameters for a given system and media type
        /// </summary>
        /// <param name="system">KnownSystem value to use</param>
        /// <param name="type">MediaType value to use</param>
        /// <param name="driveLetter">Drive letter to use</param>
        /// <param name="filename">Filename to use</param>
        /// <param name="driveSpeed">Drive speed to use</param>
        /// <param name="paranoid">Enable paranoid mode (safer dumping)</param>
        /// <param name="retryCount">User-defined reread count</param>
        protected override void SetDefaultParameters(
            KnownSystem?system,
            MediaType?type,
            char driveLetter,
            string filename,
            int?driveSpeed,
            bool paranoid,
            int retryCount)
        {
            BaseCommand = Command.NONE;

            this[Flag.InputFile] = true;
            InputFileValue       = $"\\\\?\\{driveLetter}:";

            this[Flag.OutputFile] = true;
            OutputFileValue       = filename;

            // TODO: Add more common block sizes
            this[Flag.BlockSize] = true;
            switch (type)
            {
            case MediaType.FloppyDisk:
                BlockSizeValue = 1440 * 1024;
                break;

            default:
                BlockSizeValue = 1024 * 1024 * 1024;
                break;
            }

            this[Flag.Progress] = true;
            this[Flag.Size]     = true;
        }
Exemple #2
0
        public static KnownSystemCategory Category(this KnownSystem?system)
        {
            if (system < KnownSystem.MarkerDiscBasedConsoleEnd)
            {
                return(KnownSystemCategory.DiscBasedConsole);
            }

            /*
             * else if (system < KnownSystem.MarkerOtherConsoleEnd)
             *  return KnownSystemCategory.OtherConsole;
             */
            else if (system < KnownSystem.MarkerComputerEnd)
            {
                return(KnownSystemCategory.Computer);
            }
            else if (system < KnownSystem.MarkerArcadeEnd)
            {
                return(KnownSystemCategory.Arcade);
            }
            else if (system < KnownSystem.MarkerOtherEnd)
            {
                return(KnownSystemCategory.Other);
            }
            else
            {
                return(KnownSystemCategory.Custom);
            }
        }
Exemple #3
0
        /// <summary>
        /// Validate if all required output files exist
        /// </summary>
        /// <param name="basePath">Base filename and path to use for checking</param>
        /// <param name="system">KnownSystem type representing the media</param>
        /// <param name="type">MediaType type representing the media</param>
        /// <param name="progress">Optional result progress callback</param>
        /// <returns></returns>
        public override bool CheckAllOutputFilesExist(string basePath, KnownSystem?system, MediaType?type, IProgress <Result> progress = null)
        {
            string missingFiles = string.Empty;

            switch (type)
            {
            case MediaType.DVD:     // Only added here to help users; not strictly correct
            case MediaType.NintendoGameCubeGameDisc:
            case MediaType.NintendoWiiOpticalDisc:
                if (!File.Exists($"{basePath}-dumpinfo.txt"))
                {
                    missingFiles += $";{basePath}-dumpinfo.txt";
                }
                if (!File.Exists($"{basePath}.bca"))
                {
                    missingFiles += $";{basePath}.bca";
                }

                break;

            default:
                return(false);
            }

            // Use the missing files list as an indicator
            if (string.IsNullOrEmpty(missingFiles))
            {
                return(true);
            }
            else
            {
                progress?.Report(Result.Failure($"The following files were missing: {missingFiles.TrimStart(';')}"));
                return(false);
            }
        }
Exemple #4
0
        /// <summary>
        /// Populate media type according to system type
        /// </summary>
        private void PopulateMediaType()
        {
            KnownSystem?currentSystem = SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem;

            if (currentSystem != null)
            {
                _mediaTypes = Validators.GetValidMediaTypes(currentSystem).ToList();

                var comboBoxItems = new List <MediaTypeComboBoxItem>();
                foreach (var mediaType in _mediaTypes)
                {
                    comboBoxItems.Add(new MediaTypeComboBoxItem(mediaType));
                }

                MediaTypeComboBox.DataSource = comboBoxItems;

                MediaTypeComboBox.Enabled       = _mediaTypes.Count > 1;
                MediaTypeComboBox.SelectedIndex = (_mediaTypes.IndexOf(_currentMediaType) >= 0 ? _mediaTypes.IndexOf(_currentMediaType) : 0);
            }
            else
            {
                MediaTypeComboBox.Enabled       = false;
                MediaTypeComboBox.DataSource    = null;
                MediaTypeComboBox.SelectedIndex = -1;
            }
        }
Exemple #5
0
        /// <summary>
        /// Get the default output directory name from the currently selected drive
        /// </summary>
        /// <param name="driveChanged">Force an updated name if the drive letter changes</param>
        private void GetOutputNames(bool driveChanged)
        {
            Drive       drive      = DriveLetterComboBox.SelectedItem as Drive;
            KnownSystem?systemType = SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem;
            MediaType?  mediaType  = MediaTypeComboBox.SelectedItem as MediaType?;

            // Set the output directory, if we changed drives or it's not already
            if (driveChanged || string.IsNullOrEmpty(OutputDirectoryTextBox.Text))
            {
                OutputDirectoryTextBox.Text = Path.Combine(UIOptions.Options.DefaultOutputPath, drive?.VolumeLabel ?? string.Empty);
            }

            // Get the extension for the file for the next two statements
            string extension = Env.GetExtension(mediaType);

            // Set the output filename, if we changed drives or it's not already
            if (driveChanged || string.IsNullOrEmpty(OutputFilenameTextBox.Text))
            {
                OutputFilenameTextBox.Text = (drive?.VolumeLabel ?? systemType.LongName()) + (extension ?? ".bin");
            }

            // If the extension for the file changed, update that automatically
            else if (Path.GetExtension(OutputFilenameTextBox.Text) != extension)
            {
                OutputFilenameTextBox.Text = Path.GetFileNameWithoutExtension(OutputFilenameTextBox.Text) + (extension ?? ".bin");
            }
        }
Exemple #6
0
        public void ParametersFromSystemAndTypeTest(KnownSystem?knownSystem, MediaType?mediaType, Command expected)
        {
            var options = new Options {
            };
            var actual  = new Parameters(knownSystem, mediaType, 'D', "disc.bin", 16, options);

            Assert.Equal(expected, actual.BaseCommand);
        }
Exemple #7
0
 /// <summary>
 /// Set default parameters for a given system and media type
 /// </summary>
 /// <param name="system">KnownSystem value to use</param>
 /// <param name="type">MediaType value to use</param>
 /// <param name="driveLetter">Drive letter to use</param>
 /// <param name="filename">Filename to use</param>
 /// <param name="driveSpeed">Drive speed to use</param>
 /// <param name="paranoid">Enable paranoid mode (safer dumping)</param>
 /// <param name="retryCount">User-defined reread count</param>
 protected abstract void SetDefaultParameters(
     KnownSystem?system,
     MediaType?type,
     char driveLetter,
     string filename,
     int?driveSpeed,
     bool paranoid,
     int retryCount);
Exemple #8
0
        /// <summary>
        /// Get the default output directory name from the currently selected drive
        /// </summary>
        private void GetOutputNames()
        {
            Drive       drive      = DriveLetterComboBox.SelectedItem as Drive;
            KnownSystem?systemType = SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem;
            MediaType?  mediaType  = MediaTypeComboBox.SelectedItem as MediaType?;

            OutputDirectoryTextBox.Text = Path.Combine(_options.DefaultOutputPath, drive?.VolumeLabel ?? string.Empty);
            OutputFilenameTextBox.Text  = (drive?.VolumeLabel ?? "disc") + (mediaType.Extension() ?? ".bin");
        }
Exemple #9
0
        /// <summary>
        /// Cache the current disc type to internal variable
        /// </summary>
        private void CacheCurrentDiscType()
        {
            // If the selected item is invalid, we just skip
            if (!(DriveLetterComboBox.SelectedItem is Drive drive))
            {
                return;
            }

            // Get reasonable default values based on the current system
            KnownSystem?currentSystem    = Systems[SystemTypeComboBox.SelectedIndex];
            MediaType?  defaultMediaType = Validators.GetValidMediaTypes(currentSystem).FirstOrDefault() ?? MediaType.CDROM;

            if (defaultMediaType == MediaType.NONE)
            {
                defaultMediaType = MediaType.CDROM;
            }

            // If we're skipping detection, set the default value
            if (Options.SkipMediaTypeDetection)
            {
                LogOutput.VerboseLogLn($"Media type detection disabled, defaulting to {defaultMediaType.LongName()}.");
                CurrentMediaType = defaultMediaType;
            }

            // If the drive is marked active, try to read from it
            else if (drive.MarkedActive)
            {
                LogOutput.VerboseLog($"Trying to detect media type for drive {drive.Letter}.. ");
                (MediaType? detectedMediaType, string errorMessage) = Validators.GetMediaType(drive);

                // If we got an error message, post it to the log
                if (errorMessage != null)
                {
                    LogOutput.VerboseLogLn($"Error in detecting media type: {errorMessage}");
                }

                // If we got either an error or no media, default to the current System default
                if (detectedMediaType == null)
                {
                    LogOutput.VerboseLogLn($"Unable to detect, defaulting to {defaultMediaType.LongName()}.");
                    CurrentMediaType = defaultMediaType;
                }
                else
                {
                    LogOutput.VerboseLogLn($"Detected {CurrentMediaType.LongName()}.");
                    CurrentMediaType = detectedMediaType;
                }
            }

            // All other cases, just use the default
            else
            {
                LogOutput.VerboseLogLn($"Drive marked as empty, defaulting to {defaultMediaType.LongName()}.");
                CurrentMediaType = defaultMediaType;
            }
        }
Exemple #10
0
        public static bool DoesSupportDriveSpeed(this KnownSystem?system)
        {
            switch (system)
            {
            case KnownSystem.MicrosoftXBOX:
            case KnownSystem.MicrosoftXBOX360:
                return(false);

            default:
                return(true);
            }
        }
Exemple #11
0
        /// <summary>
        /// Determine if a system is considered XGD
        /// </summary>
        /// <param name="system">KnownSystem value to check</param>
        /// <returns>True if the system is XGD, false otherwise</returns>
        public static bool IsXGD(this KnownSystem?system)
        {
            switch (system)
            {
            case KnownSystem.MicrosoftXBOX:
            case KnownSystem.MicrosoftXBOX360:
            case KnownSystem.MicrosoftXBOXOne:
            case KnownSystem.MicrosoftXboxSeriesXS:
                return(true);

            default:
                return(false);
            }
        }
Exemple #12
0
        public static bool IsMarker(this KnownSystem?system)
        {
            switch (system)
            {
            case KnownSystem.MarkerArcadeEnd:
            case KnownSystem.MarkerComputerEnd:
            case KnownSystem.MarkerConsoleEnd:
            case KnownSystem.MarkerOtherEnd:
                return(true);

            default:
                return(false);
            }
        }
Exemple #13
0
        /// <summary>
        /// Populate media type according to system type
        /// </summary>
        private void PopulateMediaType()
        {
            KnownSystem?currentSystem = this.Find <ComboBox>("SystemTypeComboBox").SelectedItem as KnownSystemComboBoxItem;

            if (currentSystem != null)
            {
                MediaTypes = Validators.GetValidMediaTypes(currentSystem);
                this.Find <ComboBox>("MediaTypeComboBox").Items         = MediaTypes;
                this.Find <ComboBox>("MediaTypeComboBox").IsEnabled     = MediaTypes.Count > 1;
                this.Find <ComboBox>("MediaTypeComboBox").SelectedIndex = (MediaTypes.IndexOf(CurrentMediaType) >= 0 ? MediaTypes.IndexOf(CurrentMediaType) : 0);
            }
            else
            {
                this.Find <ComboBox>("MediaTypeComboBox").Items         = null;
                this.Find <ComboBox>("MediaTypeComboBox").IsEnabled     = false;
                this.Find <ComboBox>("MediaTypeComboBox").SelectedIndex = -1;
            }
        }
Exemple #14
0
        public void ParametersFromOptionsTest(KnownSystem?knownSystem, MediaType?mediaType, bool paranoid, int rereadC2, int?subchannelLevel, CreatorFlag[] expected)
        {
            CreatorParameters actual = new CreatorParameters(knownSystem, mediaType, 'D', "disc.bin", 16, paranoid, rereadC2);

            HashSet <CreatorFlag> expectedSet = new HashSet <CreatorFlag>(expected ?? new CreatorFlag[0]);
            HashSet <CreatorFlag> actualSet   = new HashSet <CreatorFlag>(actual.Keys ?? new CreatorFlag[0]);

            Assert.Equal(expectedSet, actualSet);
            if (rereadC2 == -1 || !Validators.GetValidMediaTypes(knownSystem).Contains(mediaType))
            {
                Assert.Null(actual.C2OpcodeValue[0]);
            }
            else
            {
                Assert.Equal(rereadC2, actual.C2OpcodeValue[0]);
            }
            Assert.Equal(subchannelLevel, actual.SubchannelReadLevelValue);
        }
Exemple #15
0
        /// <summary>
        /// Verify that, given a system and a media type, they are correct
        /// </summary>
        public static Result GetSupportStatus(KnownSystem?system, MediaType?type)
        {
            // No system chosen, update status
            if (system == KnownSystem.NONE)
            {
                return(Result.Failure("Please select a valid system"));
            }
            // custom system chosen, then don't check anything
            else if (system == KnownSystem.Custom)
            {
                return(Result.Success("{0} ready to dump", type.Name()));
            }

            // If we're on an unsupported type, update the status accordingly
            switch (type)
            {
            // Fully supported types
            case MediaType.CD:
            case MediaType.DVD:
            case MediaType.HDDVD:
            case MediaType.BluRay:
                return(Result.Success("{0} ready to dump", type.Name()));

            // Partially supported types
            case MediaType.GDROM:
            case MediaType.GameCubeGameDisc:
            case MediaType.WiiOpticalDisc:
                return(Result.Success("{0} discs are partially supported by DIC", type.Name()));

            // Undumpable but recognized types
            case MediaType.LaserDisc:
            case MediaType.WiiUOpticalDisc:
            case MediaType.CED:
            case MediaType.UMD:
            case MediaType.Cartridge:
            case MediaType.Cassette:
                return(Result.Failure("{0} discs are not currently supported by DIC", type.Name()));

            // Invalid or unknown types
            case MediaType.NONE:
            default:
                return(Result.Failure("Please select a valid disc type"));
            }
        }
Exemple #16
0
        /// <summary>
        /// Get the default output directory name from the currently selected drive
        /// </summary>
        /// <param name="driveChanged">Force an updated name if the drive letter changes</param>
        private void GetOutputNames(bool driveChanged)
        {
            Drive       drive      = DriveLetterComboBox.SelectedItem as Drive;
            KnownSystem?systemType = SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem;
            MediaType?  mediaType  = MediaTypeComboBox.SelectedItem as Element <MediaType>;

            // Get the extension for the file for the next two statements
            string extension = Env.Parameters?.GetDefaultExtension(mediaType);

            // Disable automatic reprocessing of the textboxes until we're done
            RemovePathEventHandlers();

            // Save the current cursor positions
            int outputDirectorySelectionStart = OutputDirectoryTextBox.SelectionStart;
            int outputFilenameSelectionStart  = OutputFilenameTextBox.SelectionStart;

            // Set the output filename, if we changed drives or it's not already
            if (driveChanged || string.IsNullOrEmpty(OutputFilenameTextBox.Text))
            {
                OutputFilenameTextBox.Text = (drive?.VolumeLabel ?? systemType.LongName()) + (extension ?? ".bin");
            }

            // If the extension for the file changed, update that automatically
            else if (Path.GetExtension(OutputFilenameTextBox.Text) != extension)
            {
                OutputFilenameTextBox.Text = Path.GetFileNameWithoutExtension(OutputFilenameTextBox.Text) + (extension ?? ".bin");
            }

            // Set the output directory, if we changed drives or it's not already
            if (driveChanged || string.IsNullOrEmpty(OutputDirectoryTextBox.Text))
            {
                OutputDirectoryTextBox.Text = Path.Combine(Options.DefaultOutputPath, Path.GetFileNameWithoutExtension(OutputFilenameTextBox.Text) ?? string.Empty);
            }

            // Set the cursor position back to where it was
            OutputDirectoryTextBox.SelectionStart  = outputDirectorySelectionStart;
            OutputDirectoryTextBox.SelectionLength = 0;
            OutputFilenameTextBox.SelectionStart   = outputFilenameSelectionStart;
            OutputFilenameTextBox.SelectionLength  = 0;

            // Re-enable automatic reprocessing of textboxes
            AddPathEventHandlers();
        }
Exemple #17
0
        /// <summary>
        /// Determine if a system is considered audio-only
        /// </summary>
        /// <param name="system">KnownSystem value to check</param>
        /// <returns>True if the system is audio-only, false otherwise</returns>
        /// <remarks>
        /// Philips CD-i should NOT be in this list. It's being included until there's a
        /// reasonable distinction between CD-i and CD-i ready on the database side.
        /// </remarks>
        public static bool IsAudio(this KnownSystem?system)
        {
            switch (system)
            {
            case KnownSystem.AtariJaguarCD:
            case KnownSystem.AudioCD:
            case KnownSystem.DVDAudio:
            case KnownSystem.HasbroVideoNow:
            case KnownSystem.HasbroVideoNowColor:
            case KnownSystem.HasbroVideoNowJr:
            case KnownSystem.HasbroVideoNowXP:
            case KnownSystem.PhilipsCDi:
            case KnownSystem.SuperAudioCD:
                return(true);

            default:
                return(false);
            }
        }
Exemple #18
0
        /// <summary>
        /// Populate media type according to system type
        /// </summary>
        private void PopulateMediaType()
        {
            KnownSystem?currentSystem = SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem;

            if (currentSystem != null)
            {
                _mediaTypes = Validators.GetValidMediaTypes(currentSystem);
                MediaTypeComboBox.ItemsSource = _mediaTypes;

                MediaTypeComboBox.IsEnabled     = _mediaTypes.Count > 1;
                MediaTypeComboBox.SelectedIndex = (_mediaTypes.IndexOf(_currentMediaType) >= 0 ? _mediaTypes.IndexOf(_currentMediaType) : 0);
            }
            else
            {
                MediaTypeComboBox.IsEnabled     = false;
                MediaTypeComboBox.ItemsSource   = null;
                MediaTypeComboBox.SelectedIndex = -1;
            }
        }
Exemple #19
0
        /// <summary>
        /// Validate if all required output files exist
        /// </summary>
        /// <param name="basePath">Base filename and path to use for checking</param>
        /// <param name="system">KnownSystem type representing the media</param>
        /// <param name="type">MediaType type representing the media</param>
        /// <param name="progress">Optional result progress callback</param>
        /// <returns></returns>
        public override bool CheckAllOutputFilesExist(string basePath, KnownSystem?system, MediaType?type, IProgress <Result> progress = null)
        {
            string missingFiles = string.Empty;

            switch (type)
            {
            case MediaType.UMD:
                if (!File.Exists($"{basePath}_disc.txt"))
                {
                    missingFiles += $";{basePath}_disc.txt";
                }
                if (!File.Exists($"{basePath}_mainError.txt"))
                {
                    missingFiles += $";{basePath}_mainError.txt";
                }
                if (!File.Exists($"{basePath}_mainInfo.txt"))
                {
                    missingFiles += $";{basePath}_mainInfo.txt";
                }
                if (!File.Exists($"{basePath}_volDesc.txt"))
                {
                    missingFiles += $";{basePath}_volDesc.txt";
                }

                break;

            default:
                // Non-dumping commands will usually produce no output, so this is irrelevant
                return(true);
            }

            // Use the missing files list as an indicator
            if (string.IsNullOrEmpty(missingFiles))
            {
                return(true);
            }
            else
            {
                progress?.Report(Result.Failure($"The following files were missing: {missingFiles.TrimStart(';')}"));
                return(false);
            }
        }
Exemple #20
0
        /// <summary>
        /// Verify that, given a system and a media type, they are correct
        /// </summary>
        public static Result GetSupportStatus(KnownSystem?system, MediaType?type)
        {
            // No system chosen, update status
            if (system == KnownSystem.NONE)
            {
                return(Result.Failure("Please select a valid system"));
            }

            // If we're on an unsupported type, update the status accordingly
            switch (type)
            {
            // Fully supported types
            case MediaType.BluRay:
            case MediaType.CDROM:
            case MediaType.DVD:
            case MediaType.FloppyDisk:
            case MediaType.HardDisk:
            case MediaType.CompactFlash:
            case MediaType.SDCard:
            case MediaType.FlashDrive:
            case MediaType.HDDVD:
                return(Result.Success($"{type.LongName()} ready to dump"));

            // Partially supported types
            case MediaType.GDROM:
            case MediaType.NintendoGameCubeGameDisc:
            case MediaType.NintendoWiiOpticalDisc:
                return(Result.Success($"{type.LongName()} partially supported for dumping"));

            // Special case for other supported tools
            case MediaType.UMD:
                return(Result.Failure($"{type.LongName()} supported for submission info parsing"));

            // Specifically unknown type
            case MediaType.NONE:
                return(Result.Failure($"Please select a valid media type"));

            // Undumpable but recognized types
            default:
                return(Result.Failure($"{type.LongName()} media are not supported for dumping"));
            }
        }
Exemple #21
0
        public void ParametersFromOptionsTest(KnownSystem?knownSystem, MediaType?mediaType, bool paranoid, int rereadC2, int?subchannelLevel, Flag[] expected)
        {
            var options = new Options {
                DICParanoidMode = paranoid, DICRereadCount = rereadC2
            };
            var actual = new Parameters(knownSystem, mediaType, 'D', "disc.bin", 16, options);

            HashSet <Flag> expectedSet = new HashSet <Flag>(expected ?? new Flag[0]);
            HashSet <Flag> actualSet   = new HashSet <Flag>(actual.Keys.Cast <Flag>() ?? new Flag[0]);

            Assert.Equal(expectedSet, actualSet);
            if (rereadC2 == -1 || !Validators.GetValidMediaTypes(knownSystem).Contains(mediaType))
            {
                Assert.Null(actual.C2OpcodeValue[0]);
            }
            else
            {
                Assert.Equal(rereadC2, actual.C2OpcodeValue[0]);
            }
            Assert.Equal(subchannelLevel, actual.SubchannelReadLevelValue);
        }
Exemple #22
0
        /// <summary>
        /// Populate media type according to system type
        /// </summary>
        private void PopulateMediaType()
        {
            KnownSystem?currentSystem = SystemTypeComboBox.SelectedItem as KnownSystemComboBoxItem;

            if (currentSystem != null)
            {
                var mediaTypeValues = Validators.GetValidMediaTypes(currentSystem);
                MediaTypes = Element <MediaType> .GenerateElements().Where(m => mediaTypeValues.Contains(m.Value)).ToList();

                MediaTypeComboBox.ItemsSource = MediaTypes;

                MediaTypeComboBox.IsEnabled = MediaTypes.Count > 1;
                int currentIndex = MediaTypes.FindIndex(m => m == CurrentMediaType);
                MediaTypeComboBox.SelectedIndex = (currentIndex > -1 ? currentIndex : 0);
            }
            else
            {
                MediaTypeComboBox.IsEnabled     = false;
                MediaTypeComboBox.ItemsSource   = null;
                MediaTypeComboBox.SelectedIndex = -1;
            }
        }
Exemple #23
0
        public void KnownSystemToStringTest(KnownSystem?knownSystem, string expected)
        {
            string actual = Converters.LongName(knownSystem);

            Assert.Equal(expected, actual);
        }
Exemple #24
0
        public void BaseCommandToKnownSystemTest(DICCommand command, KnownSystem?expected)
        {
            KnownSystem?actual = Converters.ToKnownSystem(command);

            Assert.Equal(expected, actual);
        }
Exemple #25
0
        /// <summary>
        /// Get a list of valid MediaTypes for a given KnownSystem
        /// </summary>
        /// <param name="sys">KnownSystem value to check</param>
        /// <returns>MediaTypes, if possible</returns>
        public static List <MediaType?> GetValidMediaTypes(KnownSystem?sys)
        {
            var types = new List <MediaType?>();

            switch (sys)
            {
                #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/EVO_Smart_Console
            case KnownSystem.EnvizionsEVOSmartConsole:
                types.Add(MediaType.CDROM);
                types.Add(MediaType.DVD);
                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.NintendoGameCubeGameDisc);
                break;

            // https://en.wikipedia.org/wiki/Super_NES_CD-ROM
            case KnownSystem.NintendoSonySuperNESCDROMSystem:
                types.Add(MediaType.CDROM);
                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/LaserActive
            case KnownSystem.PioneerLaserActive:
                types.Add(MediaType.CDROM);
                types.Add(MediaType.LaserDisc);
                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, 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.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;

                #endregion

                #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;

            // 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.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.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.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);
                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.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.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);
                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.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;

            // 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;

                #endregion

                #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;

            // https://en.wikipedia.org/wiki/HD_DVD
            case KnownSystem.HDDVDVideo:
                types.Add(MediaType.HDDVD);
                break;

            // UNKNOWN
            case KnownSystem.NavisoftNaviken21:
                types.Add(MediaType.CDROM);
                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;

                #endregion

            case KnownSystem.NONE:
            default:
                types.Add(MediaType.NONE);
                break;
            }

            return(types);
        }
Exemple #26
0
 /// <summary>
 /// Generate parameters based on a set of known inputs
 /// </summary>
 /// <param name="system">KnownSystem value to use</param>
 /// <param name="type">MediaType value to use</param>
 /// <param name="driveLetter">Drive letter to use</param>
 /// <param name="filename">Filename to use</param>
 /// <param name="driveSpeed">Drive speed to use</param>
 /// <param name="paranoid">Enable paranoid mode (safer dumping)</param>
 /// <param name="quietMode">Enable quiet mode (no beeps)</param>
 /// <param name="retryCount">User-defined reread count</param>
 public Parameters(KnownSystem?system, MediaType?type, char driveLetter, string filename, int?driveSpeed, bool paranoid, bool quietMode, int retryCount)
     : base(system, type, driveLetter, filename, driveSpeed, paranoid, quietMode, retryCount)
 {
 }
Exemple #27
0
        /// <summary>
        /// Generate a SubmissionInfo for the output files
        /// </summary>
        /// <param name="info">Base submission info to fill in specifics for</param>
        /// <param name="basePath">Base filename and path to use for checking</param>
        /// <param name="system">KnownSystem type representing the media</param>
        /// <param name="type">MediaType type representing the media</param>
        /// <param name="drive">Drive representing the disc to get information from</param>
        /// <returns></returns>
        public override void GenerateSubmissionInfo(SubmissionInfo info, string basePath, KnownSystem?system, MediaType?type, Drive drive)
        {
            // TODO: Fill in submission info specifics for DD
            string outputDirectory = Path.GetDirectoryName(basePath);

            switch (type)
            {
                // Determine type-specific differences
            }

            switch (system)
            {
            case KnownSystem.KonamiPython2:
                if (GetPlayStationExecutableInfo(drive?.Letter, out string pythonTwoSerial, out Region? pythonTwoRegion, out string pythonTwoDate))
                {
                    info.CommonDiscInfo.Comments        += $"Internal Disc Serial: {pythonTwoSerial}\n";
                    info.CommonDiscInfo.Region           = info.CommonDiscInfo.Region ?? pythonTwoRegion;
                    info.CommonDiscInfo.EXEDateBuildDate = pythonTwoDate;
                }

                info.VersionAndEditions.Version = GetPlayStation2Version(drive?.Letter) ?? "";
                break;

            case KnownSystem.SonyPlayStation:
                if (GetPlayStationExecutableInfo(drive?.Letter, out string playstationSerial, out Region? playstationRegion, out string playstationDate))
                {
                    info.CommonDiscInfo.Comments        += $"Internal Disc Serial: {playstationSerial}\n";
                    info.CommonDiscInfo.Region           = info.CommonDiscInfo.Region ?? playstationRegion;
                    info.CommonDiscInfo.EXEDateBuildDate = playstationDate;
                }

                info.CopyProtection.AntiModchip = GetPlayStationAntiModchipDetected(drive?.Letter) ? YesNo.Yes : YesNo.No;
                break;

            case KnownSystem.SonyPlayStation2:
                if (GetPlayStationExecutableInfo(drive?.Letter, out string playstationTwoSerial, out Region? playstationTwoRegion, out string playstationTwoDate))
                {
                    info.CommonDiscInfo.Comments        += $"Internal Disc Serial: {playstationTwoSerial}\n";
                    info.CommonDiscInfo.Region           = info.CommonDiscInfo.Region ?? playstationTwoRegion;
                    info.CommonDiscInfo.EXEDateBuildDate = playstationTwoDate;
                }

                info.VersionAndEditions.Version = GetPlayStation2Version(drive?.Letter) ?? "";
                break;

            case KnownSystem.SonyPlayStation4:
                info.VersionAndEditions.Version = GetPlayStation4Version(drive?.Letter) ?? "";
                break;
            }
        }
Exemple #28
0
 /// <summary>
 /// Validate if all required output files exist
 /// </summary>
 /// <param name="basePath">Base filename and path to use for checking</param>
 /// <param name="system">KnownSystem type representing the media</param>
 /// <param name="type">MediaType type representing the media</param>
 /// <returns></returns>
 public override bool CheckAllOutputFilesExist(string basePath, KnownSystem?system, MediaType?type, IProgress <Result> progress = null)
 {
     // TODO: Figure out what sort of output files are expected... just `.bin`?
     return(true);
 }
Exemple #29
0
 public KnownSystemComboBoxItem(KnownSystem?system) => data           = system;
Exemple #30
0
 /// <inheritdoc/>
 public Parameters(KnownSystem?system, MediaType?type, char driveLetter, string filename, int?driveSpeed, Options options)
     : base(system, type, driveLetter, filename, driveSpeed, options)
 {
 }