From 67bba95dd1c87d8adacfc17849fb7301069ebb49 Mon Sep 17 00:00:00 2001 From: Flyinghead Date: Mon, 6 Mar 2023 10:26:52 +0100 Subject: [PATCH] dmac: set DMAOR.AE and raised interrupt if ch2 address error Fixes crackin'dj 1 & 2 freeze at boot Regression introduced by 66eb08f2d1c3c209661c733ed9a24da2eca44a70 --- core/hw/sh4/modules/dmac.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/hw/sh4/modules/dmac.cpp b/core/hw/sh4/modules/dmac.cpp index 1de3c5581..b9d456a42 100644 --- a/core/hw/sh4/modules/dmac.cpp +++ b/core/hw/sh4/modules/dmac.cpp @@ -29,7 +29,9 @@ void DMAC_Ch2St() if ((src >> 26) != 3) { // Source address must be in system RAM - INFO_LOG(SH4, "DMAC: invalid source address %x", DMAC_SAR(2)); + WARN_LOG(SH4, "DMAC: invalid source address %x dest %x len %x", DMAC_SAR(2), SB_C2DSTAT, SB_C2DLEN); + DMAC_DMAOR.AE = 1; + asic_RaiseInterrupt(holly_CH2_DMA); return; }