GBA DMA: ROM reads are forced to increment

This commit is contained in:
Vicki Pfau 2017-10-13 00:31:15 -07:00
parent d484c98eba
commit e1be18a8ff
2 changed files with 4 additions and 0 deletions

View File

@ -18,6 +18,7 @@ Bugfixes:
- GB: Revamp IRQ handling based on new information
- GBA Video: Don't mask out high bits of BLDY (fixes mgba.io/i/899)
- GBA Video: Force align 256-color tiles
- GBA DMA: ROM reads are forced to increment
Misc:
- GBA Timer: Use global cycles for timers
- GBA: Extend oddly-sized ROMs to full address space (fixes mgba.io/i/722)

View File

@ -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);
}