GBA Memory: Run multiple DMAs in a tight loop if they all occur before present

This commit is contained in:
Jeffrey Pfau 2015-08-11 01:14:02 -07:00
parent 50005e0703
commit 013948f129
2 changed files with 2 additions and 1 deletions

View File

@ -118,6 +118,7 @@ Misc:
- Qt: Increase usability of key mapper
- Qt: Show checkmark for window sizes
- Qt: Set window path to loaded ROM
- GBA Memory: Run multiple DMAs in a tight loop if they all occur before present
0.2.1: (2015-05-13)
Bugfixes:

View File

@ -1405,7 +1405,7 @@ int32_t GBAMemoryRunDMAs(struct GBA* gba, int32_t cycles) {
}
memory->nextDMA -= cycles;
memory->eventDiff += cycles;
if (memory->nextDMA <= 0) {
while (memory->nextDMA <= 0) {
struct GBADMA* dma = &memory->dma[memory->activeDMA];
GBAMemoryServiceDMA(gba, memory->activeDMA, dma);
GBAMemoryUpdateDMAs(gba, memory->eventDiff);