diff --git a/src/platform/qt/GameController.cpp b/src/platform/qt/GameController.cpp index 3253a5b9f..57216ddb3 100644 --- a/src/platform/qt/GameController.cpp +++ b/src/platform/qt/GameController.cpp @@ -670,9 +670,14 @@ void GameController::setSkipBIOS(bool set) { } void GameController::setUseBIOS(bool use) { - threadInterrupt(); + if (use == m_useBios) { + return; + } m_useBios = use; - threadContinue(); + if (m_gameOpen) { + closeGame(); + openGame(); + } } void GameController::loadState(int slot) { diff --git a/src/platform/qt/Window.cpp b/src/platform/qt/Window.cpp index ccec27219..6307fdf12 100644 --- a/src/platform/qt/Window.cpp +++ b/src/platform/qt/Window.cpp @@ -1123,6 +1123,11 @@ void Window::setupMenu(QMenuBar* menubar) { m_controller->setSkipBIOS(value.toBool()); }, this); + ConfigOption* useBios = m_config->addOption("useBios"); + useBios->connect([this](const QVariant& value) { + m_controller->setUseBIOS(value.toBool()); + }, this); + ConfigOption* buffers = m_config->addOption("audioBuffers"); buffers->connect([this](const QVariant& value) { emit audioBufferSamplesChanged(value.toInt());