Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

- Check for null or empty layerbreak arrays
- Check range-specific values in layerbreak
- Update Redumper to build 671

### 3.6.0 (2025-11-28)

Expand Down
114 changes: 57 additions & 57 deletions MPF.ExecutionContexts.Test/RedumperTests.cs

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions MPF.ExecutionContexts/Redumper/ExecutionContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public override int? Speed
[FlagStrings.LeaveUnchanged] = new FlagInput(FlagStrings.LeaveUnchanged),
[FlagStrings.ForceQTOC] = new FlagInput(FlagStrings.ForceQTOC),
[FlagStrings.SkipFill] = new UInt8Input(FlagStrings.SkipFill),
[FlagStrings.ISO9660Trim] = new FlagInput(FlagStrings.ISO9660Trim),
[FlagStrings.FilesystemTrim] = new FlagInput(FlagStrings.FilesystemTrim),

// Drive Test
[FlagStrings.DriveTestSkipPlextorLeadin] = new FlagInput(FlagStrings.DriveTestSkipPlextorLeadin),
Expand All @@ -118,6 +118,7 @@ public override int? Speed
[FlagStrings.ForceUnscrambled] = new FlagInput(FlagStrings.ForceUnscrambled),
[FlagStrings.ForceRefine] = new FlagInput(FlagStrings.ForceRefine),
//[FlagStrings.Firmware] = new StringInput(FlagStrings.Firmware) { Quotes = true },
[FlagStrings.ForceFlash] = new FlagInput(FlagStrings.ForceFlash),
[FlagStrings.SkipSubcodeDesync] = new FlagInput(FlagStrings.SkipSubcodeDesync),
[FlagStrings.Rings] = new FlagInput(FlagStrings.Rings),
[FlagStrings.CdrErrorThreshold] = new Int32Input(FlagStrings.CdrErrorThreshold),
Expand Down Expand Up @@ -198,7 +199,7 @@ public override Dictionary<string, List<string>> GetCommandSupport()
FlagStrings.LeaveUnchanged,
FlagStrings.ForceQTOC,
FlagStrings.SkipFill,
FlagStrings.ISO9660Trim,
FlagStrings.FilesystemTrim,

// Drive Test
FlagStrings.DriveTestSkipPlextorLeadin,
Expand All @@ -217,6 +218,7 @@ public override Dictionary<string, List<string>> GetCommandSupport()
FlagStrings.ForceUnscrambled,
FlagStrings.ForceRefine,
//FlagStrings.Firmware,
FlagStrings.ForceFlash,
FlagStrings.SkipSubcodeDesync,
FlagStrings.Rings,
FlagStrings.CdrErrorThreshold,
Expand Down
3 changes: 2 additions & 1 deletion MPF.ExecutionContexts/Redumper/FlagStrings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public static class FlagStrings
public const string LeaveUnchanged = "--leave-unchanged";
public const string ForceQTOC = "--force-qtoc";
public const string SkipFill = "--skip-fill";
public const string ISO9660Trim = "--iso9660-trim";
public const string FilesystemTrim = "--filesystem-trim";

#endregion

Expand All @@ -88,6 +88,7 @@ public static class FlagStrings
public const string ForceUnscrambled = "--force-unscrambled";
public const string ForceRefine = "--force-refine";
public const string Firmware = "--firmware";
public const string ForceFlash = "--force-flash";
public const string SkipSubcodeDesync = "--skip-subcode-desync";
public const string Rings = "--rings";
public const string CdrErrorThreshold = "--cdr-error-threshold";
Expand Down
13 changes: 3 additions & 10 deletions MPF.Processors.Test/DiscImageCreatorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1242,15 +1242,13 @@ public void GetXGDAuxInfo_Null_Null()
out string? dmihash,
out string? pfihash,
out string? sshash,
out string? ss,
out string? ssver);
out string? ss);

Assert.False(actual);
Assert.Null(dmihash);
Assert.Null(pfihash);
Assert.Null(sshash);
Assert.Null(ss);
Assert.Null(ssver);
}

[Fact]
Expand All @@ -1261,36 +1259,31 @@ public void GetXGDAuxInfo_Invalid_Null()
out string? dmihash,
out string? pfihash,
out string? sshash,
out string? ss,
out string? ssver);
out string? ss);

Assert.False(actual);
Assert.Null(dmihash);
Assert.Null(pfihash);
Assert.Null(sshash);
Assert.Null(ss);
Assert.Null(ssver);
}

[Fact]
public void GetXGDAuxInfo_Valid_Filled()
{
string? expectedSs = "0-12345";
string? expectedSsver = "01";
string disc = Path.Combine(Environment.CurrentDirectory, "TestData", "DiscImageCreator", "CDROM", "test_disc.txt");
bool actual = DiscImageCreator.GetXGDAuxInfo(disc,
out string? dmihash,
out string? pfihash,
out string? sshash,
out string? ss,
out string? ssver);
out string? ss);

Assert.True(actual);
Assert.Equal("00000000", dmihash);
Assert.Equal("00000000", pfihash);
Assert.Equal("00000000", sshash);
Assert.Equal(expectedSs, ss);
Assert.Equal(expectedSsver, ssver);
}

#endregion
Expand Down
24 changes: 6 additions & 18 deletions MPF.Processors/DiscImageCreator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -345,22 +345,18 @@ public override void GenerateSubmissionInfo(SubmissionInfo info, MediaType? medi
info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSHash] = xgd1SSHash ?? string.Empty;
}

if (GetXGDAuxInfo($"{basePath}_disc.txt", out _, out _, out _, out var xgd1SS, out _))
if (GetXGDAuxInfo($"{basePath}_disc.txt", out _, out _, out _, out var xgd1SS))
{
// SS Version from DIC is ignored now
//info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSVersion] = xgd1SSVer ?? string.Empty;
info.Extras.SecuritySectorRanges = xgd1SS ?? string.Empty;
}
}
else
{
if (GetXGDAuxInfo($"{basePath}_disc.txt", out var xgd1DMIHash, out var xgd1PFIHash, out var xgd1SSHash, out var xgd1SS, out _))
if (GetXGDAuxInfo($"{basePath}_disc.txt", out var xgd1DMIHash, out var xgd1PFIHash, out var xgd1SSHash, out var xgd1SS))
{
info.CommonDiscInfo.CommentsSpecialFields[SiteCode.DMIHash] = xgd1DMIHash ?? string.Empty;
info.CommonDiscInfo.CommentsSpecialFields[SiteCode.PFIHash] = xgd1PFIHash ?? string.Empty;
info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSHash] = xgd1SSHash ?? string.Empty;
// SS Version from DIC is ignored now
//info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSVersion] = xgd1SSVer ?? string.Empty;
info.Extras.SecuritySectorRanges = xgd1SS ?? string.Empty;
}
}
Expand Down Expand Up @@ -391,22 +387,18 @@ public override void GenerateSubmissionInfo(SubmissionInfo info, MediaType? medi
info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSHash] = xgd23SSHash ?? string.Empty;
}

if (GetXGDAuxInfo($"{basePath}_disc.txt", out _, out _, out _, out var xgd23SS, out _))
if (GetXGDAuxInfo($"{basePath}_disc.txt", out _, out _, out _, out var xgd23SS))
{
// SS Version from DIC is ignored now
//info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSVersion] = xgd23SSVer ?? string.Empty;
info.Extras.SecuritySectorRanges = xgd23SS ?? string.Empty;
}
}
else
{
if (GetXGDAuxInfo($"{basePath}_disc.txt", out var xgd23DMIHash, out var xgd23PFIHash, out var xgd23SSHash, out var xgd23SS, out _))
if (GetXGDAuxInfo($"{basePath}_disc.txt", out var xgd23DMIHash, out var xgd23PFIHash, out var xgd23SSHash, out var xgd23SS))
{
info.CommonDiscInfo.CommentsSpecialFields[SiteCode.DMIHash] = xgd23DMIHash ?? string.Empty;
info.CommonDiscInfo.CommentsSpecialFields[SiteCode.PFIHash] = xgd23PFIHash ?? string.Empty;
info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSHash] = xgd23SSHash ?? string.Empty;
// SS Version from DIC is ignored now
//info.CommonDiscInfo.CommentsSpecialFields[SiteCode.SSVersion] = xgd23SSVer ?? string.Empty;
info.Extras.SecuritySectorRanges = xgd23SS ?? string.Empty;
}
}
Expand Down Expand Up @@ -2387,11 +2379,10 @@ internal static bool GetXGDAuxHashInfo(Datafile? suppl, out string? dmihash, out
/// <param name="pfihash">Extracted PFI.bin CRC32 hash (upper-cased)</param>
/// <param name="sshash">Extracted SS.bin CRC32 hash (upper-cased)</param>
/// <param name="ss">Extracted security sector data</param>
/// <param name="ssver">Extracted security sector version</param>
/// <returns>True on successful extraction of info, false otherwise</returns>
internal static bool GetXGDAuxInfo(string disc, out string? dmihash, out string? pfihash, out string? sshash, out string? ss, out string? ssver)
internal static bool GetXGDAuxInfo(string disc, out string? dmihash, out string? pfihash, out string? sshash, out string? ss)
{
dmihash = null; pfihash = null; sshash = null; ss = null; ssver = null;
dmihash = null; pfihash = null; sshash = null; ss = null;

// If the file doesn't exist, we can't get info from it
if (string.IsNullOrEmpty(disc))
Expand All @@ -2402,9 +2393,6 @@ internal static bool GetXGDAuxInfo(string disc, out string? dmihash, out string?
// This flag is needed because recent versions of DIC include security data twice
bool foundSecuritySectors = false;

// SS version for all Kreon DIC dumps is v1
ssver = "01";

try
{
using var sr = File.OpenText(disc);
Expand Down
2 changes: 1 addition & 1 deletion MPF.UI/Resources/Strings.fr.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@

<!-- Eject Window -->
<system:String x:Key="EjectTitleString">Éjecter</system:String>
<system:String x:Key="EjectMessageString">Il est maintenant sûr d’éjecter le disque</system:String>
<system:String x:Key="EjectMessageString">Vous pouvez maintenant éjecter le disque en toute sécurité</system:String>

<!-- Ask Before Quit Window -->
<system:String x:Key="QuitTitleString">Quitter</system:String>
Expand Down
16 changes: 8 additions & 8 deletions publish-nix.sh
Original file line number Diff line number Diff line change
Expand Up @@ -100,14 +100,14 @@ function download_programs() {
DL_MAP["Creator_win-x86"]="https://github.com/user-attachments/files/22080480/DiscImageCreator_20250901.zip"

# Redumper
DL_MAP["Redumper_linux-arm64"]="https://github.com/superg/redumper/releases/download/b665/redumper-b665-linux-arm64.zip"
DL_MAP["Redumper_linux-x64"]="https://github.com/superg/redumper/releases/download/b665/redumper-b665-linux-x64.zip"
#DL_MAP["Redumper_linux_x86"]="https://github.com/superg/redumper/releases/download/b665/redumper-b665-linux-x86.zip"
DL_MAP["Redumper_osx-arm64"]="https://github.com/superg/redumper/releases/download/b665/redumper-b665-macos-arm64.zip"
DL_MAP["Redumper_osx-x64"]="https://github.com/superg/redumper/releases/download/b665/redumper-b665-macos-x64.zip"
DL_MAP["Redumper_win-arm64"]="https://github.com/superg/redumper/releases/download/b665/redumper-b665-windows-arm64.zip"
DL_MAP["Redumper_win-x64"]="https://github.com/superg/redumper/releases/download/b665/redumper-b665-windows-x64.zip"
DL_MAP["Redumper_win-x86"]="https://github.com/superg/redumper/releases/download/b665/redumper-b665-windows-x86.zip"
DL_MAP["Redumper_linux-arm64"]="https://github.com/superg/redumper/releases/download/b671/redumper-b671-linux-arm64.zip"
DL_MAP["Redumper_linux-x64"]="https://github.com/superg/redumper/releases/download/b671/redumper-b671-linux-x64.zip"
#DL_MAP["Redumper_linux_x86"]="https://github.com/superg/redumper/releases/download/b671/redumper-b671-linux-x86.zip"
DL_MAP["Redumper_osx-arm64"]="https://github.com/superg/redumper/releases/download/b671/redumper-b671-macos-arm64.zip"
DL_MAP["Redumper_osx-x64"]="https://github.com/superg/redumper/releases/download/b671/redumper-b671-macos-x64.zip"
DL_MAP["Redumper_win-arm64"]="https://github.com/superg/redumper/releases/download/b671/redumper-b671-windows-arm64.zip"
DL_MAP["Redumper_win-x64"]="https://github.com/superg/redumper/releases/download/b671/redumper-b671-windows-x64.zip"
DL_MAP["Redumper_win-x86"]="https://github.com/superg/redumper/releases/download/b671/redumper-b671-windows-x86.zip"

# Download and extract files
echo "===== Downloading Required Programs ====="
Expand Down
16 changes: 8 additions & 8 deletions publish-win.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -89,14 +89,14 @@ function Download-Programs {
"Creator_win-x64" = "https://github.com/user-attachments/files/22080480/DiscImageCreator_20250901.zip"

# Redumper
"Redumper_linux-arm64" = "https://github.com/superg/redumper/releases/download/b665/redumper-b665-linux-arm64.zip"
"Redumper_linux-x64" = "https://github.com/superg/redumper/releases/download/b665/redumper-b665-linux-x64.zip"
#"Redumper_linux-x86" = "https://github.com/superg/redumper/releases/download/b665/redumper-b665-linux-x86.zip"
"Redumper_osx-arm64" = "https://github.com/superg/redumper/releases/download/b665/redumper-b665-macos-arm64.zip"
"Redumper_osx-x64" = "https://github.com/superg/redumper/releases/download/b665/redumper-b665-macos-x64.zip"
"Redumper_win-arm64" = "https://github.com/superg/redumper/releases/download/b665/redumper-b665-windows-arm64.zip"
"Redumper_win-x86" = "https://github.com/superg/redumper/releases/download/b665/redumper-b665-windows-x86.zip"
"Redumper_win-x64" = "https://github.com/superg/redumper/releases/download/b665/redumper-b665-windows-x64.zip"
"Redumper_linux-arm64" = "https://github.com/superg/redumper/releases/download/b671/redumper-b671-linux-arm64.zip"
"Redumper_linux-x64" = "https://github.com/superg/redumper/releases/download/b671/redumper-b671-linux-x64.zip"
#"Redumper_linux-x86" = "https://github.com/superg/redumper/releases/download/b671/redumper-b671-linux-x86.zip"
"Redumper_osx-arm64" = "https://github.com/superg/redumper/releases/download/b671/redumper-b671-macos-arm64.zip"
"Redumper_osx-x64" = "https://github.com/superg/redumper/releases/download/b671/redumper-b671-macos-x64.zip"
"Redumper_win-arm64" = "https://github.com/superg/redumper/releases/download/b671/redumper-b671-windows-arm64.zip"
"Redumper_win-x86" = "https://github.com/superg/redumper/releases/download/b671/redumper-b671-windows-x86.zip"
"Redumper_win-x64" = "https://github.com/superg/redumper/releases/download/b671/redumper-b671-windows-x64.zip"
}

# Download and extract files
Expand Down