Both SCSI controllers now set the next callback to be issued after 1000 * TIMER_USEC instead of 50 * TIMER_USEC if the device is CD-ROM and the command is 0x42 (READ SUBCHANNEL);

A few CD-ROM IOCTL commands are cached now;
CD Audio over IOCTL works again;
The status bar icons are now only loaded once at emulator start, and subsequently just used on demand.
This commit is contained in:
OBattler
2017-05-11 06:34:25 +02:00
parent 08cf490f3f
commit 18e2110739
6 changed files with 121 additions and 39 deletions

View File

@@ -1970,6 +1970,12 @@ BuslogicCommandCallback(void *p)
} else if (BuslogicInOperation == 1) {
pclog("BusLogic Callback: Process CD-ROM request\n");
BuslogicCDROMCommand(bl);
if (bl->Req.CmdBlock.common.Cdb[0] == 0x42)
{
/* This is needed since CD Audio inevitably means READ SUBCHANNEL spam. */
BuslogicCallback += 1000 * SCSI_TIME;
return;
}
} else if (BuslogicInOperation == 2) {
pclog("BusLogic Callback: Send incoming mailbox\n");
BuslogicMailboxIn(bl);