Fix seek commands for MKE
This commit is contained in:
@@ -417,9 +417,10 @@ mke_command(uint8_t value)
|
|||||||
if (!cdrom_audio_play(mke.cdrom_dev, pos, len, msf)) {
|
if (!cdrom_audio_play(mke.cdrom_dev, pos, len, msf)) {
|
||||||
fifo8_push(&mke.errors_fifo, 0x0E);
|
fifo8_push(&mke.errors_fifo, 0x0E);
|
||||||
fifo8_push(&mke.errors_fifo, 0x10);
|
fifo8_push(&mke.errors_fifo, 0x10);
|
||||||
|
} else {
|
||||||
|
fifo8_push(&mke.info_fifo, mke_cdrom_status(mke.cdrom_dev, &mke));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fifo8_push(&mke.info_fifo, mke_cdrom_status(mke.cdrom_dev, &mke));
|
|
||||||
break;
|
break;
|
||||||
case CMD1_SEEK:
|
case CMD1_SEEK:
|
||||||
CHECK_READY();
|
CHECK_READY();
|
||||||
@@ -431,7 +432,8 @@ mke_command(uint8_t value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
cdrom_stop(mke.cdrom_dev);
|
cdrom_stop(mke.cdrom_dev);
|
||||||
cdrom_seek(mke.cdrom_dev, (mke.command_buffer[1] << 16) | (mke.command_buffer[2] << 8) | mke.command_buffer[3], 0);
|
/* Note for self: Panasonic/MKE drives send seek commands in MSF format. */
|
||||||
|
cdrom_seek(mke.cdrom_dev, MSFtoLBA((mke.command_buffer[1]), (mke.command_buffer[2]), mke.command_buffer[3]) - 150, 0);
|
||||||
if (old_cd_status == CD_STATUS_PLAYING || old_cd_status == CD_STATUS_PAUSED) {
|
if (old_cd_status == CD_STATUS_PLAYING || old_cd_status == CD_STATUS_PAUSED) {
|
||||||
cdrom_audio_play(mke.cdrom_dev, mke.cdrom_dev->seek_pos, 0, -1);
|
cdrom_audio_play(mke.cdrom_dev, mke.cdrom_dev->seek_pos, 0, -1);
|
||||||
cdrom_audio_pause_resume(mke.cdrom_dev, old_cd_status == CD_STATUS_PLAYING);
|
cdrom_audio_pause_resume(mke.cdrom_dev, old_cd_status == CD_STATUS_PLAYING);
|
||||||
|
|||||||
Reference in New Issue
Block a user