DS Slot-1: Do not clear repeat and enable bits if repeat is set
Vicki Pfau vi@endrift.com
Wed, 05 Apr 2017 12:49:49 -0700
1 files changed,
1 insertions(+),
2 deletions(-)
jump to
M
src/ds/slot1.c
→
src/ds/slot1.c
@@ -108,9 +108,8 @@ romcnt = DSSlot1ROMCNTClearBlockBusy(romcnt);
if (DSSlot1AUXSPICNTIsDoIRQ(config)) { DSRaiseIRQ(dscore->cpu, dscore->memory.io, DS_IRQ_SLOT1_TRANS); } - if (hasDMA) { + if (hasDMA && !GBADMARegisterIsRepeat(dma->reg)) { dma->reg = GBADMARegisterClearEnable(dma->reg); - dma->reg = GBADMARegisterClearRepeat(dma->reg); dscore->memory.io[(DS_REG_DMA0CNT_HI + ds->memory.slot1.dmaSource * (DS_REG_DMA1CNT_HI - DS_REG_DMA0CNT_HI)) >> 1] = dma->reg; } }