From 7074fa1e2cb32c8387bd8337de0f78b0392e1b47 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Mon, 1 Jul 2019 20:50:38 -0700 Subject: [PATCH] Update to newest DIC, create new release --- CHANGELIST.md | 9 ++++ DICUI.Library/Data/Constants.cs | 4 +- DICUI.Library/Data/Enumerations.cs | 5 +- DICUI.Library/Properties/AssemblyInfo.cs | 6 +-- DICUI.Library/Utilities/Converters.cs | 19 ++++++- DICUI.Library/Utilities/DumpEnvironment.cs | 4 +- DICUI.Library/Utilities/Parameters.cs | 62 +++++++++++++++++++--- DICUI.Library/Utilities/Validators.cs | 5 ++ DICUI.Test/Utilities/ConvertersTest.cs | 2 + DICUI/Properties/AssemblyInfo.cs | 6 +-- README.md | 6 ++- appveyor.yml | 4 +- 12 files changed, 110 insertions(+), 22 deletions(-) diff --git a/CHANGELIST.md b/CHANGELIST.md index a0bba351..6adf3bd2 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -1,3 +1,12 @@ +### 1.13 (2019-07-02) +- Added new DIC commands and flags +- Made DICUI Check more robust +- Added and updated systems along with format cleanup +- Created a new SubmissionInfo template (and internals) +- Added automatic grabbing of Redump information, if possible +- Better media format support (BD, UMD) +- Initial disc type detection + ### 1.12.2 (2019-04-19) - Added DICUI Check, a new standalone tool for parsing DIC output from platforms unsupported by DICUI - Added a few machines/formats diff --git a/DICUI.Library/Data/Constants.cs b/DICUI.Library/Data/Constants.cs index 5fff95f1..2768e321 100644 --- a/DICUI.Library/Data/Constants.cs +++ b/DICUI.Library/Data/Constants.cs @@ -18,6 +18,7 @@ public const string MDS = "mds"; public const string Merge = "merge"; public const string Reset = "reset"; + public const string SACD = "sacd"; public const string Start = "start"; public const string Stop = "stop"; public const string Sub = "sub"; @@ -46,8 +47,9 @@ public const string NoFixSubP = "/np"; public const string NoFixSubQ = "/nq"; public const string NoFixSubQLibCrypt = "/nl"; - public const string NoFixSubQSecuROM = "/ns"; public const string NoFixSubRtoW = "/nr"; + public const string NoFixSubQSecuROM = "/ns"; + public const string NoSkipSS = "/nss"; public const string Raw = "/raw"; public const string Reverse = "/r"; public const string ScanAntiMod = "/am"; diff --git a/DICUI.Library/Data/Enumerations.cs b/DICUI.Library/Data/Enumerations.cs index 1219d704..71d32ae8 100644 --- a/DICUI.Library/Data/Enumerations.cs +++ b/DICUI.Library/Data/Enumerations.cs @@ -37,6 +37,7 @@ MDS, Merge, Reset, + SACD, Start, Stop, Sub, @@ -66,8 +67,9 @@ NoFixSubP, NoFixSubQ, NoFixSubQLibCrypt, - NoFixSubQSecuROM, NoFixSubRtoW, + NoFixSubQSecuROM, + NoSkipSS, Raw, Reverse, ScanAntiMod, @@ -286,6 +288,7 @@ PhotoCD, PlayStationGameSharkUpdates, RainbowDisc, + SuperAudioCD, TaoiKTV, TomyKissSite, VideoCD, diff --git a/DICUI.Library/Properties/AssemblyInfo.cs b/DICUI.Library/Properties/AssemblyInfo.cs index 3468181c..a9749a72 100644 --- a/DICUI.Library/Properties/AssemblyInfo.cs +++ b/DICUI.Library/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("DICUI.Library")] -[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyCopyright("Copyright © 2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,6 +32,6 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.11")] -[assembly: AssemblyFileVersion("1.11.0.0")] +[assembly: AssemblyVersion("1.13")] +[assembly: AssemblyFileVersion("1.13.0.0")] [assembly: InternalsVisibleTo("DICUI.Test")] diff --git a/DICUI.Library/Utilities/Converters.cs b/DICUI.Library/Utilities/Converters.cs index 38cbae9a..93e8eae2 100644 --- a/DICUI.Library/Utilities/Converters.cs +++ b/DICUI.Library/Utilities/Converters.cs @@ -28,6 +28,8 @@ namespace DICUI.Utilities return KnownSystem.SegaDreamcast; case DICCommand.BluRay: return KnownSystem.SonyPlayStation3; + case DICCommand.SACD: + return KnownSystem.SuperAudioCD; case DICCommand.XBOX: case DICCommand.XBOXSwap: return KnownSystem.MicrosoftXBOX; @@ -217,6 +219,7 @@ namespace DICUI.Utilities case DICCommand.Audio: case DICCommand.CompactDisc: case DICCommand.Data: + case DICCommand.SACD: return MediaType.CDROM; case DICCommand.GDROM: case DICCommand.Swap: @@ -540,6 +543,8 @@ namespace DICUI.Utilities return DICCommandStrings.Merge; case DICCommand.Reset: return DICCommandStrings.Reset; + case DICCommand.SACD: + return DICCommandStrings.SACD; case DICCommand.Start: return DICCommandStrings.Start; case DICCommand.Stop: @@ -598,10 +603,12 @@ namespace DICUI.Utilities return DICFlagStrings.NoFixSubQ; case DICFlag.NoFixSubQLibCrypt: return DICFlagStrings.NoFixSubQLibCrypt; - case DICFlag.NoFixSubQSecuROM: - return DICFlagStrings.NoFixSubQSecuROM; case DICFlag.NoFixSubRtoW: return DICFlagStrings.NoFixSubRtoW; + case DICFlag.NoFixSubQSecuROM: + return DICFlagStrings.NoFixSubQSecuROM; + case DICFlag.NoSkipSS: + return DICFlagStrings.NoSkipSS; case DICFlag.Raw: return DICFlagStrings.Raw; case DICFlag.Reverse: @@ -871,6 +878,8 @@ namespace DICUI.Utilities return "PlayStation GameShark Updates"; case KnownSystem.RainbowDisc: return "Rainbow Disc"; + case KnownSystem.SuperAudioCD: + return "Super Audio CD"; case KnownSystem.TaoiKTV: return "Tao iKTV"; case KnownSystem.TomyKissSite: @@ -1652,6 +1661,8 @@ namespace DICUI.Utilities return "gameshark"; case KnownSystem.RainbowDisc: return "rainbow"; + case KnownSystem.SuperAudioCD: + return "sacd"; case KnownSystem.TaoiKTV: return "iktv"; case KnownSystem.TomyKissSite: @@ -2870,6 +2881,10 @@ namespace DICUI.Utilities case "rainbowdisc": case "rainbow disc": return KnownSystem.RainbowDisc; + case "sacd": + case "superaudiocd": + case "super audio cd": + return KnownSystem.SuperAudioCD; case "iktv": case "taoiktv": case "tao iktv": diff --git a/DICUI.Library/Utilities/DumpEnvironment.cs b/DICUI.Library/Utilities/DumpEnvironment.cs index ca1f884e..765ffa1b 100644 --- a/DICUI.Library/Utilities/DumpEnvironment.cs +++ b/DICUI.Library/Utilities/DumpEnvironment.cs @@ -286,7 +286,9 @@ namespace DICUI.Utilities string outputFilename = Path.GetFileNameWithoutExtension(OutputFilename); // Some disc types are audio-only - bool audioOnly = (System == KnownSystem.AtariJaguarCD) || (System == KnownSystem.AudioCD); + bool audioOnly = (System == KnownSystem.AtariJaguarCD) + || (System == KnownSystem.AudioCD) + || (System == KnownSystem.SuperAudioCD); // Now ensure that all required files exist string combinedBase = Path.Combine(OutputDirectory, outputFilename); diff --git a/DICUI.Library/Utilities/Parameters.cs b/DICUI.Library/Utilities/Parameters.cs index 2f25fd1a..948e167c 100644 --- a/DICUI.Library/Utilities/Parameters.cs +++ b/DICUI.Library/Utilities/Parameters.cs @@ -251,6 +251,7 @@ namespace DICUI.Utilities || Command == DICCommand.Floppy || Command == DICCommand.GDROM || Command == DICCommand.Reset + || Command == DICCommand.SACD || Command == DICCommand.Start || Command == DICCommand.Stop || Command == DICCommand.Swap @@ -275,6 +276,7 @@ namespace DICUI.Utilities || Command == DICCommand.GDROM || Command == DICCommand.MDS || Command == DICCommand.Merge + || Command == DICCommand.SACD || Command == DICCommand.Swap || Command == DICCommand.Sub || Command == DICCommand.XBOX @@ -304,6 +306,7 @@ namespace DICUI.Utilities || Command == DICCommand.Data || Command == DICCommand.DigitalVideoDisc || Command == DICCommand.GDROM + || Command == DICCommand.SACD || Command == DICCommand.Swap || Command == DICCommand.XBOX || Command == DICCommand.XBOXSwap @@ -524,6 +527,16 @@ namespace DICUI.Utilities parameters.Add(DICFlag.NoFixSubRtoW.LongName()); } + // Not skip security sectors + if (Command == DICCommand.XBOX + || Command == DICCommand.XBOXSwap + || Command == DICCommand.XGD2Swap + || Command == DICCommand.XGD3Swap) + { + if (this[DICFlag.NoSkipSS]) + parameters.Add(DICFlag.NoSkipSS.LongName()); + } + // Raw read (2064 byte/sector) if (Command == DICCommand.DigitalVideoDisc) { @@ -909,6 +922,28 @@ namespace DICUI.Utilities Command = DICCommand.Reset; break; + case DICCommandStrings.SACD: + if (!DoesExist(parts, 1) || !IsValidDriveLetter(parts[1])) + return false; + else + DriveLetter = parts[1]; + + if (!DoesExist(parts, 2) || IsFlag(parts[2])) + return false; + else + Filename = parts[2]; + + if (!DoesExist(parts, 3) || !IsValidNumber(parts[3], lowerBound: 0, upperBound: 16)) + return false; + else + DriveSpeed = Int32.Parse(parts[3]); + + if (parts.Count > 4) + return false; + + Command = DICCommand.SACD; + break; + case DICCommandStrings.Start: if (!DoesExist(parts, 1) || !IsValidDriveLetter(parts[1])) return false; @@ -1189,6 +1224,16 @@ namespace DICUI.Utilities this[DICFlag.NoFixSubQLibCrypt] = true; break; + case DICFlagStrings.NoFixSubRtoW: + if (parts[0] != DICCommandStrings.Audio + && parts[0] != DICCommandStrings.CompactDisc + && parts[0] != DICCommandStrings.Data + && parts[0] != DICCommandStrings.GDROM) + return false; + + this[DICFlag.NoFixSubRtoW] = true; + break; + case DICFlagStrings.NoFixSubQSecuROM: if (parts[0] != DICCommandStrings.Audio && parts[0] != DICCommandStrings.CompactDisc @@ -1199,14 +1244,14 @@ namespace DICUI.Utilities this[DICFlag.NoFixSubQSecuROM] = true; break; - case DICFlagStrings.NoFixSubRtoW: - if (parts[0] != DICCommandStrings.Audio - && parts[0] != DICCommandStrings.CompactDisc - && parts[0] != DICCommandStrings.Data - && parts[0] != DICCommandStrings.GDROM) + case DICFlagStrings.NoSkipSS: + if (parts[0] != DICCommandStrings.XBOX + && parts[0] != DICCommandStrings.XBOXSwap + && parts[0] != DICCommandStrings.XGD2Swap + && parts[0] != DICCommandStrings.XGD3Swap) return false; - this[DICFlag.NoFixSubRtoW] = true; + this[DICFlag.NoSkipSS] = true; break; case DICFlagStrings.Raw: @@ -1415,7 +1460,10 @@ namespace DICUI.Utilities switch (type) { case MediaType.CDROM: - Command = DICCommand.CompactDisc; + if (system == KnownSystem.SuperAudioCD) + Command = DICCommand.SACD; + else + Command = DICCommand.CompactDisc; return; case MediaType.DVD: if (system == KnownSystem.MicrosoftXBOX diff --git a/DICUI.Library/Utilities/Validators.cs b/DICUI.Library/Utilities/Validators.cs index 6ebd04af..2927c70d 100644 --- a/DICUI.Library/Utilities/Validators.cs +++ b/DICUI.Library/Utilities/Validators.cs @@ -647,6 +647,11 @@ namespace DICUI.Utilities types.Add(MediaType.CDROM); break; + // https://en.wikipedia.org/wiki/Super_Audio_CD + case KnownSystem.SuperAudioCD: + 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); diff --git a/DICUI.Test/Utilities/ConvertersTest.cs b/DICUI.Test/Utilities/ConvertersTest.cs index e87454ed..793dbddc 100644 --- a/DICUI.Test/Utilities/ConvertersTest.cs +++ b/DICUI.Test/Utilities/ConvertersTest.cs @@ -19,6 +19,7 @@ namespace DICUI.Test.Utilities [InlineData(DICCommand.GDROM, MediaType.GDROM)] [InlineData(DICCommand.MDS, null)] [InlineData(DICCommand.Reset, null)] + [InlineData(DICCommand.SACD, MediaType.CDROM)] [InlineData(DICCommand.Start, null)] [InlineData(DICCommand.Stop, null)] [InlineData(DICCommand.Sub, null)] @@ -42,6 +43,7 @@ namespace DICUI.Test.Utilities [InlineData(DICCommand.GDROM, KnownSystem.SegaDreamcast)] [InlineData(DICCommand.MDS, null)] [InlineData(DICCommand.Reset, null)] + [InlineData(DICCommand.SACD, KnownSystem.SuperAudioCD)] [InlineData(DICCommand.Start, null)] [InlineData(DICCommand.Stop, null)] [InlineData(DICCommand.Sub, null)] diff --git a/DICUI/Properties/AssemblyInfo.cs b/DICUI/Properties/AssemblyInfo.cs index e5b38e1b..5998129f 100644 --- a/DICUI/Properties/AssemblyInfo.cs +++ b/DICUI/Properties/AssemblyInfo.cs @@ -12,7 +12,7 @@ using System.Windows; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("DICUI")] -[assembly: AssemblyCopyright("Copyright © 2018")] +[assembly: AssemblyCopyright("Copyright © 2019")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -51,8 +51,8 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.11")] -[assembly: AssemblyFileVersion("1.11.0.0")] +[assembly: AssemblyVersion("1.13")] +[assembly: AssemblyFileVersion("1.13.0.0")] // Anything marked as internal can be used by the test methods [assembly: InternalsVisibleTo("DICUI.Test")] \ No newline at end of file diff --git a/README.md b/README.md index 8aff6e75..4b220383 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,10 @@ Ensure that your operating system is as up-to-date as possible, since some featu ## Releases -Download the latest release here: -[https://github.com/SabreTools/DICUI/releases](https://github.com/SabreTools/DICUI/releases) +For those who would rather the most recently stable build, ownload the latest release here: +[Releases Page](https://github.com/SabreTools/DICUI/releases) + +For those who like to test the newest features, download the latest AppVeyor WIP build here: [AppVeyor](https://ci.appveyor.com/project/mnadareski/dicui/build/artifacts) ## Changelist diff --git a/appveyor.yml b/appveyor.yml index 3f7470db..ce13a1d4 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -32,9 +32,9 @@ build: # post-build step after_build: -- ps: appveyor DownloadFile https://github.com/saramibreak/DiscImageCreator/files/3008503/DiscImageCreator_20190326.zip +- ps: appveyor DownloadFile https://github.com/saramibreak/DiscImageCreator/files/3341769/DiscImageCreator_20190627.zip - ps: appveyor DownloadFile http://www.rawdump.net/tools/subdump_fua_0x28.zip -- 7z e DiscImageCreator_20190326.zip -oDICUI\bin\Debug\Programs Release_ANSI\* +- 7z e DiscImageCreator_20190627.zip -oDICUI\bin\Debug\Programs Release_ANSI\* - 7z e subdump_fua_0x28.zip -oDICUI\bin\Debug * - mv DICUI\bin\Debug\subdump_fua_0x28.exe DICUI\bin\Debug\subdump.exe - 7z a DICUI.zip DICUI\bin\Debug\*