mirror of https://github.com/mgba-emu/mgba.git
GBA DMA: Fix DMA start/end timing
This commit is contained in:
parent
17660077b0
commit
7266186f4a
1
CHANGES
1
CHANGES
|
@ -13,6 +13,7 @@ Bugfixes:
|
||||||
- Python: Fix crash when deleting files owned by library
|
- Python: Fix crash when deleting files owned by library
|
||||||
- Python: Make sure GB link object isn't GC'd before GB object
|
- Python: Make sure GB link object isn't GC'd before GB object
|
||||||
- GBA DMA: Fix Display Start DMAs
|
- GBA DMA: Fix Display Start DMAs
|
||||||
|
- GBA DMA: Fix DMA start/end timing
|
||||||
Misc:
|
Misc:
|
||||||
- GBA Video: Improve sprite cycle counting (fixes mgba.io/i/1274)
|
- GBA Video: Improve sprite cycle counting (fixes mgba.io/i/1274)
|
||||||
|
|
||||||
|
|
|
@ -237,9 +237,6 @@ void GBADMAService(struct GBA* gba, int number, struct GBADMA* info) {
|
||||||
|
|
||||||
gba->cpuBlocked = true;
|
gba->cpuBlocked = true;
|
||||||
if (info->count == info->nextCount) {
|
if (info->count == info->nextCount) {
|
||||||
if (sourceRegion < REGION_CART0 || destRegion < REGION_CART0) {
|
|
||||||
cycles += 2;
|
|
||||||
}
|
|
||||||
if (width == 4) {
|
if (width == 4) {
|
||||||
cycles += memory->waitstatesNonseq32[sourceRegion] + memory->waitstatesNonseq32[destRegion];
|
cycles += memory->waitstatesNonseq32[sourceRegion] + memory->waitstatesNonseq32[destRegion];
|
||||||
} else {
|
} else {
|
||||||
|
@ -306,6 +303,9 @@ void GBADMAService(struct GBA* gba, int number, struct GBADMA* info) {
|
||||||
info->nextDest = dest;
|
info->nextDest = dest;
|
||||||
if (!wordsRemaining) {
|
if (!wordsRemaining) {
|
||||||
info->nextCount |= 0x80000000;
|
info->nextCount |= 0x80000000;
|
||||||
|
if (sourceRegion < REGION_CART0 || destRegion < REGION_CART0) {
|
||||||
|
info->when += 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
GBADMAUpdate(gba);
|
GBADMAUpdate(gba);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue