summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authormitaclaw <140017135+mitaclaw@users.noreply.github.com>2024-04-08 20:33:55 -0700
committermitaclaw <140017135+mitaclaw@users.noreply.github.com>2024-05-01 08:54:17 -0700
commit0df401b164bbe2b0314b74f1fd6385e852bbe098 (patch)
tree9f23d7d5cb33fb3a092d641da621cc9331577b73 /Source/Core
parentb71fdef356caf6ca376c0df474212a192951e810 (diff)
Core::IsRunning: Avoid Global System Accessor
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp5
-rw-r--r--Source/Core/Core/ConfigManager.cpp8
-rw-r--r--Source/Core/Core/Core.cpp11
-rw-r--r--Source/Core/Core/Core.h2
-rw-r--r--Source/Core/Core/Debugger/Debugger_SymbolMap.cpp5
-rw-r--r--Source/Core/Core/FifoPlayer/FifoPlayer.cpp2
-rw-r--r--Source/Core/Core/HW/ProcessorInterface.cpp4
-rw-r--r--Source/Core/Core/IOS/IOS.cpp2
-rw-r--r--Source/Core/Core/Movie.cpp4
-rw-r--r--Source/Core/Core/State.cpp2
-rw-r--r--Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp3
-rw-r--r--Source/Core/DolphinQt/Config/CheatWarningWidget.cpp5
-rw-r--r--Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp6
-rw-r--r--Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp2
-rw-r--r--Source/Core/DolphinQt/Debugger/MemoryWidget.cpp4
-rw-r--r--Source/Core/DolphinQt/Debugger/WatchWidget.cpp6
-rw-r--r--Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp5
-rw-r--r--Source/Core/DolphinQt/GameList/GameList.cpp17
-rw-r--r--Source/Core/DolphinQt/MainWindow.cpp18
-rw-r--r--Source/Core/DolphinQt/MenuBar.cpp11
-rw-r--r--Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp7
-rw-r--r--Source/Core/DolphinQt/Settings/GameCubePane.cpp23
-rw-r--r--Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp3
-rw-r--r--Source/Core/VideoCommon/VideoBackendBase.cpp2
24 files changed, 86 insertions, 71 deletions
diff --git a/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp b/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp
index 0b9aa61fd7..88fa7c0696 100644
--- a/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp
+++ b/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp
@@ -27,12 +27,13 @@
#include "Core/IOS/IOS.h"
#include "Core/IOS/USB/Bluetooth/BTBase.h"
#include "Core/SysConf.h"
+#include "Core/System.h"
namespace ConfigLoaders
{
void SaveToSYSCONF(Config::LayerType layer, std::function<bool(const Config::Location&)> predicate)
{
- if (Core::IsRunning())
+ if (Core::IsRunning(Core::System::GetInstance()))
return;
IOS::HLE::Kernel ios;
@@ -182,7 +183,7 @@ public:
private:
void LoadFromSYSCONF(Config::Layer* layer)
{
- if (Core::IsRunning())
+ if (Core::IsRunning(Core::System::GetInstance()))
return;
IOS::HLE::Kernel ios;
diff --git a/Source/Core/Core/ConfigManager.cpp b/Source/Core/Core/ConfigManager.cpp
index c8f86ef70c..c27f135e0e 100644
--- a/Source/Core/Core/ConfigManager.cpp
+++ b/Source/Core/Core/ConfigManager.cpp
@@ -188,7 +188,7 @@ void SConfig::SetRunningGameMetadata(const std::string& game_id, const std::stri
m_title_description = title_database.Describe(m_gametdb_id, language);
NOTICE_LOG_FMT(CORE, "Active title: {}", m_title_description);
Host_TitleChanged();
- if (Core::IsRunning())
+ if (Core::IsRunning(system))
{
Core::UpdateTitle(system);
}
@@ -196,16 +196,16 @@ void SConfig::SetRunningGameMetadata(const std::string& game_id, const std::stri
Config::AddLayer(ConfigLoaders::GenerateGlobalGameConfigLoader(game_id, revision));
Config::AddLayer(ConfigLoaders::GenerateLocalGameConfigLoader(game_id, revision));
- if (Core::IsRunning())
+ if (Core::IsRunning(system))
DolphinAnalytics::Instance().ReportGameStart();
}
void SConfig::OnNewTitleLoad(const Core::CPUThreadGuard& guard)
{
- if (!Core::IsRunning())
+ auto& system = guard.GetSystem();
+ if (!Core::IsRunning(system))
return;
- auto& system = guard.GetSystem();
auto& ppc_symbol_db = system.GetPPCSymbolDB();
if (!ppc_symbol_db.IsEmpty())
{
diff --git a/Source/Core/Core/Core.cpp b/Source/Core/Core/Core.cpp
index 0498d1ba36..18a2656e23 100644
--- a/Source/Core/Core/Core.cpp
+++ b/Source/Core/Core/Core.cpp
@@ -190,7 +190,7 @@ std::string StopMessage(bool main_thread, std::string_view message)
void DisplayMessage(std::string message, int time_in_ms)
{
- if (!IsRunning())
+ if (!IsRunning(Core::System::GetInstance()))
return;
// Actually displaying non-ASCII could cause things to go pear-shaped
@@ -200,9 +200,8 @@ void DisplayMessage(std::string message, int time_in_ms)
OSD::AddMessage(std::move(message), time_in_ms);
}
-bool IsRunning()
+bool IsRunning(Core::System& system)
{
- auto& system = Core::System::GetInstance();
return (GetState(system) != State::Uninitialized || s_hardware_initialized) && !s_is_stopping;
}
@@ -237,7 +236,7 @@ bool Init(Core::System& system, std::unique_ptr<BootParameters> boot, const Wind
{
if (s_emu_thread.joinable())
{
- if (IsRunning())
+ if (IsRunning(system))
{
PanicAlertFmtT("Emu Thread already running");
return false;
@@ -842,7 +841,7 @@ static bool PauseAndLock(Core::System& system, bool do_lock, bool unpause_on_unl
void RunOnCPUThread(Core::System& system, std::function<void()> function, bool wait_for_completion)
{
// If the CPU thread is not running, assume there is no active CPU thread we can race against.
- if (!IsRunning() || IsCPUThread())
+ if (!IsRunning(system) || IsCPUThread())
{
function();
return;
@@ -1038,7 +1037,7 @@ void HostDispatchJobs(Core::System& system)
// Core::State::Uninitialized: s_is_booting -> s_hardware_initialized
// We need to check variables in the same order as the state
// transition, otherwise we race and get transient failures.
- if (!job.run_after_stop && !s_is_booting.IsSet() && !IsRunning())
+ if (!job.run_after_stop && !s_is_booting.IsSet() && !IsRunning(system))
continue;
guard.unlock();
diff --git a/Source/Core/Core/Core.h b/Source/Core/Core/Core.h
index 25e773b690..57fb680eb1 100644
--- a/Source/Core/Core/Core.h
+++ b/Source/Core/Core/Core.h
@@ -134,7 +134,7 @@ void UndeclareAsHostThread();
std::string StopMessage(bool main_thread, std::string_view message);
-bool IsRunning();
+bool IsRunning(Core::System& system);
bool IsRunningAndStarted(); // is running and the CPU loop has been entered
bool IsCPUThread(); // this tells us whether we are the CPU thread.
bool IsGPUThread();
diff --git a/Source/Core/Core/Debugger/Debugger_SymbolMap.cpp b/Source/Core/Core/Debugger/Debugger_SymbolMap.cpp
index 8a7aea1071..d0abe78be0 100644
--- a/Source/Core/Core/Debugger/Debugger_SymbolMap.cpp
+++ b/Source/Core/Core/Debugger/Debugger_SymbolMap.cpp
@@ -55,10 +55,11 @@ static void WalkTheStack(const Core::CPUThreadGuard& guard,
// instead of "pointing ahead"
bool GetCallstack(const Core::CPUThreadGuard& guard, std::vector<CallstackEntry>& output)
{
- auto& power_pc = guard.GetSystem().GetPowerPC();
+ auto& system = guard.GetSystem();
+ auto& power_pc = system.GetPowerPC();
const auto& ppc_state = power_pc.GetPPCState();
- if (!Core::IsRunning() || !PowerPC::MMU::HostIsRAMAddress(guard, ppc_state.gpr[1]))
+ if (!Core::IsRunning(system) || !PowerPC::MMU::HostIsRAMAddress(guard, ppc_state.gpr[1]))
return false;
if (LR(ppc_state) == 0)
diff --git a/Source/Core/Core/FifoPlayer/FifoPlayer.cpp b/Source/Core/Core/FifoPlayer/FifoPlayer.cpp
index 39377d7cde..83eae87b9e 100644
--- a/Source/Core/Core/FifoPlayer/FifoPlayer.cpp
+++ b/Source/Core/Core/FifoPlayer/FifoPlayer.cpp
@@ -212,7 +212,7 @@ void FifoPlayer::Close()
bool FifoPlayer::IsPlaying() const
{
- return GetFile() != nullptr && Core::IsRunning();
+ return GetFile() != nullptr && Core::IsRunning(m_system);
}
class FifoPlayer::CPUCore final : public CPUCoreBase
diff --git a/Source/Core/Core/HW/ProcessorInterface.cpp b/Source/Core/Core/HW/ProcessorInterface.cpp
index 679f5d4092..fc26896a54 100644
--- a/Source/Core/Core/HW/ProcessorInterface.cpp
+++ b/Source/Core/Core/HW/ProcessorInterface.cpp
@@ -255,7 +255,7 @@ void ProcessorInterfaceManager::IOSNotifyPowerButtonCallback(Core::System& syste
void ProcessorInterfaceManager::ResetButton_Tap()
{
- if (!Core::IsRunning())
+ if (!Core::IsRunning(m_system))
return;
auto& core_timing = m_system.GetCoreTiming();
@@ -268,7 +268,7 @@ void ProcessorInterfaceManager::ResetButton_Tap()
void ProcessorInterfaceManager::PowerButton_Tap()
{
- if (!Core::IsRunning())
+ if (!Core::IsRunning(m_system))
return;
auto& core_timing = m_system.GetCoreTiming();
diff --git a/Source/Core/Core/IOS/IOS.cpp b/Source/Core/Core/IOS/IOS.cpp
index b2a0a25b05..0e046b8534 100644
--- a/Source/Core/Core/IOS/IOS.cpp
+++ b/Source/Core/Core/IOS/IOS.cpp
@@ -533,7 +533,7 @@ bool EmulationKernel::BootIOS(const u64 ios_title_id, HangPPC hang_ppc,
void EmulationKernel::InitIPC()
{
- if (!Core::IsRunning())
+ if (!Core::IsRunning(m_system))
return;
INFO_LOG_FMT(IOS, "IPC initialised.");
diff --git a/Source/Core/Core/Movie.cpp b/Source/Core/Core/Movie.cpp
index b19ebd6f73..059eaa29fe 100644
--- a/Source/Core/Core/Movie.cpp
+++ b/Source/Core/Core/Movie.cpp
@@ -424,7 +424,7 @@ bool MovieManager::IsNetPlayRecording() const
// NOTE: Host Thread
void MovieManager::ChangePads()
{
- if (!Core::IsRunning())
+ if (!Core::IsRunning(m_system))
return;
ControllerTypeArray controllers{};
@@ -571,7 +571,7 @@ bool MovieManager::BeginRecordingInput(const ControllerTypeArray& controllers,
ConfigLoaders::SaveToDTM(&header);
Config::AddLayer(ConfigLoaders::GenerateMovieConfigLoader(&header));
- if (Core::IsRunning())
+ if (Core::IsRunning(m_system))
Core::UpdateWantDeterminism(m_system);
};
Core::RunOnCPUThread(m_system, start_recording, true);
diff --git a/Source/Core/Core/State.cpp b/Source/Core/Core/State.cpp
index 4b3d0edfd0..56b9035cb6 100644
--- a/Source/Core/Core/State.cpp
+++ b/Source/Core/Core/State.cpp
@@ -856,7 +856,7 @@ static void LoadFileStateData(const std::string& filename, std::vector<u8>& ret_
void LoadAs(Core::System& system, const std::string& filename)
{
- if (!Core::IsRunning())
+ if (!Core::IsRunning(system))
return;
if (NetPlay::IsNetPlayRunning())
diff --git a/Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp b/Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp
index cc6a4c1c50..a88ff4c976 100644
--- a/Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp
+++ b/Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp
@@ -171,7 +171,8 @@ void AchievementSettingsWidget::LoadSettings()
SignalBlocking(m_common_password_input)->setVisible(logged_out);
SignalBlocking(m_common_password_input)->setEnabled(enabled);
SignalBlocking(m_common_login_button)->setVisible(logged_out);
- SignalBlocking(m_common_login_button)->setEnabled(enabled && !Core::IsRunning());
+ SignalBlocking(m_common_login_button)
+ ->setEnabled(enabled && !Core::IsRunning(Core::System::GetInstance()));
SignalBlocking(m_common_logout_button)->setVisible(!logged_out);
SignalBlocking(m_common_logout_button)->setEnabled(enabled);
diff --git a/Source/Core/DolphinQt/Config/CheatWarningWidget.cpp b/Source/Core/DolphinQt/Config/CheatWarningWidget.cpp
index 58154c7258..ee52bf9662 100644
--- a/Source/Core/DolphinQt/Config/CheatWarningWidget.cpp
+++ b/Source/Core/DolphinQt/Config/CheatWarningWidget.cpp
@@ -11,6 +11,7 @@
#include "Core/ConfigManager.h"
#include "Core/Core.h"
+#include "Core/System.h"
#include "DolphinQt/Settings.h"
@@ -22,11 +23,11 @@ CheatWarningWidget::CheatWarningWidget(const std::string& game_id, bool restart_
ConnectWidgets();
connect(&Settings::Instance(), &Settings::EnableCheatsChanged, this,
- [this] { Update(Core::IsRunning()); });
+ [this] { Update(Core::IsRunning(Core::System::GetInstance())); });
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this,
[this](Core::State state) { Update(state == Core::State::Running); });
- Update(Core::IsRunning());
+ Update(Core::IsRunning(Core::System::GetInstance()));
}
void CheatWarningWidget::CreateWidgets()
diff --git a/Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp b/Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp
index 41c46707ba..d548724c7e 100644
--- a/Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp
+++ b/Source/Core/DolphinQt/Config/GamecubeControllersWidget.cpp
@@ -191,16 +191,16 @@ void GamecubeControllersWidget::SaveSettings()
{
Config::ConfigChangeCallbackGuard config_guard;
+ auto& system = Core::System::GetInstance();
for (size_t i = 0; i < m_gc_groups.size(); ++i)
{
const SerialInterface::SIDevices si_device =
FromGCMenuIndex(m_gc_controller_boxes[i]->currentIndex());
Config::SetBaseOrCurrent(Config::GetInfoForSIDevice(static_cast<int>(i)), si_device);
- if (Core::IsRunning())
+ if (Core::IsRunning(system))
{
- Core::System::GetInstance().GetSerialInterface().ChangeDevice(si_device,
- static_cast<s32>(i));
+ system.GetSerialInterface().ChangeDevice(si_device, static_cast<s32>(i));
}
}
}
diff --git a/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp
index 5f914169ff..52f09a6f41 100644
--- a/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp
+++ b/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp
@@ -361,7 +361,7 @@ void GeneralWidget::OnBackendChanged(const QString& backend_name)
const bool supports_adapters = !adapters.empty();
m_adapter_combo->setCurrentIndex(g_Config.iAdapter);
- m_adapter_combo->setEnabled(supports_adapters && !Core::IsRunning());
+ m_adapter_combo->setEnabled(supports_adapters && !Core::IsRunning(Core::System::GetInstance()));
static constexpr char TR_ADAPTER_AVAILABLE_DESCRIPTION[] =
QT_TR_NOOP("Selects a hardware adapter to use.<br><br>"
diff --git a/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp b/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp
index 4a89ce4316..f5faea68be 100644
--- a/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp
+++ b/Source/Core/DolphinQt/Debugger/MemoryWidget.cpp
@@ -629,7 +629,7 @@ QByteArray MemoryWidget::GetInputData() const
void MemoryWidget::OnSetValue()
{
- if (!Core::IsRunning())
+ if (!Core::IsRunning(m_system))
return;
auto target_addr = GetTargetAddress();
@@ -675,7 +675,7 @@ void MemoryWidget::OnSetValue()
void MemoryWidget::OnSetValueFromFile()
{
- if (!Core::IsRunning())
+ if (!Core::IsRunning(m_system))
return;
auto target_addr = GetTargetAddress();
diff --git a/Source/Core/DolphinQt/Debugger/WatchWidget.cpp b/Source/Core/DolphinQt/Debugger/WatchWidget.cpp
index 788feb7983..45f2f1f7e2 100644
--- a/Source/Core/DolphinQt/Debugger/WatchWidget.cpp
+++ b/Source/Core/DolphinQt/Debugger/WatchWidget.cpp
@@ -143,7 +143,7 @@ void WatchWidget::UpdateButtonsEnabled()
if (!isVisible())
return;
- const bool is_enabled = Core::IsRunning();
+ const bool is_enabled = Core::IsRunning(m_system);
m_new->setEnabled(is_enabled);
m_delete->setEnabled(is_enabled);
m_clear->setEnabled(is_enabled);
@@ -195,10 +195,10 @@ void WatchWidget::Update()
QBrush brush = QPalette().brush(QPalette::Text);
- if (!Core::IsRunning() || !PowerPC::MMU::HostIsRAMAddress(guard, entry.address))
+ if (!Core::IsRunning(m_system) || !PowerPC::MMU::HostIsRAMAddress(guard, entry.address))
brush.setColor(Qt::red);
- if (Core::IsRunning())
+ if (Core::IsRunning(m_system))
{
if (PowerPC::MMU::HostIsRAMAddress(guard, entry.address))
{
diff --git a/Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp b/Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp
index 1071a88f8c..4d2cadb6ca 100644
--- a/Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp
+++ b/Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp
@@ -23,6 +23,7 @@
#include "Core/FifoPlayer/FifoDataFile.h"
#include "Core/FifoPlayer/FifoPlayer.h"
#include "Core/FifoPlayer/FifoRecorder.h"
+#include "Core/System.h"
#include "DolphinQt/Config/ToolTipControls/ToolTipCheckBox.h"
#include "DolphinQt/FIFO/FIFOAnalyzer.h"
@@ -316,7 +317,7 @@ void FIFOPlayerWindow::UpdateInfo()
return;
}
- if (Core::IsRunning() && m_fifo_recorder.IsRecording())
+ if (Core::IsRunning(Core::System::GetInstance()) && m_fifo_recorder.IsRecording())
{
m_info_label->setText(tr("Recording..."));
return;
@@ -375,7 +376,7 @@ void FIFOPlayerWindow::UpdateLimits()
void FIFOPlayerWindow::UpdateControls()
{
- bool running = Core::IsRunning();
+ bool running = Core::IsRunning(Core::System::GetInstance());
bool is_recording = m_fifo_recorder.IsRecording();
bool is_playing = m_fifo_player.IsPlaying();
diff --git a/Source/Core/DolphinQt/GameList/GameList.cpp b/Source/Core/DolphinQt/GameList/GameList.cpp
index 4e1da45033..c9656fb83d 100644
--- a/Source/Core/DolphinQt/GameList/GameList.cpp
+++ b/Source/Core/DolphinQt/GameList/GameList.cpp
@@ -370,6 +370,7 @@ void GameList::ShowContextMenu(const QPoint&)
{
if (!GetSelectedGame())
return;
+ auto& system = Core::System::GetInstance();
QMenu* menu = new QMenu(this);
@@ -421,8 +422,8 @@ void GameList::ShowContextMenu(const QPoint&)
QAction* change_disc = menu->addAction(tr("Change &Disc"), this, &GameList::ChangeDisc);
connect(&Settings::Instance(), &Settings::EmulationStateChanged, change_disc,
- [change_disc] { change_disc->setEnabled(Core::IsRunning()); });
- change_disc->setEnabled(Core::IsRunning());
+ [&system, change_disc] { change_disc->setEnabled(Core::IsRunning(system)); });
+ change_disc->setEnabled(Core::IsRunning(system));
menu->addSeparator();
}
@@ -436,7 +437,7 @@ void GameList::ShowContextMenu(const QPoint&)
// system menu, trigger a refresh.
Settings::Instance().NANDRefresh();
});
- perform_disc_update->setEnabled(!Core::IsRunning() || !Core::System::GetInstance().IsWii());
+ perform_disc_update->setEnabled(!Core::IsRunning(system) || !system.IsWii());
}
if (!is_mod_descriptor && platform == DiscIO::Platform::WiiWAD)
@@ -449,10 +450,10 @@ void GameList::ShowContextMenu(const QPoint&)
for (QAction* a : {wad_install_action, wad_uninstall_action})
{
- a->setEnabled(!Core::IsRunning());
+ a->setEnabled(!Core::IsRunning(system));
menu->addAction(a);
}
- if (!Core::IsRunning())
+ if (!Core::IsRunning(system))
wad_uninstall_action->setEnabled(WiiUtils::IsTitleInstalled(game->GetTitleID()));
connect(&Settings::Instance(), &Settings::EmulationStateChanged, menu,
@@ -473,8 +474,8 @@ void GameList::ShowContextMenu(const QPoint&)
QAction* export_wii_save =
menu->addAction(tr("Export Wii Save"), this, &GameList::ExportWiiSave);
- open_wii_save_folder->setEnabled(!Core::IsRunning());
- export_wii_save->setEnabled(!Core::IsRunning());
+ open_wii_save_folder->setEnabled(!Core::IsRunning(system));
+ export_wii_save->setEnabled(!Core::IsRunning(system));
menu->addSeparator();
}
@@ -531,7 +532,7 @@ void GameList::ShowContextMenu(const QPoint&)
connect(&Settings::Instance(), &Settings::EmulationStateChanged, menu, [=](Core::State state) {
netplay_host->setEnabled(state == Core::State::Uninitialized);
});
- netplay_host->setEnabled(!Core::IsRunning());
+ netplay_host->setEnabled(!Core::IsRunning(system));
menu->addAction(netplay_host);
}
diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp
index f1c6951595..a96b8be809 100644
--- a/Source/Core/DolphinQt/MainWindow.cpp
+++ b/Source/Core/DolphinQt/MainWindow.cpp
@@ -901,7 +901,7 @@ void MainWindow::OnStopComplete()
bool MainWindow::RequestStop()
{
- if (!Core::IsRunning())
+ if (!Core::IsRunning(Core::System::GetInstance()))
{
Core::QueueHostJob([this](Core::System&) { OnStopComplete(); }, true);
return true;
@@ -1532,7 +1532,7 @@ void MainWindow::NetPlayInit()
bool MainWindow::NetPlayJoin()
{
- if (Core::IsRunning())
+ if (Core::IsRunning(Core::System::GetInstance()))
{
ModalMessageBox::critical(nullptr, tr("Error"),
tr("Can't start a NetPlay Session while a game is still running!"));
@@ -1599,7 +1599,7 @@ bool MainWindow::NetPlayJoin()
bool MainWindow::NetPlayHost(const UICommon::GameFile& game)
{
- if (Core::IsRunning())
+ if (Core::IsRunning(Core::System::GetInstance()))
{
ModalMessageBox::critical(nullptr, tr("Error"),
tr("Can't start a NetPlay Session while a game is still running!"));
@@ -1846,7 +1846,7 @@ void MainWindow::OnImportNANDBackup()
result.wait();
- m_menu_bar->UpdateToolsMenu(Core::IsRunning());
+ m_menu_bar->UpdateToolsMenu(Core::IsRunning(Core::System::GetInstance()));
}
void MainWindow::OnPlayRecording()
@@ -1876,8 +1876,9 @@ void MainWindow::OnPlayRecording()
void MainWindow::OnStartRecording()
{
- auto& movie = Core::System::GetInstance().GetMovie();
- if ((!Core::IsRunningAndStarted() && Core::IsRunning()) || movie.IsRecordingInput() ||
+ auto& system = Core::System::GetInstance();
+ auto& movie = system.GetMovie();
+ if ((!Core::IsRunningAndStarted() && Core::IsRunning(system)) || movie.IsRecordingInput() ||
movie.IsPlayingInput())
{
return;
@@ -1909,7 +1910,7 @@ void MainWindow::OnStartRecording()
{
emit RecordingStatusChanged(true);
- if (!Core::IsRunning())
+ if (!Core::IsRunning(system))
Play();
}
}
@@ -1970,10 +1971,11 @@ void MainWindow::ShowTASInput()
}
}
+ auto& system = Core::System::GetInstance();
for (int i = 0; i < num_wii_controllers; i++)
{
if (Config::Get(Config::GetInfoForWiimoteSource(i)) == WiimoteSource::Emulated &&
- (!Core::IsRunning() || Core::System::GetInstance().IsWii()))
+ (!Core::IsRunning(system) || system.IsWii()))
{
SetQWidgetWindowDecorations(m_wii_tas_input_windows[i]);
m_wii_tas_input_windows[i]->show();
diff --git a/Source/Core/DolphinQt/MenuBar.cpp b/Source/Core/DolphinQt/MenuBar.cpp
index 46bd68b6d4..fc94065624 100644
--- a/Source/Core/DolphinQt/MenuBar.cpp
+++ b/Source/Core/DolphinQt/MenuBar.cpp
@@ -1265,14 +1265,17 @@ void MenuBar::OnSelectionChanged(std::shared_ptr<const UICommon::GameFile> game_
{
m_game_selected = !!game_file;
- m_recording_play->setEnabled(m_game_selected && !Core::IsRunning());
- m_recording_start->setEnabled((m_game_selected || Core::IsRunning()) &&
- !Core::System::GetInstance().GetMovie().IsPlayingInput());
+ auto& system = Core::System::GetInstance();
+ const bool core_is_running = Core::IsRunning(system);
+ m_recording_play->setEnabled(m_game_selected && !core_is_running);
+ m_recording_start->setEnabled((m_game_selected || core_is_running) &&
+ !system.GetMovie().IsPlayingInput());
}
void MenuBar::OnRecordingStatusChanged(bool recording)
{
- m_recording_start->setEnabled(!recording && (m_game_selected || Core::IsRunning()));
+ auto& system = Core::System::GetInstance();
+ m_recording_start->setEnabled(!recording && (m_game_selected || Core::IsRunning(system)));
m_recording_stop->setEnabled(recording);
m_recording_export->setEnabled(recording);
}
diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
index d7323b59e3..4ae4b5f315 100644
--- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
+++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
@@ -43,6 +43,7 @@
#include "Core/IOS/FS/FileSystem.h"
#include "Core/NetPlayServer.h"
#include "Core/SyncIdentifier.h"
+#include "Core/System.h"
#include "DolphinQt/NetPlay/ChunkedProgressDialog.h"
#include "DolphinQt/NetPlay/GameDigestDialog.h"
@@ -578,7 +579,7 @@ void NetPlayDialog::UpdateDiscordPresence()
m_current_game_name);
};
- if (Core::IsRunning())
+ if (Core::IsRunning(Core::System::GetInstance()))
return use_default();
if (IsHosting())
@@ -802,7 +803,7 @@ void NetPlayDialog::DisplayMessage(const QString& msg, const std::string& color,
QColor c(color.empty() ? QStringLiteral("white") : QString::fromStdString(color));
- if (g_ActiveConfig.bShowNetPlayMessages && Core::IsRunning())
+ if (g_ActiveConfig.bShowNetPlayMessages && Core::IsRunning(Core::System::GetInstance()))
g_netplay_chat_ui->AppendChat(msg.toStdString(),
{static_cast<float>(c.redF()), static_cast<float>(c.greenF()),
static_cast<float>(c.blueF())});
@@ -902,7 +903,7 @@ void NetPlayDialog::OnMsgStopGame()
void NetPlayDialog::OnMsgPowerButton()
{
- if (!Core::IsRunning())
+ if (!Core::IsRunning(Core::System::GetInstance()))
return;
QueueOnObject(this, [] { UICommon::TriggerSTMPowerEvent(); });
}
diff --git a/Source/Core/DolphinQt/Settings/GameCubePane.cpp b/Source/Core/DolphinQt/Settings/GameCubePane.cpp
index c268625959..07abe76a65 100644
--- a/Source/Core/DolphinQt/Settings/GameCubePane.cpp
+++ b/Source/Core/DolphinQt/Settings/GameCubePane.cpp
@@ -514,7 +514,8 @@ bool GameCubePane::SetMemcard(ExpansionInterface::Slot slot, const QString& file
const std::string old_eu_path = Config::GetMemcardPath(slot, DiscIO::Region::PAL);
Config::SetBase(Config::GetInfoForMemcardPath(slot), raw_path);
- if (Core::IsRunning())
+ auto& system = Core::System::GetInstance();
+ if (Core::IsRunning(system))
{
// If emulation is running and the new card is different from the old one, notify the system to
// eject the old and insert the new card.
@@ -523,8 +524,8 @@ bool GameCubePane::SetMemcard(ExpansionInterface::Slot slot, const QString& file
{
// ChangeDevice unplugs the device for 1 second, which means that games should notice that
// the path has changed and thus the memory card contents have changed
- Core::System::GetInstance().GetExpansionInterface().ChangeDevice(
- slot, ExpansionInterface::EXIDeviceType::MemoryCard);
+ system.GetExpansionInterface().ChangeDevice(slot,
+ ExpansionInterface::EXIDeviceType::MemoryCard);
}
}
@@ -620,7 +621,8 @@ bool GameCubePane::SetGCIFolder(ExpansionInterface::Slot slot, const QString& pa
Config::SetBase(Config::GetInfoForGCIPath(slot), raw_path);
- if (Core::IsRunning())
+ auto& system = Core::System::GetInstance();
+ if (Core::IsRunning(system))
{
// If emulation is running and the new card is different from the old one, notify the system to
// eject the old and insert the new card.
@@ -629,7 +631,7 @@ bool GameCubePane::SetGCIFolder(ExpansionInterface::Slot slot, const QString& pa
{
// ChangeDevice unplugs the device for 1 second, which means that games should notice that
// the path has changed and thus the memory card contents have changed
- Core::System::GetInstance().GetExpansionInterface().ChangeDevice(
+ system.GetExpansionInterface().ChangeDevice(
slot, ExpansionInterface::EXIDeviceType::MemoryCardFolder);
}
}
@@ -660,14 +662,14 @@ void GameCubePane::SetAGPRom(ExpansionInterface::Slot slot, const QString& filen
Config::SetBase(Config::GetInfoForAGPCartPath(slot), path_abs.toStdString());
- if (Core::IsRunning() && path_abs != path_old)
+ auto& system = Core::System::GetInstance();
+ if (Core::IsRunning(system) && path_abs != path_old)
{
// ChangeDevice unplugs the device for 1 second. For an actual AGP, you can remove the
// cartridge without unplugging it, and it's not clear if the AGP software actually notices
// that it's been unplugged or the cartridge has changed, but this was done for memcards so
// we might as well do it for the AGP too.
- Core::System::GetInstance().GetExpansionInterface().ChangeDevice(
- slot, ExpansionInterface::EXIDeviceType::AGP);
+ system.GetExpansionInterface().ChangeDevice(slot, ExpansionInterface::EXIDeviceType::AGP);
}
LoadSettings();
@@ -781,6 +783,7 @@ void GameCubePane::SaveSettings()
Config::SetBaseOrCurrent(Config::MAIN_SKIP_IPL, m_skip_main_menu->isChecked());
Config::SetBaseOrCurrent(Config::MAIN_GC_LANGUAGE, m_language_combo->currentData().toInt());
+ auto& system = Core::System::GetInstance();
// Device Settings
for (ExpansionInterface::Slot slot : ExpansionInterface::SLOTS)
{
@@ -789,9 +792,9 @@ void GameCubePane::SaveSettings()
const ExpansionInterface::EXIDeviceType current_exi_device =
Config::Get(Config::GetInfoForEXIDevice(slot));
- if (Core::IsRunning() && current_exi_device != dev)
+ if (Core::IsRunning(system) && current_exi_device != dev)
{
- Core::System::GetInstance().GetExpansionInterface().ChangeDevice(slot, dev);
+ system.GetExpansionInterface().ChangeDevice(slot, dev);
}
Config::SetBaseOrCurrent(Config::GetInfoForEXIDevice(slot), dev);
diff --git a/Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp b/Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp
index 2f5b1987e1..08c3431fd8 100644
--- a/Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp
+++ b/Source/Core/DolphinQt/TAS/WiiTASInputWindow.cpp
@@ -25,6 +25,7 @@
#include "Core/HW/WiimoteEmu/MotionPlus.h"
#include "Core/HW/WiimoteEmu/WiimoteEmu.h"
#include "Core/HW/WiimoteReal/WiimoteReal.h"
+#include "Core/System.h"
#include "DolphinQt/QtUtils/AspectRatioWidget.h"
#include "DolphinQt/QtUtils/QueueOnObject.h"
@@ -347,7 +348,7 @@ WiiTASInputWindow::WiiTASInputWindow(QWidget* parent, int num) : TASInputWindow(
setLayout(layout);
- if (Core::IsRunning())
+ if (Core::IsRunning(Core::System::GetInstance()))
{
m_active_extension = GetWiimote()->GetActiveExtensionNumber();
m_is_motion_plus_attached = GetWiimote()->IsMotionPlusAttached();
diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp
index 91492321f4..a5d309cc96 100644
--- a/Source/Core/VideoCommon/VideoBackendBase.cpp
+++ b/Source/Core/VideoCommon/VideoBackendBase.cpp
@@ -299,7 +299,7 @@ void VideoBackendBase::PopulateBackendInfoFromUI(const WindowSystemInfo& wsi)
{
// If the core is running, the backend info will have been populated already.
// If we did it here, the UI thread can race with the with the GPU thread.
- if (!Core::IsRunning())
+ if (!Core::IsRunning(Core::System::GetInstance()))
PopulateBackendInfo(wsi);
}