DS Slot-1: Do not clear repeat and enable bits if repeat is set

This commit is contained in:
Vicki Pfau 2017-04-05 12:49:49 -07:00
parent 50ddcda8f0
commit ea7fe42c37
1 changed files with 1 additions and 2 deletions

View File

@ -108,9 +108,8 @@ static void _transferEvent(struct mTiming* timing, void* context, uint32_t cycle
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;
}
}