diff --git a/CHANGELIST.md b/CHANGELIST.md index d726ca6d..b20d490d 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -14,6 +14,7 @@ - Quote input paths if needed - Allow separate mounted path for Linux - Fix cleaning XGD3 SS +- Prepare Redumper for XGD support ### 3.2.1 (2024-08-05) diff --git a/MPF.Processors/DiscImageCreator.cs b/MPF.Processors/DiscImageCreator.cs index ec29cf43..407f310b 100644 --- a/MPF.Processors/DiscImageCreator.cs +++ b/MPF.Processors/DiscImageCreator.cs @@ -284,7 +284,6 @@ namespace MPF.Processors } /// - /// Determining the PSX/PS2 executable name is the last use of drive in this method public override void GenerateSubmissionInfo(SubmissionInfo info, string basePath, bool redumpCompat) { var outputDirectory = Path.GetDirectoryName(basePath); diff --git a/MPF.Processors/Redumper.cs b/MPF.Processors/Redumper.cs index db5e7c22..50d22aa4 100644 --- a/MPF.Processors/Redumper.cs +++ b/MPF.Processors/Redumper.cs @@ -338,11 +338,35 @@ namespace MPF.Processors break; case RedumpSystem.MicrosoftXbox: - // TODO: Support DMI and additional file information when generated + string xmidString = ProcessingTool.GetXGD1XMID($"{basePath}.manufacturer"); + var xmid = SabreTools.Serialization.Wrappers.XMID.Create(xmidString); + if (xmid != null) + { + info.CommonDiscInfo!.CommentsSpecialFields![SiteCode.XMID] = xmidString?.TrimEnd('\0') ?? string.Empty; + info.CommonDiscInfo.Serial = xmid.Serial ?? string.Empty; + if (!redumpCompat) + info.VersionAndEditions!.Version = xmid.Version ?? string.Empty; + + info.CommonDiscInfo.Region = ProcessingTool.GetXGDRegion(xmid.Model.RegionIdentifier); + } + + // TODO: Support SS and additional file information when generated break; case RedumpSystem.MicrosoftXbox360: - // TODO: Support DMI and additional file information when generated + string xemidString = ProcessingTool.GetXGD23XeMID($"{basePath}.manufacturer"); + var xemid = SabreTools.Serialization.Wrappers.XeMID.Create(xemidString); + if (xemid != null) + { + info.CommonDiscInfo!.CommentsSpecialFields![SiteCode.XeMID] = xemidString?.TrimEnd('\0') ?? string.Empty; + info.CommonDiscInfo.Serial = xemid.Serial ?? string.Empty; + if (!redumpCompat) + info.VersionAndEditions!.Version = xemid.Version ?? string.Empty; + + info.CommonDiscInfo.Region = ProcessingTool.GetXGDRegion(xemid.Model.RegionIdentifier); + } + + // TODO: Support SS and additional file information when generated break; case RedumpSystem.NamcoSegaNintendoTriforce: