From 54ac9c6361cb0717f409922f5d8f1d99d86ebc01 Mon Sep 17 00:00:00 2001 From: Flyinghead Date: Thu, 21 Dec 2023 14:18:53 +0100 Subject: [PATCH] naomi: lower rom dma transfer speed Decrease from 20 to 7 MB/s. Fixes various freezes with Force Five aw conversion. Issue #141 Don't expose atomiswave A0_006 registers to naomi and other arcade platforms. --- core/hw/holly/sb_mem.cpp | 9 ++++----- core/hw/naomi/naomi.cpp | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/core/hw/holly/sb_mem.cpp b/core/hw/holly/sb_mem.cpp index d201e2dcd2..db37a99e1f 100644 --- a/core/hw/holly/sb_mem.cpp +++ b/core/hw/holly/sb_mem.cpp @@ -106,8 +106,7 @@ T DYNACALL ReadMem_area0(u32 paddr) else return (T)0; } - else - { + else if constexpr (System == DC_PLATFORM_ATOMISWAVE) { return (T)libExtDevice_ReadMem_A0_006(addr, sz); } } @@ -217,12 +216,12 @@ void DYNACALL WriteMem_area0(u32 paddr, T data) { if (!config::EmulateBBA) ModemWriteMem_A0_006(addr, data, sz); + return; } - else - { + else if constexpr (System == DC_PLATFORM_ATOMISWAVE) { libExtDevice_WriteMem_A0_006(addr, data, sz); + return; } - return; } // AICA sound registers if (addr >= 0x00700000 && addr <= 0x00707FFF) diff --git a/core/hw/naomi/naomi.cpp b/core/hw/naomi/naomi.cpp index d1f75b2bc8..e877b35844 100644 --- a/core/hw/naomi/naomi.cpp +++ b/core/hw/naomi/naomi.cpp @@ -159,8 +159,8 @@ static void Naomi_DmaStart(u32 addr, u32 data) SB_GDST = 1; // Max G1 bus rate: 50 MHz x 16 bits // SH4_access990312_e.xls: 14.4 MB/s from GD-ROM to system RAM - // Here: 20 MB/s - sh4_sched_request(dmaSchedId, SB_GDLEN * 10); + // Here: 7 MB/s + sh4_sched_request(dmaSchedId, SB_GDLEN * 27); return; } else