Skip to content
Merged
Show file tree
Hide file tree
Changes from 15 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
5 changes: 5 additions & 0 deletions CHANGELIST.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
### WIP (xxxx-xx-xx)

- Fix typo for L1Toolstamp!.Label (bikerspade)
- Update redumper to build 549

### 3.3.0 (2025-01-03)

- Update packages
Expand Down
186 changes: 75 additions & 111 deletions MPF.ExecutionContexts.Test/RedumperTests.cs

Large diffs are not rendered by default.

13 changes: 6 additions & 7 deletions MPF.ExecutionContexts/Redumper/CommandStrings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,11 @@ namespace MPF.ExecutionContexts.Redumper
public static class CommandStrings
{
public const string NONE = "";
public const string CD = "cd";
public const string DVD = "dvd"; // Synonym for CD
public const string BluRay = "bd"; // Synonym for CD
public const string SACD = "sacd"; // Synonym for CD
public const string New = "new"; // Synonym for CD; Temporary command, to be removed later
public const string Disc = "disc";
public const string Rings = "rings";
public const string Dump = "dump";
public const string DumpNew = "dumpnew"; // Temporary command, to be removed later
public const string DumpExtra = "dump::extra";
public const string Refine = "refine";
public const string RefineNew = "refinenew"; // Temporary command, to be removed later
public const string Verify = "verify";
public const string DVDKey = "dvdkey";
public const string Eject = "eject";
Expand All @@ -25,7 +20,11 @@ public static class CommandStrings
public const string Hash = "hash";
public const string Info = "info";
public const string Skeleton = "skeleton";
public const string FlashMT1339 = "flash::mt1339";
public const string Subchannel = "subchannel";
public const string Debug = "debug";
public const string FixMSF = "fixmsf";
public const string DebugFlip = "debug::flip";
public const string DriveTest = "drive::test";
}
}
2 changes: 1 addition & 1 deletion MPF.ExecutionContexts/Redumper/Enumerations.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public enum ReadMethod

BE,
D8,
BE_CDDA,
BE_CDDA, // Currently an alias for BE
}

/// <summary>
Expand Down
58 changes: 31 additions & 27 deletions MPF.ExecutionContexts/Redumper/ExecutionContext.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,10 @@ public override int? Speed
[FlagStrings.HelpLong] = new FlagInput(FlagStrings.HelpShort, FlagStrings.HelpLong),
[FlagStrings.Version] = new FlagInput(FlagStrings.Version),
[FlagStrings.Verbose] = new FlagInput(FlagStrings.Verbose),
[FlagStrings.Continue] = new StringInput(FlagStrings.Continue),
[FlagStrings.AutoEject] = new FlagInput(FlagStrings.AutoEject),
[FlagStrings.Debug] = new FlagInput(FlagStrings.Debug),
[FlagStrings.DiscType] = new StringInput(FlagStrings.DiscType),
[FlagStrings.Drive] = new StringInput(FlagStrings.Drive),
[FlagStrings.Speed] = new Int32Input(FlagStrings.Speed),
[FlagStrings.Retries] = new Int32Input(FlagStrings.Retries),
Expand All @@ -75,7 +77,9 @@ public override int? Speed
// Drive Specific
[FlagStrings.PlextorSkipLeadin] = new FlagInput(FlagStrings.PlextorSkipLeadin),
[FlagStrings.PlextorLeadinRetries] = new Int32Input(FlagStrings.PlextorLeadinRetries),
[FlagStrings.PlextorLeadinForceStore] = new FlagInput(FlagStrings.PlextorLeadinForceStore),
[FlagStrings.AsusSkipLeadout] = new FlagInput(FlagStrings.AsusSkipLeadout),
[FlagStrings.AsusLeadoutRetries] = new Int32Input(FlagStrings.AsusLeadoutRetries),

// Offset
[FlagStrings.ForceOffset] = new Int32Input(FlagStrings.ForceOffset),
Expand All @@ -99,8 +103,13 @@ public override int? Speed
[FlagStrings.DumpReadSize] = new Int32Input(FlagStrings.DumpReadSize),
[FlagStrings.OverreadLeadout] = new FlagInput(FlagStrings.OverreadLeadout),
[FlagStrings.ForceUnscrambled] = new FlagInput(FlagStrings.ForceUnscrambled),
[FlagStrings.ForceRefine] = new FlagInput(FlagStrings.ForceRefine),
[FlagStrings.LegacySubs] = new FlagInput(FlagStrings.LegacySubs),
[FlagStrings.DisableCDText] = new FlagInput(FlagStrings.DisableCDText),
[FlagStrings.SkipSubcodeDesync] = new FlagInput(FlagStrings.SkipSubcodeDesync),
[FlagStrings.DriveTestSkipPlextorLeadin] = new FlagInput(FlagStrings.DriveTestSkipPlextorLeadin),
[FlagStrings.DriveTestSkipCacheRead] = new FlagInput(FlagStrings.DriveTestSkipCacheRead),
//[FlagStrings.Firmware] = new StringInput(FlagStrings.Firmware) { Quotes = true },
};

#endregion
Expand Down Expand Up @@ -134,8 +143,10 @@ public override Dictionary<string, List<string>> GetCommandSupport()
FlagStrings.HelpShort,
FlagStrings.Version,
FlagStrings.Verbose,
FlagStrings.Continue,
FlagStrings.AutoEject,
FlagStrings.Debug,
FlagStrings.DiscType,
FlagStrings.Drive,
FlagStrings.Speed,
FlagStrings.Retries,
Expand All @@ -154,7 +165,9 @@ public override Dictionary<string, List<string>> GetCommandSupport()
// Drive Specific
FlagStrings.PlextorSkipLeadin,
FlagStrings.PlextorLeadinRetries,
FlagStrings.PlextorLeadinForceStore,
FlagStrings.AsusSkipLeadout,
FlagStrings.AsusLeadoutRetries,

// Offset
FlagStrings.ForceOffset,
Expand All @@ -178,8 +191,13 @@ public override Dictionary<string, List<string>> GetCommandSupport()
FlagStrings.DumpReadSize,
FlagStrings.OverreadLeadout,
FlagStrings.ForceUnscrambled,
FlagStrings.ForceRefine,
FlagStrings.LegacySubs,
FlagStrings.DisableCDText,
FlagStrings.SkipSubcodeDesync,
FlagStrings.DriveTestSkipPlextorLeadin,
FlagStrings.DriveTestSkipCacheRead,
//FlagStrings.Firmware,
],
};
}
Expand Down Expand Up @@ -225,13 +243,8 @@ public override string GenerateParameters()
/// <inheritdoc/>
public override bool IsDumpingCommand()
{
return ModeValues?.Contains(CommandStrings.CD) == true
|| ModeValues?.Contains(CommandStrings.DVD) == true
|| ModeValues?.Contains(CommandStrings.BluRay) == true
|| ModeValues?.Contains(CommandStrings.SACD) == true
|| ModeValues?.Contains(CommandStrings.New) == true
|| ModeValues?.Contains(CommandStrings.Dump) == true
|| ModeValues?.Contains(CommandStrings.DumpNew) == true;
return ModeValues?.Contains(CommandStrings.Disc) == true
|| ModeValues?.Contains(CommandStrings.Dump) == true;
}

/// <inheritdoc/>
Expand All @@ -255,23 +268,15 @@ protected override void SetDefaultParameters(string? drivePath,
switch (MediaType)
{
case SabreTools.RedumpLib.Data.MediaType.CDROM:
ModeValues = RedumpSystem switch
{
SabreTools.RedumpLib.Data.RedumpSystem.SuperAudioCD => [CommandStrings.SACD],
_ => [CommandStrings.CD, CommandStrings.Skeleton],
};
ModeValues = [CommandStrings.Disc, CommandStrings.Skeleton];
break;
case SabreTools.RedumpLib.Data.MediaType.DVD:
case SabreTools.RedumpLib.Data.MediaType.NintendoGameCubeGameDisc:
case SabreTools.RedumpLib.Data.MediaType.NintendoWiiOpticalDisc:
ModeValues = [CommandStrings.DVD];
break;
case SabreTools.RedumpLib.Data.MediaType.HDDVD: // TODO: Keep in sync if another command string shows up
ModeValues = [CommandStrings.DVD];
break;
case SabreTools.RedumpLib.Data.MediaType.HDDVD:
case SabreTools.RedumpLib.Data.MediaType.BluRay:
case SabreTools.RedumpLib.Data.MediaType.NintendoWiiUOpticalDisc:
ModeValues = [CommandStrings.BluRay];
ModeValues = [CommandStrings.Disc];
break;
default:
BaseCommand = null;
Expand Down Expand Up @@ -341,7 +346,7 @@ protected override void SetDefaultParameters(string? drivePath,
if (GetBooleanSetting(options, SettingConstants.EnableLeadinRetry, SettingConstants.EnableLeadinRetryDefault))
{
this[FlagStrings.PlextorLeadinRetries] = true;
(_inputs[FlagStrings.Speed] as Int32Input)?.SetValue(GetInt32Setting(options, SettingConstants.LeadinRetryCount, SettingConstants.LeadinRetryCountDefault));
(_inputs[FlagStrings.PlextorLeadinRetries] as Int32Input)?.SetValue(GetInt32Setting(options, SettingConstants.LeadinRetryCount, SettingConstants.LeadinRetryCountDefault));
}
}

Expand Down Expand Up @@ -370,16 +375,11 @@ protected override bool ValidateAndSetParameters(string? parameters)
string part = parts[index];
switch (part)
{
case CommandStrings.CD:
case CommandStrings.DVD:
case CommandStrings.BluRay:
case CommandStrings.SACD:
case CommandStrings.New: // Temporary command, to be removed later
case CommandStrings.Disc:
case CommandStrings.Rings:
case CommandStrings.Dump:
case CommandStrings.DumpNew: // Temporary command, to be removed later
case CommandStrings.DumpExtra:
case CommandStrings.Refine:
case CommandStrings.RefineNew: // Temporary command, to be removed later
case CommandStrings.Verify:
case CommandStrings.DVDKey:
case CommandStrings.Eject:
Expand All @@ -389,8 +389,12 @@ protected override bool ValidateAndSetParameters(string? parameters)
case CommandStrings.Hash:
case CommandStrings.Info:
case CommandStrings.Skeleton:
//case CommandStrings.FlashMT1339:
case CommandStrings.Subchannel:
case CommandStrings.Debug:
//case CommandStrings.FixMSF:
case CommandStrings.FixMSF:
case CommandStrings.DebugFlip:
case CommandStrings.DriveTest:
ModeValues.Add(part);
break;

Expand Down
9 changes: 9 additions & 0 deletions MPF.ExecutionContexts/Redumper/FlagStrings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@ public static class FlagStrings
public const string HelpShort = "-h";
public const string Version = "--version";
public const string Verbose = "--verbose";
public const string Continue = "--continue";
public const string AutoEject = "--auto-eject";
public const string Debug = "--debug";
public const string DiscType = "--disc-type";
public const string Drive = "--drive";
public const string Speed = "--speed";
public const string Retries = "--retries";
Expand All @@ -37,7 +39,9 @@ public static class FlagStrings

public const string PlextorSkipLeadin = "--plextor-skip-leadin";
public const string PlextorLeadinRetries = "--plextor-leadin-retries";
public const string PlextorLeadinForceStore = "--plextor-leadin-force-store";
public const string AsusSkipLeadout = "--asus-skip-leadout";
public const string AsusLeadoutRetries = "--asus-leadout-retries";

#endregion

Expand Down Expand Up @@ -70,8 +74,13 @@ public static class FlagStrings
public const string DumpReadSize = "--dump-read-size";
public const string OverreadLeadout = "--overread-leadout";
public const string ForceUnscrambled = "--force-unscrambled";
public const string ForceRefine = "--force-refine";
public const string LegacySubs = "--legacy-subs";
public const string DisableCDText = "--disable-cdtext";
public const string SkipSubcodeDesync = "--skip-subcode-desync";
public const string DriveTestSkipPlextorLeadin = "--drive-test-skip-plextor-leadin";
public const string DriveTestSkipCacheRead = "--drive-test-skip-cache-read";
public const string Firmware = "--firmware";

#endregion
}
Expand Down
24 changes: 22 additions & 2 deletions MPF.Frontend/Tools/SubmissionGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -199,14 +199,34 @@ public async static Task<bool> FillFromRedump(Options options,
}

// If the line ends in a known extra track names, skip them for checking
if (hashData.Contains("(Track 0).bin")
// TODO: Smarter method to ignore all tracks that start with 0. 00. A. or AA.
if (hashData.Contains(".dmi")
|| hashData.Contains(".pfi")
|| hashData.Contains(".ss")
|| hashData.Contains("(Track 0).bin")
|| hashData.Contains("(Track 0.1).bin")
|| hashData.Contains("(Track 0.2).bin")
|| hashData.Contains("(Track 0.3).bin")
|| hashData.Contains("(Track 0.4).bin")
|| hashData.Contains("(Track 0.5).bin")
|| hashData.Contains("(Track 00).bin")
|| hashData.Contains("(Track 00.1).bin")
|| hashData.Contains("(Track 00.2).bin")
|| hashData.Contains("(Track 00.3).bin")
|| hashData.Contains("(Track 00.4).bin")
|| hashData.Contains("(Track 00.5).bin")
|| hashData.Contains("(Track A).bin")
|| hashData.Contains("(Track A.1).bin")
|| hashData.Contains("(Track A.2).bin")
|| hashData.Contains("(Track A.3).bin")
|| hashData.Contains("(Track A.4).bin")
|| hashData.Contains("(Track A.5).bin")
|| hashData.Contains("(Track AA).bin")
|| hashData.Contains("(Track AA.2).bin"))
|| hashData.Contains("(Track AA.1).bin")
|| hashData.Contains("(Track AA.2).bin")
|| hashData.Contains("(Track AA.3).bin")
|| hashData.Contains("(Track AA.4).bin")
|| hashData.Contains("(Track AA.5).bin"))
{
trackCount--;
resultProgress?.Report(ResultEventArgs.Success("Extra track found, skipping!"));
Expand Down
8 changes: 4 additions & 4 deletions MPF.Processors.Test/RedumperTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public void GetOutputFiles_CDROM_Populated()
var processor = new Redumper(RedumpSystem.IBMPCcompatible, MediaType.CDROM);

var actual = processor.GetOutputFiles(outputDirectory, outputFilename);
Assert.Equal(14, actual.Count);
Assert.Equal(15, actual.Count);
}

[Fact]
Expand All @@ -40,7 +40,7 @@ public void GetOutputFiles_DVD_Populated()
var processor = new Redumper(RedumpSystem.IBMPCcompatible, MediaType.DVD);

var actual = processor.GetOutputFiles(outputDirectory, outputFilename);
Assert.Equal(16, actual.Count);
Assert.Equal(17, actual.Count);
}

[Fact]
Expand Down Expand Up @@ -1170,7 +1170,7 @@ public void GetVersion_Invalid_Null()
[Fact]
public void GetVersion_Valid_Filled()
{
string? expected = "v1980.01.01 build_00";
string? expected = "v1980.01.01 build_000";
string log = Path.Combine(Environment.CurrentDirectory, "TestData", "Redumper", "CDROM", "test.log");
string? actual = Redumper.GetVersion(log);
Assert.Equal(expected, actual);
Expand Down Expand Up @@ -1236,7 +1236,7 @@ public void GetWriteOffset_Invalid_Null()
[Fact]
public void GetWriteOffset_Valid_Filled()
{
string? expected = "offset";
string? expected = "+0";
string log = Path.Combine(Environment.CurrentDirectory, "TestData", "Redumper", "CDROM", "test.log");
string? actual = Redumper.GetWriteOffset(log);
Assert.Equal(expected, actual);
Expand Down
4 changes: 2 additions & 2 deletions MPF.Processors.Test/TestData/Redumper/CDROM/test.log
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
DUMPING DATE (DateTime.Now)
redumper v1980.01.01 build_00 [Jan 01 1980, 00:00:00]
redumper v1980.01.01 build_000
<< GetVersion (above) >>

<< GetParameters >>
Expand Down Expand Up @@ -162,4 +162,4 @@ Universal Hash (SHA-1): da39a3ee5e6b4b0d3255bfef95601890afd80709
volume identifier: label

<< GetWriteOffset >>
disc write offset: offset
disc write offset: +0
Loading