GB Memory: Fix starting HDMAs during mode 0

This commit is contained in:
Jeffrey Pfau 2016-11-03 13:26:33 -07:00
parent 08bd23031b
commit 7a2f98d474
2 changed files with 2 additions and 1 deletions

View File

@ -16,6 +16,7 @@ Bugfixes:
- GB: Fix audio not being deinitialized - GB: Fix audio not being deinitialized
- GBA Memory: Fix VCOUNT being writable - GBA Memory: Fix VCOUNT being writable
- Qt: Only reset window dimensions when first shown - Qt: Only reset window dimensions when first shown
- GB Memory: Fix starting HDMAs during mode 0
Misc: Misc:
- PSP2: Improved controller rumble - PSP2: Improved controller rumble
- GB, GBA: Prevent loading null ROMs - GB, GBA: Prevent loading null ROMs

View File

@ -394,7 +394,7 @@ void GBMemoryWriteHDMA5(struct GB* gb, uint8_t value) {
gb->memory.hdmaDest |= 0x8000; gb->memory.hdmaDest |= 0x8000;
bool wasHdma = gb->memory.isHdma; bool wasHdma = gb->memory.isHdma;
gb->memory.isHdma = value & 0x80; gb->memory.isHdma = value & 0x80;
if (!wasHdma && !gb->memory.isHdma) { if ((!wasHdma && !gb->memory.isHdma) || gb->video.mode == 0) {
gb->memory.hdmaRemaining = ((value & 0x7F) + 1) * 0x10; gb->memory.hdmaRemaining = ((value & 0x7F) + 1) * 0x10;
gb->memory.hdmaNext = gb->cpu->cycles; gb->memory.hdmaNext = gb->cpu->cycles;
gb->cpu->nextEvent = gb->cpu->cycles; gb->cpu->nextEvent = gb->cpu->cycles;