diff --git a/CHANGES b/CHANGES index 12f04cb77..d83fa01ab 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ 0.8.2: (Future) Emulation fixes: - GBA SIO: Fix Multiplayer busy bit + - GBA SIO: Fix double-unloading active driver Other fixes: - Core: Fix ELF loading regression (fixes mgba.io/i/1669) - Core: Fix crash modifying hash table entry (fixes mgba.io/i/1673) diff --git a/src/gba/sio.c b/src/gba/sio.c index 95e860363..a153cb1fa 100644 --- a/src/gba/sio.c +++ b/src/gba/sio.c @@ -75,10 +75,13 @@ void GBASIODeinit(struct GBASIO* sio) { } void GBASIOReset(struct GBASIO* sio) { - GBASIODeinit(sio); + if (sio->activeDriver && sio->activeDriver->unload) { + sio->activeDriver->unload(sio->activeDriver); + } sio->rcnt = RCNT_INITIAL; sio->siocnt = 0; sio->mode = -1; + sio->activeDriver = NULL; _switchMode(sio); }