diff --git a/CHANGES b/CHANGES index 9291a510c..000c92ebb 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ 0.6.2: (Future) Bugfixes: - GBA Video: Force align 256-color tiles + - GBA DMA: ROM reads are forced to increment 0.6.1: (2017-10-01) Bugfixes: diff --git a/src/gba/dma.c b/src/gba/dma.c index 5c5499ebf..93c79edb3 100644 --- a/src/gba/dma.c +++ b/src/gba/dma.c @@ -81,6 +81,9 @@ uint16_t GBADMAWriteCNT_HI(struct GBA* gba, int dma, uint16_t control) { if (!wasEnabled && GBADMARegisterIsEnable(currentDma->reg)) { currentDma->nextSource = currentDma->source; + if (currentDma->nextSource >= BASE_CART0 && currentDma->nextSource < BASE_CART_SRAM && GBADMARegisterGetSrcControl(currentDma->reg) < 3) { + currentDma->reg = GBADMARegisterClearSrcControl(currentDma->reg); + } currentDma->nextDest = currentDma->dest; GBADMASchedule(gba, dma, currentDma); }