From 6f892bc2e3af6152165d2498b8aa7faacdf4011e Mon Sep 17 00:00:00 2001 From: angelosa Date: Sun, 24 Nov 2024 12:37:35 +0100 Subject: ata/atapihle.cpp: clamp buffer size to word units in command packet * fix CD audio playback in PC-based systems --- src/devices/bus/ata/atapihle.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/devices/bus/ata/atapihle.cpp b/src/devices/bus/ata/atapihle.cpp index 0161084fe1d..ab8cf22d775 100644 --- a/src/devices/bus/ata/atapihle.cpp +++ b/src/devices/bus/ata/atapihle.cpp @@ -106,7 +106,8 @@ void atapi_hle_device::fill_buffer() case IDE_COMMAND_PACKET: if (m_buffer_size >= m_data_size) { - m_buffer_size = m_data_size; + // MSCDEX/SHSUCDX PC drivers wants the clamp for CD audio playback (29 bytes). + m_buffer_size = m_data_size & 0xfffe; } else { -- cgit v1.2.3