diff --git a/src/NDS.cpp b/src/NDS.cpp index 2207da0b..36799feb 100644 --- a/src/NDS.cpp +++ b/src/NDS.cpp @@ -964,12 +964,6 @@ void NDS::MainRAMHandleARM9() case MainRAMType::DMA32: { - if (CPUStop & ((1<<ARM9.MRTrack.Var)-1)) - { - memset(&ARM9.MRTrack, 0, sizeof(ARM9.MRTrack)); - break; - } - DMA* dma = &DMAs[ARM9.MRTrack.Var]; int burststart = dma->Running - 1; @@ -1066,7 +1060,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)) || (DMA9Timestamp >= ARM9Target)) + if ((dma->IterCount == 0) || ((ARM9Regions[dma->CurSrcAddr>>14] != Mem9_MainRAM) && (ARM9Regions[dma->CurDstAddr>>14] != Mem9_MainRAM)) || (DMA9Timestamp >= ARM9Target) || (CPUStop & ((1<<ARM9.MRTrack.Var)-1))) memset(&ARM9.MRTrack, 0, sizeof(ARM9.MRTrack)); else ARM9.MRTrack.Progress = 0; @@ -1076,12 +1070,6 @@ void NDS::MainRAMHandleARM9() case MainRAMType::DMA16: { - if (CPUStop & ((1<<ARM9.MRTrack.Var)-1)) - { - memset(&ARM9.MRTrack, 0, sizeof(ARM9.MRTrack)); - break; - } - DMA* dma = &DMAs[ARM9.MRTrack.Var]; int burststart = dma->Running - 1; @@ -1178,7 +1166,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)) || (DMA9Timestamp >= ARM9Target)) + if ((dma->IterCount == 0) || ((ARM9Regions[dma->CurSrcAddr>>14] != Mem9_MainRAM) && (ARM9Regions[dma->CurDstAddr>>14] != Mem9_MainRAM)) || (DMA9Timestamp >= ARM9Target) || (CPUStop & ((1<<ARM9.MRTrack.Var)-1))) memset(&ARM9.MRTrack, 0, sizeof(ARM9.MRTrack)); else ARM9.MRTrack.Progress = 0; @@ -1338,12 +1326,6 @@ void NDS::MainRAMHandleARM7() case MainRAMType::DMA32: { - if (CPUStop & CPUStop_DMA7 & ((1<<ARM7.MRTrack.Var)-1)) - { - memset(&ARM7.MRTrack, 0, sizeof(ARM7.MRTrack)); - break; - } - DMA* dma = &DMAs[ARM7.MRTrack.Var]; int burststart = dma->Running - 1; @@ -1434,7 +1416,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)) || (ARM7Timestamp >= ARM7Target)) + if ((dma->IterCount == 0) || ((ARM7Regions[dma->CurSrcAddr>>15] != Mem7_MainRAM) && (ARM7Regions[dma->CurDstAddr>>15] != Mem7_MainRAM)) || (ARM7Timestamp >= ARM7Target) || (CPUStop & CPUStop_DMA7 & ((1<<ARM7.MRTrack.Var)-1))) memset(&ARM7.MRTrack, 0, sizeof(ARM7.MRTrack)); else ARM7.MRTrack.Progress = 0; @@ -1444,12 +1426,6 @@ void NDS::MainRAMHandleARM7() case MainRAMType::DMA16: { - if (CPUStop & CPUStop_DMA7 & ((1<<ARM7.MRTrack.Var)-1)) - { - memset(&ARM7.MRTrack, 0, sizeof(ARM7.MRTrack)); - break; - } - DMA* dma = &DMAs[ARM7.MRTrack.Var]; int burststart = dma->Running - 1; @@ -1540,7 +1516,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)) || (ARM7Timestamp >= ARM7Target)) + if ((dma->IterCount == 0) || ((ARM7Regions[dma->CurSrcAddr>>15] != Mem7_MainRAM) && (ARM7Regions[dma->CurDstAddr>>15] != Mem7_MainRAM)) || (ARM7Timestamp >= ARM7Target) || (CPUStop & CPUStop_DMA7 & ((1<<ARM7.MRTrack.Var)-1))) memset(&ARM7.MRTrack, 0, sizeof(ARM7.MRTrack)); else ARM7.MRTrack.Progress = 0;