diff --git a/CHANGES b/CHANGES index 51628af73..825ccd81b 100644 --- a/CHANGES +++ b/CHANGES @@ -21,6 +21,7 @@ Other fixes: - Qt: More app metadata fixes - Qt: Fix load recent from archive (fixes mgba.io/i/1325) - LR35902: Fix disassembly of several CB-prefix instructions + - Qt: Fix overrides getting discarded (fixes mgba.io/i/1354) Misc: - GBA Savedata: EEPROM performance fixes - GBA Savedata: Automatically map 1Mbit Flash files as 1Mbit Flash diff --git a/src/platform/qt/CoreController.cpp b/src/platform/qt/CoreController.cpp index ef641b3a1..5f6f8ba04 100644 --- a/src/platform/qt/CoreController.cpp +++ b/src/platform/qt/CoreController.cpp @@ -866,8 +866,33 @@ void CoreController::updateFastForward() { m_threadContext.impl->sync.fpsTarget = m_fpsTarget; setSync(true); } - // XXX: Have a way of just updating opts - m_threadContext.core->loadConfig(m_threadContext.core, &m_threadContext.core->config); + // XXX: Have a way of just updating volume + switch (platform()) { +#ifdef M_CORE_GBA + case PLATFORM_GBA: { + GBA* gba = static_cast(m_threadContext.core->board); + if (m_threadContext.core->opts.mute) { + gba->audio.masterVolume = 0; + } else { + gba->audio.masterVolume = m_threadContext.core->opts.volume; + } + break; + } +#endif +#ifdef M_CORE_GB + case PLATFORM_GB: { + GB* gb = static_cast(m_threadContext.core->board); + if (m_threadContext.core->opts.mute) { + gb->audio.masterVolume = 0; + } else { + gb->audio.masterVolume = m_threadContext.core->opts.volume; + } + break; + } +#endif + default: + break; + } } CoreController::Interrupter::Interrupter(CoreController* parent, bool fromThread)