Skip to content

Commit 7e39b06

Browse files
committed
in case of disc read errors mark dump as broken
1 parent ee2766f commit 7e39b06

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

Ps3DiscDumper/Decrypter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public Decrypter(Stream fileStream, Stream discStream, byte[] decryptionKey, lon
101101
SectorPosition = startSector;
102102
}
103103

104-
public override int Read( byte[] buffer, int offset, int count)
104+
public override int Read(byte[] buffer, int offset, int count)
105105
{
106106
if (Position == inputStream.Length)
107107
return 0;

Ps3DiscDumper/Dumper.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace Ps3DiscDumper
2222
{
2323
public class Dumper: IDisposable
2424
{
25-
public const string Version = "3.2.2";
25+
public const string Version = "3.2.3";
2626

2727
private static readonly HashSet<char> InvalidChars = new(Path.GetInvalidFileNameChars().Concat(Path.GetInvalidPathChars()));
2828
private static readonly char[] MultilineSplit = {'\r', '\n'};
@@ -528,6 +528,7 @@ select v.Files[file.TargetFileName].Hashes
528528
Decrypter = decrypter;
529529
await decrypter.CopyToAsync(outputStream, 8 * 1024 * 1024, Cts.Token).ConfigureAwait(false);
530530
await outputStream.FlushAsync();
531+
error = false;
531532

532533
var resultHashes = decrypter.GetHashes();
533534
var resultMd5 = resultHashes["MD5"];
@@ -560,6 +561,8 @@ select v.Files[file.TargetFileName].Hashes
560561
{
561562
Log.Error(e, e.Message);
562563
error = true;
564+
if (tries == 0)
565+
BrokenFiles.Add((file.TargetFileName, "failed to read"));
563566
}
564567
} while (error && tries > 0 && !Cts.IsCancellationRequested);
565568

@@ -573,6 +576,7 @@ select v.Files[file.TargetFileName].Hashes
573576
{
574577
Log.Error(ex);
575578
BrokenFiles.Add((file.TargetFileName, "Unexpected error: " + ex.Message));
579+
ValidationStatus = false;
576580
}
577581
}
578582

UI.WinForms.Msil/Forms/MainForm.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,10 @@ private void DumpDiscFinished(object sender, RunWorkerCompletedEventArgs e)
439439
if (dumper.ValidationStatus == false)
440440
{
441441
step4StatusLabel.Text = "❌";
442-
step4Label.Text = "Dump is corrupted";
442+
if (dumper.BrokenFiles.Count > 0)
443+
step4Label.Text = $"{dumper.BrokenFiles.Count} invalid file{(dumper.BrokenFiles.Count == 1 ? "" : "s")}";
444+
else
445+
step4Label.Text = "Dump is corrupted";
443446
}
444447
else if (dumper.ValidationStatus == true)
445448
{

0 commit comments

Comments
 (0)