diff --git a/CHANGELIST.md b/CHANGELIST.md index 20b50e3f..a82f4e04 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -48,6 +48,7 @@ - Support more new redumper changes - Update Redumper to build 699 - Handle quoted flags, more quoted value types +- Update Redumper to build 700 ### 3.6.0 (2025-11-28) diff --git a/MPF.Processors/Redumper.cs b/MPF.Processors/Redumper.cs index 37bcc720..43a7f4c4 100644 --- a/MPF.Processors/Redumper.cs +++ b/MPF.Processors/Redumper.cs @@ -209,6 +209,9 @@ namespace MPF.Processors long scsiErrors = GetSCSIErrorCount($"{basePath}.log"); info.CommonDiscInfo.ErrorsCount = scsiErrors == -1 ? "Error retrieving error count" : scsiErrors.ToString(); + // Get BCA information, if available + info.Extras.BCA = GetBCA($"{basePath}.bca"); + // Bluray-specific options if (mediaType == MediaType.BluRay || mediaType == MediaType.NintendoWiiUOpticalDisc) { @@ -217,6 +220,7 @@ namespace MPF.Processors { case RedumpSystem.MicrosoftXboxOne: case RedumpSystem.MicrosoftXboxSeriesXS: + case RedumpSystem.NintendoWiiU: case RedumpSystem.SonyPlayStation3: case RedumpSystem.SonyPlayStation4: case RedumpSystem.SonyPlayStation5: @@ -868,6 +872,47 @@ namespace MPF.Processors #region Information Extraction Methods + /// + /// Get the hex contents of the BCA file + /// + /// Path to the BCA file associated with the dump + /// BCA data as a hex string if possible, null on error + /// https://stackoverflow.com/questions/9932096/add-separator-to-string-at-every-n-characters + internal static string? GetBCA(string bcaPath) + { + // If the file doesn't exist, we can't get the info + if (string.IsNullOrEmpty(bcaPath)) + return null; + if (!File.Exists(bcaPath)) + return null; + + try + { + var hex = ProcessingTool.GetFullFile(bcaPath, true); + if (hex is null) + return null; + + // Separate into blocks of 4 hex digits and newlines + // Skips the 4-byte header + var bca = new StringBuilder(); + for (int i = 4; i < hex.Length; i++) + { + bca.Append(hex[i]); + if ((i + 1) % 32 == 0) + bca.AppendLine(); + else if ((i + 1) % 4 == 0) + bca.Append(' '); + } + + return bca.ToString(); + } + catch + { + // Absorb the exception right now + return null; + } + } + /// /// Get the cuesheet from the input file, if possible /// diff --git a/publish-nix.sh b/publish-nix.sh index 1cca574e..54c7f07e 100755 --- a/publish-nix.sh +++ b/publish-nix.sh @@ -100,14 +100,14 @@ function download_programs() { DL_MAP["Creator_win-x86"]="https://github.com/user-attachments/files/24401506/DiscImageCreator_20260101.zip" # Redumper - DL_MAP["Redumper_linux-arm64"]="https://github.com/superg/redumper/releases/download/b699/redumper-b699-linux-arm64.zip" - DL_MAP["Redumper_linux-x64"]="https://github.com/superg/redumper/releases/download/b699/redumper-b699-linux-x64.zip" - #DL_MAP["Redumper_linux_x86"]="https://github.com/superg/redumper/releases/download/b699/redumper-b699-linux-x86.zip" - DL_MAP["Redumper_osx-arm64"]="https://github.com/superg/redumper/releases/download/b699/redumper-b699-macos-arm64.zip" - DL_MAP["Redumper_osx-x64"]="https://github.com/superg/redumper/releases/download/b699/redumper-b699-macos-x64.zip" - DL_MAP["Redumper_win-arm64"]="https://github.com/superg/redumper/releases/download/b699/redumper-b699-windows-arm64.zip" - DL_MAP["Redumper_win-x64"]="https://github.com/superg/redumper/releases/download/b699/redumper-b699-windows-x64.zip" - DL_MAP["Redumper_win-x86"]="https://github.com/superg/redumper/releases/download/b699/redumper-b699-windows-x86.zip" + DL_MAP["Redumper_linux-arm64"]="https://github.com/superg/redumper/releases/download/b700/redumper-b700-linux-arm64.zip" + DL_MAP["Redumper_linux-x64"]="https://github.com/superg/redumper/releases/download/b700/redumper-b700-linux-x64.zip" + #DL_MAP["Redumper_linux_x86"]="https://github.com/superg/redumper/releases/download/b700/redumper-b700-linux-x86.zip" + DL_MAP["Redumper_osx-arm64"]="https://github.com/superg/redumper/releases/download/b700/redumper-b700-macos-arm64.zip" + DL_MAP["Redumper_osx-x64"]="https://github.com/superg/redumper/releases/download/b700/redumper-b700-macos-x64.zip" + DL_MAP["Redumper_win-arm64"]="https://github.com/superg/redumper/releases/download/b700/redumper-b700-windows-arm64.zip" + DL_MAP["Redumper_win-x64"]="https://github.com/superg/redumper/releases/download/b700/redumper-b700-windows-x64.zip" + DL_MAP["Redumper_win-x86"]="https://github.com/superg/redumper/releases/download/b700/redumper-b700-windows-x86.zip" # Download and extract files echo "===== Downloading Required Programs =====" diff --git a/publish-win.ps1 b/publish-win.ps1 index 4a938c73..93406032 100644 --- a/publish-win.ps1 +++ b/publish-win.ps1 @@ -89,14 +89,14 @@ function Download-Programs { "Creator_win-x64" = "https://github.com/user-attachments/files/24401506/DiscImageCreator_20260101.zip" # Redumper - "Redumper_linux-arm64" = "https://github.com/superg/redumper/releases/download/b699/redumper-b699-linux-arm64.zip" - "Redumper_linux-x64" = "https://github.com/superg/redumper/releases/download/b699/redumper-b699-linux-x64.zip" - #"Redumper_linux-x86" = "https://github.com/superg/redumper/releases/download/b699/redumper-b699-linux-x86.zip" - "Redumper_osx-arm64" = "https://github.com/superg/redumper/releases/download/b699/redumper-b699-macos-arm64.zip" - "Redumper_osx-x64" = "https://github.com/superg/redumper/releases/download/b699/redumper-b699-macos-x64.zip" - "Redumper_win-arm64" = "https://github.com/superg/redumper/releases/download/b699/redumper-b699-windows-arm64.zip" - "Redumper_win-x86" = "https://github.com/superg/redumper/releases/download/b699/redumper-b699-windows-x86.zip" - "Redumper_win-x64" = "https://github.com/superg/redumper/releases/download/b699/redumper-b699-windows-x64.zip" + "Redumper_linux-arm64" = "https://github.com/superg/redumper/releases/download/b700/redumper-b700-linux-arm64.zip" + "Redumper_linux-x64" = "https://github.com/superg/redumper/releases/download/b700/redumper-b700-linux-x64.zip" + #"Redumper_linux-x86" = "https://github.com/superg/redumper/releases/download/b700/redumper-b700-linux-x86.zip" + "Redumper_osx-arm64" = "https://github.com/superg/redumper/releases/download/b700/redumper-b700-macos-arm64.zip" + "Redumper_osx-x64" = "https://github.com/superg/redumper/releases/download/b700/redumper-b700-macos-x64.zip" + "Redumper_win-arm64" = "https://github.com/superg/redumper/releases/download/b700/redumper-b700-windows-arm64.zip" + "Redumper_win-x86" = "https://github.com/superg/redumper/releases/download/b700/redumper-b700-windows-x86.zip" + "Redumper_win-x64" = "https://github.com/superg/redumper/releases/download/b700/redumper-b700-windows-x64.zip" } # Download and extract files