CD-ROM: Correctly return from read sector with the return code from the back-end in case of error, fixes System Shock 2 CD detection.
This commit is contained in:
@@ -2192,13 +2192,22 @@ cdrom_readsector_raw(const cdrom_t *dev, uint8_t *buffer, const int sector, cons
|
||||
if (audio) {
|
||||
if (!track_type_is_valid(dev, cdrom_sector_type, cdrom_sector_flags, 1, 0x00))
|
||||
ret = 0;
|
||||
else
|
||||
else {
|
||||
ret = read_audio(dev, lba, temp_b);
|
||||
|
||||
/* Return with error if we had one. */
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
} else {
|
||||
int form = 0;
|
||||
|
||||
ret = read_data(dev, lba);
|
||||
|
||||
/* Return with error if we had one. */
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if ((raw_buffer[0x000f] == 0x00) || (raw_buffer[0x000f] > 0x02)) {
|
||||
cdrom_log(dev->log, "[%s] Unknown mode: %02X\n",
|
||||
cdrom_req_modes[cdrom_sector_type], raw_buffer[0x000f]);
|
||||
|
||||
Reference in New Issue
Block a user