aboutsummaryrefslogtreecommitdiff
path: root/engines/adl
diff options
context:
space:
mode:
authorAlyssa Milburn2016-12-17 17:20:06 +0100
committerAlyssa Milburn2016-12-17 17:20:06 +0100
commit973aef55743a26cdf6d754e921fde98c74e1434c (patch)
tree401268f397b9c1f04ef44dbf5de17d1cc4745273 /engines/adl
parent81bf4476cd6237050caf4d6f8a5a1685cb77fa2a (diff)
downloadscummvm-rg350-973aef55743a26cdf6d754e921fde98c74e1434c.tar.gz
scummvm-rg350-973aef55743a26cdf6d754e921fde98c74e1434c.tar.bz2
scummvm-rg350-973aef55743a26cdf6d754e921fde98c74e1434c.zip
ADL: Only warn about (and skip) sectors with invalid NIB checksums.
Diffstat (limited to 'engines/adl')
-rw-r--r--engines/adl/disk.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/engines/adl/disk.cpp b/engines/adl/disk.cpp
index 0de740eaec..d07e0c540c 100644
--- a/engines/adl/disk.cpp
+++ b/engines/adl/disk.cpp
@@ -117,8 +117,11 @@ static Common::SeekableReadStream *readImage_NIB(const Common::String &filename)
track = read44(buffer, pos);
sector = read44(buffer, pos);
uint8 checksum = read44(buffer, pos);
- if ((volNo ^ track ^ sector) != checksum)
- error("invalid NIB checksum");
+ if ((volNo ^ track ^ sector) != checksum) {
+ warning("invalid NIB checksum (volNo %d, track %d, sector %d)", volNo, track, sector);
+ sawAddress = false;
+ continue;
+ }
if (!firstGoodTrackPos)
firstGoodTrackPos = pos;