CD-ROM: Do not perform CRC and ECC checking on a DVD drive, fixes #6094.

This commit is contained in:
OBattler
2025-08-28 22:35:36 +02:00
parent 16d818ee1b
commit 519c77abba

View File

@@ -344,7 +344,7 @@ cdrom_is_sector_good(cdrom_t *dev, const uint8_t *b, const uint8_t mode2, const
{
int ret = 1;
if (!mode2 || (form == 1)) {
if ((dev->cd_status != CD_STATUS_DVD) && (!mode2 || (form == 1))) {
if (mode2 && (form == 1)) {
const uint32_t crc = cdrom_crc32(0xffffffff, &(b[16]), 2056) ^ 0xffffffff;
@@ -2976,9 +2976,12 @@ cdrom_update_status(cdrom_t *dev)
dev->seek_pos = 0;
dev->cd_buflen = 0;
if (dev->ops->is_dvd(dev->local))
dev->cd_status = CD_STATUS_DVD;
else
if (dev->ops->is_dvd(dev->local)) {
if (cdrom_is_dvd(dev->type))
dev->cd_status = CD_STATUS_DVD;
else
dev->cd_status = CD_STATUS_DVD_REJECTED;
} else
dev->cd_status = dev->ops->has_audio(dev->local) ? CD_STATUS_STOPPED :
CD_STATUS_DATA_ONLY;