From 882cd0dcf6a2d51e785a53e94883c3cd8bb30e0c Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Wed, 10 Dec 2014 06:44:39 -0800 Subject: [PATCH] GBA Memory: Force disable a repeating DMA when it would repeat infinitely --- src/gba/gba-memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gba/gba-memory.c b/src/gba/gba-memory.c index b2775ce41..1d3fb9147 100644 --- a/src/gba/gba-memory.c +++ b/src/gba/gba-memory.c @@ -1164,7 +1164,7 @@ void GBAMemoryServiceDMA(struct GBA* gba, int number, struct GBADMA* info) { } if (!wordsRemaining) { - if (!GBADMARegisterIsRepeat(info->reg)) { + if (!GBADMARegisterIsRepeat(info->reg) || GBADMARegisterGetTiming(info->reg) == DMA_TIMING_NOW) { info->reg = GBADMARegisterClearEnable(info->reg); info->nextEvent = INT_MAX;