GBA DMA: Fix DMA start/end timing

This commit is contained in:
Vicki Pfau 2019-02-22 18:49:23 -08:00
parent 17660077b0
commit 7266186f4a
2 changed files with 4 additions and 3 deletions

View File

@ -13,6 +13,7 @@ Bugfixes:
- Python: Fix crash when deleting files owned by library
- Python: Make sure GB link object isn't GC'd before GB object
- GBA DMA: Fix Display Start DMAs
- GBA DMA: Fix DMA start/end timing
Misc:
- GBA Video: Improve sprite cycle counting (fixes mgba.io/i/1274)

View File

@ -237,9 +237,6 @@ void GBADMAService(struct GBA* gba, int number, struct GBADMA* info) {
gba->cpuBlocked = true;
if (info->count == info->nextCount) {
if (sourceRegion < REGION_CART0 || destRegion < REGION_CART0) {
cycles += 2;
}
if (width == 4) {
cycles += memory->waitstatesNonseq32[sourceRegion] + memory->waitstatesNonseq32[destRegion];
} else {
@ -306,6 +303,9 @@ void GBADMAService(struct GBA* gba, int number, struct GBADMA* info) {
info->nextDest = dest;
if (!wordsRemaining) {
info->nextCount |= 0x80000000;
if (sourceRegion < REGION_CART0 || destRegion < REGION_CART0) {
info->when += 2;
}
}
GBADMAUpdate(gba);
}