1
0
Fork 0
mirror of https://github.com/melonDS-emu/melonDS.git synced 2025-03-06 21:00:31 +01:00

fix main ram dmas not stopping for major events

This commit is contained in:
Jaklyy 2024-12-27 18:30:52 -05:00
parent c39db83d5b
commit a86a3f8566

View file

@ -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;