From 040bd516c7b6b1d798a526fc2c9a93436c8018d7 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sat, 9 Mar 2019 11:31:38 -0800 Subject: [PATCH] GBA DMA: Fix DMA0-2 lengths (fixes #1344) --- CHANGES | 1 + src/gba/io.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index 6e7e43f97..f7060f851 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ 0.7.2: (Future) Emulation fixes: - GBA Video: Fix scanline cache with scale factor change edge cases + - GBA DMA: Fix DMA0-2 lengths (fixes mgba.io/i/1344) Other fixes: - Qt: More app metadata fixes - Qt: Fix load recent from archive (fixes mgba.io/i/1325) diff --git a/src/gba/io.c b/src/gba/io.c index 602f4d0c0..09a1799f4 100644 --- a/src/gba/io.c +++ b/src/gba/io.c @@ -461,19 +461,19 @@ void GBAIOWrite(struct GBA* gba, uint32_t address, uint16_t value) { break; case REG_DMA0CNT_LO: - GBADMAWriteCNT_LO(gba, 0, value); + GBADMAWriteCNT_LO(gba, 0, value & 0x3FFF); break; case REG_DMA0CNT_HI: value = GBADMAWriteCNT_HI(gba, 0, value); break; case REG_DMA1CNT_LO: - GBADMAWriteCNT_LO(gba, 1, value); + GBADMAWriteCNT_LO(gba, 1, value & 0x3FFF); break; case REG_DMA1CNT_HI: value = GBADMAWriteCNT_HI(gba, 1, value); break; case REG_DMA2CNT_LO: - GBADMAWriteCNT_LO(gba, 2, value); + GBADMAWriteCNT_LO(gba, 2, value & 0x3FFF); break; case REG_DMA2CNT_HI: value = GBADMAWriteCNT_HI(gba, 2, value);