From cab6669eb76ff2965aaab0957baf46e65e544533 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Mon, 20 Oct 2025 17:53:58 +1000 Subject: [PATCH] DMA: Speed up RAM write with CDROM speedup Might make it ever-so-slightly more reliable. The number of cycles is pretty small though, ~500 or so. --- src/core/dma.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/core/dma.cpp b/src/core/dma.cpp index c22e82a93..3aa6c404b 100644 --- a/src/core/dma.cpp +++ b/src/core/dma.cpp @@ -953,7 +953,13 @@ TickCount DMA::TransferDeviceToMemory(u32 address, u32 increment, u32 word_count } } - return Bus::GetDMARAMTickCount(word_count); + TickCount ticks = Bus::GetDMARAMTickCount(word_count); + if constexpr (channel == Channel::CDROM) + { + if (g_settings.cdrom_read_speedup != 1) + ticks = (g_settings.cdrom_read_speedup == 0) ? 0 : (ticks / g_settings.cdrom_read_speedup); + } + return ticks; } void DMA::DrawDebugStateWindow(float scale)