sh4: check that dma-ch2 source address is in ram

Force real BIOS for Force Five dc conversion
Fix for MINIDUMP-2W
This commit is contained in:
Flyinghead 2023-01-13 09:28:45 +01:00
parent 93fbd67a85
commit 66eb08f2d1
2 changed files with 8 additions and 1 deletions

View File

@ -208,7 +208,8 @@ static void loadSpecialSettings()
|| prod_id == "T7001D 50" // Jimmy White's 2 Cueball
|| prod_id == "T40505D 50" // Railroad Tycoon 2 (EU)
|| prod_id == "T18702M" // Miss Moonlight
|| prod_id == "T0019M") // KenJu Atomiswave DC Conversion
|| prod_id == "T0019M" // KenJu Atomiswave DC Conversion
|| prod_id == "T0020M") // Force Five Atomiswave DC Conversion
{
NOTICE_LOG(BOOT, "Forcing real BIOS");
config::UseReios.override(false);

View File

@ -26,6 +26,12 @@ void DMAC_Ch2St()
INFO_LOG(SH4, "DMAC: DMAOR has invalid settings (%X) !", dmaor);
return;
}
if ((src >> 26) != 3)
{
// Source address must be in system RAM
INFO_LOG(SH4, "DMAC: invalid source address %x", DMAC_SAR(2));
return;
}
DEBUG_LOG(SH4, ">> DMAC: Ch2 DMA SRC=%X DST=%X LEN=%X", src, SB_C2DSTAT, SB_C2DLEN);