Correct mishandling of EDC-less mode 2 form 2 sectors, and of mode 2 formless sectors

This commit is contained in:
2014-03-02 19:27:23 +00:00
parent b174597a07
commit a93a2401a5
5 changed files with 8 additions and 11 deletions

View File

@@ -1,9 +1,9 @@
edccchk v1.0
============
edccchk v1.10
=============
EDC/ECC checker for RAW (2352 bytes/sector) CD images
Copyright © 2013 Natalia Portillo <claunia@claunia.com>
Copyright © 2013-2014 Natalia Portillo <claunia@claunia.com>
Based on ECM v1.03 Copyright © 2002-2011 Neill Corlett
@@ -21,11 +21,6 @@ Features
* Supports Mode 0, Mode 1 and Mode 2 data sectors, ignores Audio sectors.
* Shows failing sectors as MSF.
Known bugs
==========
Mode 2 form-less sectors all appear as errors. Mode 2 form 1 and form 2 sectors are processed correctly.
Changelog
=========
@@ -33,10 +28,12 @@ Changelog
* Converted ECM code to only check sectors.
* Added support for mode 0 sectors.
2014/03/02 v1.10
* Corrected handling of mode 2 form 2 sectors with omitted EDC. Side-effect, corrects mode 2 form-less sectors processing.
To-Do
=====
* Support Mode 2 form-less sectors
* Support RAW+SUB images (2448 bytes/sector)
* Check Q-subchannel CRCs
* Check CD+G CRCs

Binary file not shown.

BIN
bin/edccchk-v1.1-win32.zip Normal file

Binary file not shown.

View File

@@ -398,7 +398,7 @@ static int8_t ecmify(
if((sector[0x012] & 0x20) == 0x20) // mode 2 form 2
{
mode2f2sectors++;
if(edc_compute(0, m2sec, 0x91C) != get32lsb(m2sec + 0x91C))
if(edc_compute(0, m2sec, 0x91C) != get32lsb(m2sec + 0x91C) && get32lsb(m2sec + 0x91C) != 0)
{
fprintf(stderr, "Mode 2 form 2 sector with error at address: %02X:%02X:%02X\n", sector[0x00C], sector[0x00D], sector[0x00E]);
mode2f2errors++;

View File

@@ -1 +1 @@
"v1.00"
"v1.10"