From de8ce5c110fef70b35b662bb02a6c8a46b7f39e8 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 25 Aug 2022 10:38:20 -0700 Subject: [PATCH] Add internal name for Cleanrip outputs (fixes #398) --- CHANGELIST.md | 1 + MPF.Library/InfoTool.cs | 2 ++ MPF.Modules/CleanRIp/Parameters.cs | 14 ++++++++++---- MPF.UI.Core/ViewModels/DiscInformationViewModel.cs | 5 +++++ MPF.UI.Core/Windows/DiscInformationWindow.xaml | 1 + RedumpLib/Data/Enumerations.cs | 4 ++++ 6 files changed, 23 insertions(+), 4 deletions(-) diff --git a/CHANGELIST.md b/CHANGELIST.md index f523e297..d5de7f2e 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -105,6 +105,7 @@ - Update to BurnOutSharp 2.3.1 (nw) - Fix serial parsing for Dreamcast - Fix missing parenthesis +- Add internal name for Cleanrip outputs ### 2.3 (2022-02-05) - Start overhauling Redump information pulling, again diff --git a/MPF.Library/InfoTool.cs b/MPF.Library/InfoTool.cs index a6b92a72..41a7f266 100644 --- a/MPF.Library/InfoTool.cs +++ b/MPF.Library/InfoTool.cs @@ -2132,6 +2132,8 @@ namespace MPF.Library sorted.Add(new KeyValuePair(SiteCode.AlternativeTitle, tags[SiteCode.AlternativeTitle])); if (tags.ContainsKey(SiteCode.AlternativeForeignTitle)) sorted.Add(new KeyValuePair(SiteCode.AlternativeForeignTitle, tags[SiteCode.AlternativeForeignTitle])); + if (tags.ContainsKey(SiteCode.InternalName)) + sorted.Add(new KeyValuePair(SiteCode.InternalName, tags[SiteCode.InternalName])); if (tags.ContainsKey(SiteCode.InternalSerialName)) sorted.Add(new KeyValuePair(SiteCode.InternalSerialName, tags[SiteCode.InternalSerialName])); if (tags.ContainsKey(SiteCode.VolumeLabel)) diff --git a/MPF.Modules/CleanRIp/Parameters.cs b/MPF.Modules/CleanRIp/Parameters.cs index b76e6f13..ecffd1ca 100644 --- a/MPF.Modules/CleanRIp/Parameters.cs +++ b/MPF.Modules/CleanRIp/Parameters.cs @@ -84,10 +84,11 @@ namespace MPF.Modules.CleanRip if (File.Exists(basePath + ".bca")) info.Extras.BCA = GetBCA(basePath + ".bca"); - if (GetGameCubeWiiInformation(basePath + "-dumpinfo.txt", out Region? gcRegion, out string gcVersion)) + if (GetGameCubeWiiInformation(basePath + "-dumpinfo.txt", out Region? gcRegion, out string gcVersion, out string gcName)) { info.CommonDiscInfo.Region = gcRegion ?? info.CommonDiscInfo.Region; info.VersionAndEditions.Version = gcVersion ?? info.VersionAndEditions.Version; + info.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalName] = gcName ?? string.Empty; } break; @@ -204,8 +205,9 @@ namespace MPF.Modules.CleanRip /// Path to discinfo file /// Output region, if possible /// Output internal version of the game + /// Output internal name of the game /// - private static bool GetGameCubeWiiInformation(string dumpinfo, out Region? region, out string version) + private static bool GetGameCubeWiiInformation(string dumpinfo, out Region? region, out string version, out string name) { region = null; version = null; @@ -227,11 +229,15 @@ namespace MPF.Modules.CleanRip string line = sr.ReadLine().Trim(); if (line.StartsWith("Version")) { - version = line.Substring(9); + version = line.Substring("Version: ".Length); + } + else if (line.StartsWith("Internal Name")) + { + name = line.Substring("Internal Name: ".Length); } else if (line.StartsWith("Filename")) { - string serial = line.Substring(10); + string serial = line.Substring("Filename: ".Length); // char gameType = serial[0]; // string gameid = serial[1] + serial[2]; diff --git a/MPF.UI.Core/ViewModels/DiscInformationViewModel.cs b/MPF.UI.Core/ViewModels/DiscInformationViewModel.cs index 24c3273e..d1d0743e 100644 --- a/MPF.UI.Core/ViewModels/DiscInformationViewModel.cs +++ b/MPF.UI.Core/ViewModels/DiscInformationViewModel.cs @@ -302,6 +302,8 @@ namespace MPF.UI.Core.ViewModels Parent.EDC.Text = SubmissionInfo.EDC.EDC.LongName(); if (string.IsNullOrWhiteSpace(SubmissionInfo?.Extras?.Header)) Parent.Header.Visibility = Visibility.Collapsed; + if (SubmissionInfo?.CommonDiscInfo?.CommentsSpecialFields.Keys.Contains(SiteCode.InternalName) != true) + Parent.InternalName.Visibility = Visibility.Collapsed; if (SubmissionInfo?.CommonDiscInfo?.CommentsSpecialFields.Keys.Contains(SiteCode.InternalSerialName) != true) Parent.InternalSerialName.Visibility = Visibility.Collapsed; if (SubmissionInfo?.CopyProtection?.LibCrypt == null) @@ -453,6 +455,8 @@ namespace MPF.UI.Core.ViewModels Parent.DMIHash.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DMIHash]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.Filename)) Parent.Filename.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Filename]; + if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.InternalName)) + Parent.InternalName.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalName]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.InternalSerialName)) Parent.InternalSerialName.Text = SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalSerialName]; if (SubmissionInfo.CommonDiscInfo.CommentsSpecialFields.ContainsKey(SiteCode.Multisession)) @@ -571,6 +575,7 @@ namespace MPF.UI.Core.ViewModels // Read-Only Information SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.DMIHash] = Parent.DMIHash.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Filename] = Parent.Filename.Text; + SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalName] = Parent.InternalName.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.InternalSerialName] = Parent.InternalSerialName.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.Multisession] = Parent.Multisession.Text; SubmissionInfo.CommonDiscInfo.CommentsSpecialFields[SiteCode.PFIHash] = Parent.PFIHash.Text; diff --git a/MPF.UI.Core/Windows/DiscInformationWindow.xaml b/MPF.UI.Core/Windows/DiscInformationWindow.xaml index 4fffffbf..26df23a2 100644 --- a/MPF.UI.Core/Windows/DiscInformationWindow.xaml +++ b/MPF.UI.Core/Windows/DiscInformationWindow.xaml @@ -352,6 +352,7 @@ + diff --git a/RedumpLib/Data/Enumerations.cs b/RedumpLib/Data/Enumerations.cs index 94567acf..6021f4d0 100644 --- a/RedumpLib/Data/Enumerations.cs +++ b/RedumpLib/Data/Enumerations.cs @@ -3557,6 +3557,10 @@ namespace RedumpLib.Data [HumanReadable(ShortName = "[T:GTID]", LongName = "GT Interactive ID:")] GTInteractiveID, + // TODO: This doesn't have a site tag yet + [HumanReadable(ShortName = "Internal Name:", LongName = "Internal Name:")] + InternalName, + [HumanReadable(ShortName = "[T:ISN]", LongName = "Internal Serial:")] InternalSerialName,