From a86a3f8566c4f4a476b8a7abbe6283423ab9941c Mon Sep 17 00:00:00 2001 From: Jaklyy <102590697+Jaklyy@users.noreply.github.com> Date: Fri, 27 Dec 2024 18:30:52 -0500 Subject: [PATCH] fix main ram dmas not stopping for major events --- src/NDS.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/NDS.cpp b/src/NDS.cpp index 501f8309..e6131ee9 100644 --- a/src/NDS.cpp +++ b/src/NDS.cpp @@ -1179,7 +1179,7 @@ void NDS::MainRAMHandleARM9() if (burststart <= 1) dma->Running = 1; else dma->Running = 2; - if ((dma->IterCount == 0) || ((ARM9Regions[dma->CurSrcAddr>>14] != Mem9_MainRAM) && (ARM9Regions[dma->CurDstAddr>>14] != Mem9_MainRAM))) + if ((dma->IterCount == 0) || ((ARM9Regions[dma->CurSrcAddr>>14] != Mem9_MainRAM) && (ARM9Regions[dma->CurDstAddr>>14] != Mem9_MainRAM)) || (DMA9Timestamp > ARM9Target)) memset(&ARM9.MRTrack, 0, sizeof(ARM9.MRTrack)); else ARM9.MRTrack.Progress = 0; @@ -1285,7 +1285,7 @@ void NDS::MainRAMHandleARM9() if (burststart <= 1) dma->Running = 1; else dma->Running = 2; - if ((dma->IterCount == 0) || ((ARM9Regions[dma->CurSrcAddr>>14] != Mem9_MainRAM) && (ARM9Regions[dma->CurDstAddr>>14] != Mem9_MainRAM))) + if ((dma->IterCount == 0) || ((ARM9Regions[dma->CurSrcAddr>>14] != Mem9_MainRAM) && (ARM9Regions[dma->CurDstAddr>>14] != Mem9_MainRAM)) || (DMA9Timestamp > ARM9Target)) memset(&ARM9.MRTrack, 0, sizeof(ARM9.MRTrack)); else ARM9.MRTrack.Progress = 0; @@ -1535,7 +1535,7 @@ void NDS::MainRAMHandleARM7() if (burststart <= 1) dma->Running = 1; else dma->Running = 2; - if ((dma->IterCount == 0) || ((ARM7Regions[dma->CurSrcAddr>>15] != Mem7_MainRAM) && (ARM7Regions[dma->CurDstAddr>>15] != Mem7_MainRAM))) + if ((dma->IterCount == 0) || ((ARM7Regions[dma->CurSrcAddr>>15] != Mem7_MainRAM) && (ARM7Regions[dma->CurDstAddr>>15] != Mem7_MainRAM)) || (ARM7Timestamp > ARM7Target)) memset(&ARM7.MRTrack, 0, sizeof(ARM7.MRTrack)); else ARM7.MRTrack.Progress = 0; @@ -1635,7 +1635,7 @@ void NDS::MainRAMHandleARM7() if (burststart <= 1) dma->Running = 1; else dma->Running = 2; - if ((dma->IterCount == 0) || ((ARM7Regions[dma->CurSrcAddr>>15] != Mem7_MainRAM) && (ARM7Regions[dma->CurDstAddr>>15] != Mem7_MainRAM))) + if ((dma->IterCount == 0) || ((ARM7Regions[dma->CurSrcAddr>>15] != Mem7_MainRAM) && (ARM7Regions[dma->CurDstAddr>>15] != Mem7_MainRAM)) || (ARM7Timestamp > ARM7Target)) memset(&ARM7.MRTrack, 0, sizeof(ARM7.MRTrack)); else ARM7.MRTrack.Progress = 0;