Return "cooked" Q subchannel for Panasonic

This commit is contained in:
Cacodemon345
2025-07-26 23:22:51 +06:00
parent 9268557c3d
commit c32056b614

View File

@@ -129,9 +129,9 @@ mke_get_subq(cdrom_t *dev, uint8_t *b)
cdrom_get_current_subchannel(dev, &subc); cdrom_get_current_subchannel(dev, &subc);
cdrom_get_current_subcodeq(dev, b); cdrom_get_current_subcodeq(dev, b);
#endif #endif
cdrom_get_current_subcodeq(dev, temp_buf); cdrom_get_current_subchannel_sony(dev, temp_buf, 1);
b[0] = 0x80; //? b[0] = 0x80; //?
b[1] = temp_buf[0]; b[1] = ((temp_buf[0] & 0xf) << 4) | ((temp_buf[0] & 0xf0) >> 4);
b[2] = temp_buf[1]; b[2] = temp_buf[1];
b[3] = temp_buf[2]; b[3] = temp_buf[2];
b[4] = temp_buf[6]; b[4] = temp_buf[6];
@@ -290,7 +290,6 @@ mke_command(uint8_t value)
} }
case CMD1_READ: case CMD1_READ:
{ {
// cdrom_readsector_raw(mke.cdrom_dev, )
uint32_t count = mke.command_buffer[6]; uint32_t count = mke.command_buffer[6];
uint8_t *buf = mke.cdbuffer; uint8_t *buf = mke.cdbuffer;
int len = 0; int len = 0;
@@ -433,9 +432,9 @@ mke_command(uint8_t value)
cdrom_stop(mke.cdrom_dev); cdrom_stop(mke.cdrom_dev);
/* Note for self: Panasonic/MKE drives send seek commands in MSF format. */ /* 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); 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, -1, 0);
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);
} }
fifo8_push(&mke.info_fifo, mke_cdrom_status(mke.cdrom_dev, &mke)); fifo8_push(&mke.info_fifo, mke_cdrom_status(mke.cdrom_dev, &mke));