GBA: Clear GBP connection on reset

This commit is contained in:
Vicki Pfau 2020-10-14 23:38:00 -07:00
parent d588aa47e6
commit 6a2f1279fd
2 changed files with 7 additions and 0 deletions

View File

@ -22,6 +22,7 @@ Emulation fixes:
- GB MBC: Fix some MBC3 bit masking - GB MBC: Fix some MBC3 bit masking
- GB Video: Fix state after skipping BIOS (fixes mgba.io/i/1715 and mgba.io/i/1716) - GB Video: Fix state after skipping BIOS (fixes mgba.io/i/1715 and mgba.io/i/1716)
- GBA: Fix timing advancing too quickly in rare cases - GBA: Fix timing advancing too quickly in rare cases
- GBA: Clear GBP connection on reset
- GBA Audio: Fix deserializing SOUNDCNT_L - GBA Audio: Fix deserializing SOUNDCNT_L
- GBA Audio: Fix stereo in XQ audio - GBA Audio: Fix stereo in XQ audio
- GBA Audio: Fix volume/mute in XQ audio (fixes mgba.io/i/1864) - GBA Audio: Fix volume/mute in XQ audio (fixes mgba.io/i/1864)

View File

@ -216,6 +216,12 @@ void GBAReset(struct ARMCore* cpu) {
GBASIOReset(&gba->sio); GBASIOReset(&gba->sio);
// GB Player SIO control should not be engaged before detection, even if we already know it's GBP
gba->memory.hw.devices &= ~HW_GB_PLAYER;
if (gba->sio.drivers.normal == &gba->memory.hw.gbpDriver.d) {
GBASIOSetDriver(&gba->sio, NULL, SIO_NORMAL_32);
}
bool isELF = false; bool isELF = false;
#ifdef USE_ELF #ifdef USE_ELF
struct ELF* elf = ELFOpen(gba->romVf); struct ELF* elf = ELFOpen(gba->romVf);