summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2024-06-26 20:34:16 +0200
committerJosJuice <josjuice@gmail.com>2024-06-26 20:36:46 +0200
commitbc67fc97c39628c76a4dbca411b0e8a9bfaf726a (patch)
tree6b7cfcbf4ad79b125db6aa96c83a7d022b514c34
parent3dbaf38eae8415f6ed8420ab36b49358c39cf3eb (diff)
Revert "Audit uses of IsRunning and GetState"
This reverts commit 72cf2bdb87f09deff22e1085de3290126aa4ad05. SYSCONF settings are getting cleared when they shouldn't be. Let's revert the change until I get proper time to figure out why it's broken.
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java10
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/RunRunnable.kt2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SettingsItem.kt2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt4
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.kt8
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.kt2
-rw-r--r--Source/Android/jni/MainAndroid.cpp17
-rw-r--r--Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp4
-rw-r--r--Source/Core/Core/Core.cpp7
-rw-r--r--Source/Core/Core/Core.h5
-rw-r--r--Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp11
-rw-r--r--Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp3
-rw-r--r--Source/Core/DolphinQt/CheatsManager.cpp5
-rw-r--r--Source/Core/DolphinQt/Config/CheatWarningWidget.cpp5
-rw-r--r--Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp3
-rw-r--r--Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp6
-rw-r--r--Source/Core/DolphinQt/Debugger/AssemblerWidget.cpp2
-rw-r--r--Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp2
-rw-r--r--Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp2
-rw-r--r--Source/Core/DolphinQt/Debugger/ThreadWidget.cpp2
-rw-r--r--Source/Core/DolphinQt/Debugger/WatchWidget.cpp5
-rw-r--r--Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp27
-rw-r--r--Source/Core/DolphinQt/GameList/GameList.cpp12
-rw-r--r--Source/Core/DolphinQt/HotkeyScheduler.cpp2
-rw-r--r--Source/Core/DolphinQt/MainWindow.cpp15
-rw-r--r--Source/Core/DolphinQt/MenuBar.cpp56
-rw-r--r--Source/Core/DolphinQt/MenuBar.h2
-rw-r--r--Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp2
-rw-r--r--Source/Core/DolphinQt/Settings/AdvancedPane.cpp2
-rw-r--r--Source/Core/DolphinQt/Settings/AudioPane.cpp3
-rw-r--r--Source/Core/DolphinQt/Settings/WiiPane.cpp3
32 files changed, 101 insertions, 132 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
index 1cdd9fa473..43880bd0ba 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java
@@ -381,15 +381,9 @@ public final class NativeLibrary
*/
public static native boolean IsRunning();
- /**
- * Returns true if emulation is running and not paused.
- */
- public static native boolean IsRunningAndUnpaused();
+ public static native boolean IsRunningAndStarted();
- /**
- * Returns true if emulation is fully shut down.
- */
- public static native boolean IsUninitialized();
+ public static native boolean IsRunningAndUnpaused();
/**
* Writes out the JitBlock Cache log dump
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt
index eedc1405ff..c5c1851e5d 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt
@@ -36,7 +36,7 @@ class Settings : Closeable {
if (isGameSpecific) {
// Loading game INIs while the core is running will mess with the game INIs loaded by the core
- check(NativeLibrary.IsUninitialized()) { "Attempted to load game INI while emulating" }
+ check(!NativeLibrary.IsRunning()) { "Attempted to load game INI while emulating" }
NativeConfig.loadGameInis(gameId, revision)
}
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/RunRunnable.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/RunRunnable.kt
index c52964ff0b..f9d5786e22 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/RunRunnable.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/RunRunnable.kt
@@ -20,5 +20,5 @@ class RunRunnable(
override val setting: AbstractSetting? = null
override val isEditable: Boolean
- get() = worksDuringEmulation || NativeLibrary.IsUninitialized()
+ get() = worksDuringEmulation || !NativeLibrary.IsRunning()
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SettingsItem.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SettingsItem.kt
index 01c4796e68..3209400ff6 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SettingsItem.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/view/SettingsItem.kt
@@ -54,7 +54,7 @@ abstract class SettingsItem {
open val isEditable: Boolean
get() {
- if (NativeLibrary.IsUninitialized()) return true
+ if (!NativeLibrary.IsRunning()) return true
val setting = setting
return setting != null && setting.isRuntimeEditable
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt
index 1573b6408c..6de39ed1e9 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt
@@ -69,7 +69,7 @@ class SettingsFragmentPresenter(
} else if (
menuTag == MenuTag.GRAPHICS
&& this.gameId.isNullOrEmpty()
- && NativeLibrary.IsUninitialized()
+ && !NativeLibrary.IsRunning()
&& GpuDriverHelper.supportsCustomDriverLoading()
) {
this.gpuDriver =
@@ -1303,7 +1303,7 @@ class SettingsFragmentPresenter(
if (
this.gpuDriver != null && this.gameId.isNullOrEmpty()
- && NativeLibrary.IsUninitialized()
+ && !NativeLibrary.IsRunning()
&& GpuDriverHelper.supportsCustomDriverLoading()
) {
sl.add(
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.kt
index eeb223c3db..637f4fb924 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.kt
@@ -180,11 +180,11 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
private fun run(isActivityRecreated: Boolean) {
if (isActivityRecreated) {
- if (NativeLibrary.IsUninitialized()) {
- loadPreviousTemporaryState = true
- } else {
+ if (NativeLibrary.IsRunning()) {
loadPreviousTemporaryState = false
deleteFile(temporaryStateFilePath)
+ } else {
+ loadPreviousTemporaryState = true
}
} else {
Log.debug("[EmulationFragment] activity resumed or fresh start")
@@ -203,7 +203,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
private fun runWithValidSurface() {
runWhenSurfaceIsValid = false
- if (NativeLibrary.IsUninitialized()) {
+ if (!NativeLibrary.IsRunning()) {
NativeLibrary.SetIsBooting()
val emulationThread = Thread({
if (loadPreviousTemporaryState) {
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.kt
index 7964cc1ebc..dfe557e712 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/overlay/InputOverlay.kt
@@ -83,7 +83,7 @@ class InputOverlay(context: Context?, attrs: AttributeSet?) : SurfaceView(contex
fun initTouchPointer() {
// Check if we have all the data we need yet
- val aspectRatioAvailable = NativeLibrary.IsRunning()
+ val aspectRatioAvailable = NativeLibrary.IsRunningAndStarted()
if (!aspectRatioAvailable || surfacePosition == null)
return
diff --git a/Source/Android/jni/MainAndroid.cpp b/Source/Android/jni/MainAndroid.cpp
index 83902892e9..23fc782aeb 100644
--- a/Source/Android/jni/MainAndroid.cpp
+++ b/Source/Android/jni/MainAndroid.cpp
@@ -118,7 +118,8 @@ void Host_Message(HostMessageID id)
}
else if (id == HostMessageID::WMUserStop)
{
- Core::QueueHostJob(&Core::Stop);
+ if (Core::IsRunning(Core::System::GetInstance()))
+ Core::QueueHostJob(&Core::Stop);
}
}
@@ -276,6 +277,13 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_SetIsBooting
JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_IsRunning(JNIEnv*, jclass)
{
+ return s_is_booting.IsSet() ||
+ static_cast<jboolean>(Core::IsRunning(Core::System::GetInstance()));
+}
+
+JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_IsRunningAndStarted(JNIEnv*,
+ jclass)
+{
return static_cast<jboolean>(Core::IsRunning(Core::System::GetInstance()));
}
@@ -285,13 +293,6 @@ Java_org_dolphinemu_dolphinemu_NativeLibrary_IsRunningAndUnpaused(JNIEnv*, jclas
return static_cast<jboolean>(Core::GetState(Core::System::GetInstance()) == Core::State::Running);
}
-JNIEXPORT jboolean JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_IsUninitialized(JNIEnv*,
- jclass)
-{
- return static_cast<jboolean>(Core::IsUninitialized(Core::System::GetInstance()) &&
- !s_is_booting.IsSet());
-}
-
JNIEXPORT jstring JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetVersionString(JNIEnv* env,
jclass)
{
diff --git a/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp b/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp
index 81e373b422..88fa7c0696 100644
--- a/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp
+++ b/Source/Core/Core/ConfigLoaders/BaseConfigLoader.cpp
@@ -33,7 +33,7 @@ namespace ConfigLoaders
{
void SaveToSYSCONF(Config::LayerType layer, std::function<bool(const Config::Location&)> predicate)
{
- if (!Core::IsUninitialized(Core::System::GetInstance()))
+ if (Core::IsRunning(Core::System::GetInstance()))
return;
IOS::HLE::Kernel ios;
@@ -183,7 +183,7 @@ public:
private:
void LoadFromSYSCONF(Config::Layer* layer)
{
- if (!Core::IsUninitialized(Core::System::GetInstance()))
+ if (Core::IsRunning(Core::System::GetInstance()))
return;
IOS::HLE::Kernel ios;
diff --git a/Source/Core/Core/Core.cpp b/Source/Core/Core/Core.cpp
index de791d620c..8399d55cba 100644
--- a/Source/Core/Core/Core.cpp
+++ b/Source/Core/Core/Core.cpp
@@ -211,11 +211,6 @@ bool IsRunningOrStarting(Core::System& system)
return state == State::Running || state == State::Starting;
}
-bool IsUninitialized(Core::System& system)
-{
- return s_state.load() == State::Uninitialized;
-}
-
bool IsCPUThread()
{
return tls_is_cpu_thread;
@@ -242,7 +237,7 @@ bool Init(Core::System& system, std::unique_ptr<BootParameters> boot, const Wind
{
if (s_emu_thread.joinable())
{
- if (!IsUninitialized(system))
+ if (IsRunning(system))
{
PanicAlertFmtT("Emu Thread already running");
return false;
diff --git a/Source/Core/Core/Core.h b/Source/Core/Core/Core.h
index cf30cf3866..e6c440566c 100644
--- a/Source/Core/Core/Core.h
+++ b/Source/Core/Core/Core.h
@@ -134,13 +134,8 @@ void UndeclareAsHostThread();
std::string StopMessage(bool main_thread, std::string_view message);
-// Returns true when GetState returns Running or Paused.
bool IsRunning(Core::System& system);
-// Returns true when GetState returns Starting, Running or Paused.
bool IsRunningOrStarting(Core::System& system);
-// Returns true when GetState returns Uninitialized.
-bool IsUninitialized(Core::System& system);
-
bool IsCPUThread(); // this tells us whether we are the CPU thread.
bool IsGPUThread();
bool IsHostThread();
diff --git a/Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp b/Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp
index 6f003dab44..fe83fe9146 100644
--- a/Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp
+++ b/Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp
@@ -159,8 +159,6 @@ void AchievementSettingsWidget::OnControllerInterfaceConfigure()
void AchievementSettingsWidget::LoadSettings()
{
- Core::System& system = Core::System::GetInstance();
-
bool enabled = Config::Get(Config::RA_ENABLED);
bool hardcore_enabled = Config::Get(Config::RA_HARDCORE_ENABLED);
bool logged_out = Config::Get(Config::RA_API_TOKEN).empty();
@@ -176,15 +174,18 @@ 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::IsUninitialized(system));
+ 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);
SignalBlocking(m_common_hardcore_enabled_input)
->setChecked(Config::Get(Config::RA_HARDCORE_ENABLED));
+ auto& system = Core::System::GetInstance();
SignalBlocking(m_common_hardcore_enabled_input)
- ->setEnabled(enabled && (hardcore_enabled || (Core::IsUninitialized(system) &&
- !system.GetMovie().IsPlayingInput())));
+ ->setEnabled(enabled &&
+ (hardcore_enabled || (Core::GetState(system) == Core::State::Uninitialized &&
+ !system.GetMovie().IsPlayingInput())));
SignalBlocking(m_common_unofficial_enabled_input)
->setChecked(Config::Get(Config::RA_UNOFFICIAL_ENABLED));
diff --git a/Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp b/Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp
index fd713b6695..e1970dacc5 100644
--- a/Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp
+++ b/Source/Core/DolphinQt/CheatSearchFactoryWidget.cpp
@@ -159,7 +159,8 @@ void CheatSearchFactoryWidget::OnNewSearchClicked()
if (m_standard_address_space->isChecked())
{
auto& system = Core::System::GetInstance();
- if (!Core::IsRunning(system))
+ const Core::State core_state = Core::GetState(system);
+ if (core_state != Core::State::Running && core_state != Core::State::Paused)
{
ModalMessageBox::warning(
this, tr("No game running."),
diff --git a/Source/Core/DolphinQt/CheatsManager.cpp b/Source/Core/DolphinQt/CheatsManager.cpp
index 4fea9120b4..53f051785c 100644
--- a/Source/Core/DolphinQt/CheatsManager.cpp
+++ b/Source/Core/DolphinQt/CheatsManager.cpp
@@ -104,9 +104,8 @@ void CheatsManager::RefreshCodeTabs(Core::State state, bool force)
if (!force && (state == Core::State::Starting || state == Core::State::Stopping))
return;
- const auto& game_id = state == Core::State::Running || state == Core::State::Paused ?
- SConfig::GetInstance().GetGameID() :
- std::string();
+ const auto& game_id =
+ state != Core::State::Uninitialized ? SConfig::GetInstance().GetGameID() : std::string();
const auto& game_tdb_id = SConfig::GetInstance().GetGameTDBID();
const u16 revision = SConfig::GetInstance().GetRevision();
diff --git a/Source/Core/DolphinQt/Config/CheatWarningWidget.cpp b/Source/Core/DolphinQt/Config/CheatWarningWidget.cpp
index 6c3b9638da..ee52bf9662 100644
--- a/Source/Core/DolphinQt/Config/CheatWarningWidget.cpp
+++ b/Source/Core/DolphinQt/Config/CheatWarningWidget.cpp
@@ -24,9 +24,8 @@ CheatWarningWidget::CheatWarningWidget(const std::string& game_id, bool restart_
connect(&Settings::Instance(), &Settings::EnableCheatsChanged, this,
[this] { Update(Core::IsRunning(Core::System::GetInstance())); });
- connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) {
- Update(state == Core::State::Running || state == Core::State::Paused);
- });
+ connect(&Settings::Instance(), &Settings::EmulationStateChanged, this,
+ [this](Core::State state) { Update(state == Core::State::Running); });
Update(Core::IsRunning(Core::System::GetInstance()));
}
diff --git a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp
index ccc63fe326..0d93614021 100644
--- a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp
+++ b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp
@@ -43,7 +43,8 @@ AdvancedWidget::AdvancedWidget(GraphicsWindow* parent)
});
OnBackendChanged();
- OnEmulationStateChanged(!Core::IsUninitialized(Core::System::GetInstance()));
+ OnEmulationStateChanged(Core::GetState(Core::System::GetInstance()) !=
+ Core::State::Uninitialized);
}
void AdvancedWidget::CreateWidgets()
diff --git a/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp
index 3574e6893a..52f09a6f41 100644
--- a/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp
+++ b/Source/Core/DolphinQt/Config/Graphics/GeneralWidget.cpp
@@ -44,7 +44,8 @@ GeneralWidget::GeneralWidget(GraphicsWindow* parent)
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) {
OnEmulationStateChanged(state != Core::State::Uninitialized);
});
- OnEmulationStateChanged(!Core::IsUninitialized(Core::System::GetInstance()));
+ OnEmulationStateChanged(Core::GetState(Core::System::GetInstance()) !=
+ Core::State::Uninitialized);
}
void GeneralWidget::CreateWidgets()
@@ -360,8 +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::IsUninitialized(Core::System::GetInstance()));
+ 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/AssemblerWidget.cpp b/Source/Core/DolphinQt/Debugger/AssemblerWidget.cpp
index fc78b5b613..8dba286c01 100644
--- a/Source/Core/DolphinQt/Debugger/AssemblerWidget.cpp
+++ b/Source/Core/DolphinQt/Debugger/AssemblerWidget.cpp
@@ -791,7 +791,7 @@ bool AssemblerWidget::SaveEditor(AsmEditor* editor)
void AssemblerWidget::OnEmulationStateChanged(Core::State state)
{
- m_inject->setEnabled(state == Core::State::Running || state == Core::State::Paused);
+ m_inject->setEnabled(state != Core::State::Uninitialized);
}
void AssemblerWidget::OnTabClose(int index)
diff --git a/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp b/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp
index 1b74cd8ee9..130e68e860 100644
--- a/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp
+++ b/Source/Core/DolphinQt/Debugger/BreakpointWidget.cpp
@@ -251,7 +251,7 @@ void BreakpointWidget::UpdateButtonsEnabled()
if (!isVisible())
return;
- const bool is_initialised = Core::IsRunning(m_system);
+ const bool is_initialised = Core::GetState(m_system) != Core::State::Uninitialized;
m_new->setEnabled(is_initialised);
m_load->setEnabled(is_initialised);
m_save->setEnabled(is_initialised);
diff --git a/Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp b/Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp
index 7f0e50db74..51f2814d9b 100644
--- a/Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp
+++ b/Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp
@@ -560,7 +560,7 @@ void CodeViewWidget::OnContextMenu()
QMenu* menu = new QMenu(this);
menu->setAttribute(Qt::WA_DeleteOnClose, true);
- const bool running = Core::IsRunning(m_system);
+ const bool running = Core::GetState(m_system) != Core::State::Uninitialized;
const bool paused = Core::GetState(m_system) == Core::State::Paused;
const u32 addr = GetContextAddress();
diff --git a/Source/Core/DolphinQt/Debugger/ThreadWidget.cpp b/Source/Core/DolphinQt/Debugger/ThreadWidget.cpp
index 55704e31ad..e48097d0e4 100644
--- a/Source/Core/DolphinQt/Debugger/ThreadWidget.cpp
+++ b/Source/Core/DolphinQt/Debugger/ThreadWidget.cpp
@@ -258,7 +258,7 @@ void ThreadWidget::Update()
auto& system = Core::System::GetInstance();
const auto emu_state = Core::GetState(system);
- if (emu_state == Core::State::Stopping || emu_state == Core::State::Uninitialized)
+ if (emu_state == Core::State::Stopping)
{
m_thread_table->setRowCount(0);
UpdateThreadContext({});
diff --git a/Source/Core/DolphinQt/Debugger/WatchWidget.cpp b/Source/Core/DolphinQt/Debugger/WatchWidget.cpp
index 170bfcc792..75d3f13ee6 100644
--- a/Source/Core/DolphinQt/Debugger/WatchWidget.cpp
+++ b/Source/Core/DolphinQt/Debugger/WatchWidget.cpp
@@ -195,11 +195,10 @@ void WatchWidget::Update()
QBrush brush = QPalette().brush(QPalette::Text);
- const bool core_is_running = Core::IsRunning(m_system);
- if (!core_is_running || !PowerPC::MMU::HostIsRAMAddress(guard, entry.address))
+ if (!Core::IsRunning(m_system) || !PowerPC::MMU::HostIsRAMAddress(guard, entry.address))
brush.setColor(Qt::red);
- if (core_is_running)
+ 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 30c4b44a86..4d2cadb6ca 100644
--- a/Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp
+++ b/Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.cpp
@@ -59,14 +59,11 @@ FIFOPlayerWindow::FIFOPlayerWindow(FifoPlayer& fifo_player, FifoRecorder& fifo_r
});
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) {
- if (state != m_emu_state)
- {
- if (state == Core::State::Running && m_emu_state != Core::State::Paused)
- OnEmulationStarted();
- else if (state == Core::State::Uninitialized)
- OnEmulationStopped();
- m_emu_state = state;
- }
+ if (state == Core::State::Running && m_emu_state != Core::State::Paused)
+ OnEmulationStarted();
+ else if (state == Core::State::Uninitialized)
+ OnEmulationStopped();
+ m_emu_state = state;
});
installEventFilter(this);
@@ -379,11 +376,9 @@ void FIFOPlayerWindow::UpdateLimits()
void FIFOPlayerWindow::UpdateControls()
{
- Core::System& system = Core::System::GetInstance();
- const bool core_is_uninitialized = Core::IsUninitialized(system);
- const bool core_is_running = Core::IsRunning(system);
- const bool is_recording = m_fifo_recorder.IsRecording();
- const bool is_playing = m_fifo_player.IsPlaying();
+ bool running = Core::IsRunning(Core::System::GetInstance());
+ bool is_recording = m_fifo_recorder.IsRecording();
+ bool is_playing = m_fifo_player.IsPlaying();
m_frame_range_from->setEnabled(is_playing);
m_frame_range_from_label->setEnabled(is_playing);
@@ -399,10 +394,10 @@ void FIFOPlayerWindow::UpdateControls()
m_frame_record_count_label->setEnabled(enable_frame_record_count);
m_frame_record_count->setEnabled(enable_frame_record_count);
- m_load->setEnabled(core_is_uninitialized);
- m_record->setEnabled(core_is_running && !is_playing);
+ m_load->setEnabled(!running);
+ m_record->setEnabled(running && !is_playing);
- m_stop->setVisible(core_is_running && is_recording);
+ m_stop->setVisible(running && is_recording);
m_record->setVisible(!m_stop->isVisible());
m_save->setEnabled(m_fifo_recorder.IsRecordingDone());
diff --git a/Source/Core/DolphinQt/GameList/GameList.cpp b/Source/Core/DolphinQt/GameList/GameList.cpp
index 5545a622b3..97c596b969 100644
--- a/Source/Core/DolphinQt/GameList/GameList.cpp
+++ b/Source/Core/DolphinQt/GameList/GameList.cpp
@@ -436,7 +436,7 @@ void GameList::ShowContextMenu(const QPoint&)
// system menu, trigger a refresh.
Settings::Instance().NANDRefresh();
});
- perform_disc_update->setEnabled(Core::IsUninitialized(system) || !system.IsWii());
+ perform_disc_update->setEnabled(!Core::IsRunning(system) || !system.IsWii());
}
if (!is_mod_descriptor && platform == DiscIO::Platform::WiiWAD)
@@ -449,10 +449,10 @@ void GameList::ShowContextMenu(const QPoint&)
for (QAction* a : {wad_install_action, wad_uninstall_action})
{
- a->setEnabled(Core::IsUninitialized(system));
+ a->setEnabled(!Core::IsRunning(system));
menu->addAction(a);
}
- if (Core::IsUninitialized(system))
+ if (!Core::IsRunning(system))
wad_uninstall_action->setEnabled(WiiUtils::IsTitleInstalled(game->GetTitleID()));
connect(&Settings::Instance(), &Settings::EmulationStateChanged, menu,
@@ -473,8 +473,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::IsUninitialized(system));
- export_wii_save->setEnabled(Core::IsUninitialized(system));
+ open_wii_save_folder->setEnabled(!Core::IsRunning(system));
+ export_wii_save->setEnabled(!Core::IsRunning(system));
menu->addSeparator();
}
@@ -531,7 +531,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::IsUninitialized(system));
+ netplay_host->setEnabled(!Core::IsRunning(system));
menu->addAction(netplay_host);
}
diff --git a/Source/Core/DolphinQt/HotkeyScheduler.cpp b/Source/Core/DolphinQt/HotkeyScheduler.cpp
index 81ed0bbbe2..66dbaeb8d8 100644
--- a/Source/Core/DolphinQt/HotkeyScheduler.cpp
+++ b/Source/Core/DolphinQt/HotkeyScheduler.cpp
@@ -188,7 +188,7 @@ void HotkeyScheduler::Run()
if (IsHotkey(HK_EXIT))
emit ExitHotkey();
- if (Core::IsUninitialized(system))
+ if (!Core::IsRunning(system))
{
// Only check for Play Recording hotkey when no game is running
if (IsHotkey(HK_PLAY_RECORDING))
diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp
index 0bef377f07..f62a7496e7 100644
--- a/Source/Core/DolphinQt/MainWindow.cpp
+++ b/Source/Core/DolphinQt/MainWindow.cpp
@@ -905,7 +905,7 @@ void MainWindow::OnStopComplete()
bool MainWindow::RequestStop()
{
- if (Core::IsUninitialized(Core::System::GetInstance()))
+ if (!Core::IsRunning(Core::System::GetInstance()))
{
Core::QueueHostJob([this](Core::System&) { OnStopComplete(); }, true);
return true;
@@ -1112,7 +1112,7 @@ void MainWindow::StartGame(std::unique_ptr<BootParameters>&& parameters)
}
// If we're running, only start a new game once we've stopped the last.
- if (!Core::IsUninitialized(Core::System::GetInstance()))
+ if (Core::GetState(Core::System::GetInstance()) != Core::State::Uninitialized)
{
if (!RequestStop())
return;
@@ -1536,7 +1536,7 @@ void MainWindow::NetPlayInit()
bool MainWindow::NetPlayJoin()
{
- if (!Core::IsUninitialized(Core::System::GetInstance()))
+ if (Core::IsRunning(Core::System::GetInstance()))
{
ModalMessageBox::critical(nullptr, tr("Error"),
tr("Can't start a NetPlay Session while a game is still running!"));
@@ -1603,7 +1603,7 @@ bool MainWindow::NetPlayJoin()
bool MainWindow::NetPlayHost(const UICommon::GameFile& game)
{
- if (!Core::IsUninitialized(Core::System::GetInstance()))
+ if (Core::IsRunning(Core::System::GetInstance()))
{
ModalMessageBox::critical(nullptr, tr("Error"),
tr("Can't start a NetPlay Session while a game is still running!"));
@@ -1850,7 +1850,7 @@ void MainWindow::OnImportNANDBackup()
result.wait();
- m_menu_bar->UpdateToolsMenu(Core::State::Uninitialized);
+ m_menu_bar->UpdateToolsMenu(Core::IsRunning(Core::System::GetInstance()));
}
void MainWindow::OnPlayRecording()
@@ -1882,8 +1882,7 @@ void MainWindow::OnStartRecording()
{
auto& system = Core::System::GetInstance();
auto& movie = system.GetMovie();
- if (Core::GetState(system) == Core::State::Starting ||
- Core::GetState(system) == Core::State::Stopping || movie.IsRecordingInput() ||
+ if (Core::GetState(system) == Core::State::Starting || movie.IsRecordingInput() ||
movie.IsPlayingInput())
{
return;
@@ -1915,7 +1914,7 @@ void MainWindow::OnStartRecording()
{
emit RecordingStatusChanged(true);
- if (Core::IsUninitialized(system))
+ if (!Core::IsRunning(system))
Play();
}
}
diff --git a/Source/Core/DolphinQt/MenuBar.cpp b/Source/Core/DolphinQt/MenuBar.cpp
index b7528272a6..75b279db67 100644
--- a/Source/Core/DolphinQt/MenuBar.cpp
+++ b/Source/Core/DolphinQt/MenuBar.cpp
@@ -138,11 +138,9 @@ void MenuBar::OnEmulationStateChanged(Core::State state)
m_recording_stop->setEnabled(false);
m_recording_export->setEnabled(false);
}
- const bool can_start_from_boot = m_game_selected && state == Core::State::Uninitialized;
- const bool can_start_from_savestate =
- state == Core::State::Running || state == Core::State::Paused;
- m_recording_play->setEnabled(can_start_from_boot && !hardcore);
- m_recording_start->setEnabled((can_start_from_boot || can_start_from_savestate) &&
+ m_recording_play->setEnabled(m_game_selected && !running);
+ m_recording_play->setEnabled(m_game_selected && !running && !hardcore);
+ m_recording_start->setEnabled((m_game_selected || running) &&
!Core::System::GetInstance().GetMovie().IsPlayingInput());
// JIT
@@ -161,7 +159,7 @@ void MenuBar::OnEmulationStateChanged(Core::State state)
m_symbols->setEnabled(running);
UpdateStateSlotMenu();
- UpdateToolsMenu(state);
+ UpdateToolsMenu(running);
OnDebugModeToggled(Settings::Instance().IsDebugModeEnabled());
}
@@ -302,8 +300,7 @@ void MenuBar::AddToolsMenu()
m_boot_sysmenu->setEnabled(false);
- connect(&Settings::Instance(), &Settings::NANDRefresh, this,
- [this] { UpdateToolsMenu(Core::State::Uninitialized); });
+ connect(&Settings::Instance(), &Settings::NANDRefresh, this, [this] { UpdateToolsMenu(false); });
m_perform_online_update_menu = tools_menu->addMenu(tr("Perform Online System Update"));
m_perform_online_update_for_current_region = m_perform_online_update_menu->addAction(
@@ -1053,23 +1050,20 @@ void MenuBar::AddSymbolsMenu()
m_symbols->addAction(tr("&Patch HLE Functions"), this, &MenuBar::PatchHLEFunctions);
}
-void MenuBar::UpdateToolsMenu(Core::State state)
+void MenuBar::UpdateToolsMenu(bool emulation_started)
{
- const bool is_uninitialized = state == Core::State::Uninitialized;
- const bool is_running = state == Core::State::Running || state == Core::State::Paused;
-
- m_boot_sysmenu->setEnabled(is_uninitialized);
- m_perform_online_update_menu->setEnabled(is_uninitialized);
- m_ntscj_ipl->setEnabled(is_uninitialized && File::Exists(Config::GetBootROMPath(JAP_DIR)));
- m_ntscu_ipl->setEnabled(is_uninitialized && File::Exists(Config::GetBootROMPath(USA_DIR)));
- m_pal_ipl->setEnabled(is_uninitialized && File::Exists(Config::GetBootROMPath(EUR_DIR)));
- m_wad_install_action->setEnabled(is_uninitialized);
- m_import_backup->setEnabled(is_uninitialized);
- m_check_nand->setEnabled(is_uninitialized);
- m_import_wii_save->setEnabled(is_uninitialized);
- m_export_wii_saves->setEnabled(is_uninitialized);
-
- if (is_uninitialized)
+ m_boot_sysmenu->setEnabled(!emulation_started);
+ m_perform_online_update_menu->setEnabled(!emulation_started);
+ m_ntscj_ipl->setEnabled(!emulation_started && File::Exists(Config::GetBootROMPath(JAP_DIR)));
+ m_ntscu_ipl->setEnabled(!emulation_started && File::Exists(Config::GetBootROMPath(USA_DIR)));
+ m_pal_ipl->setEnabled(!emulation_started && File::Exists(Config::GetBootROMPath(EUR_DIR)));
+ m_wad_install_action->setEnabled(!emulation_started);
+ m_import_backup->setEnabled(!emulation_started);
+ m_check_nand->setEnabled(!emulation_started);
+ m_import_wii_save->setEnabled(!emulation_started);
+ m_export_wii_saves->setEnabled(!emulation_started);
+
+ if (!emulation_started)
{
IOS::HLE::Kernel ios;
const auto tmd = ios.GetESCore().FindInstalledTMD(Titles::SYSTEM_MENU);
@@ -1092,7 +1086,7 @@ void MenuBar::UpdateToolsMenu(Core::State state)
}
const auto bt = WiiUtils::GetBluetoothEmuDevice();
- const bool enable_wiimotes = is_running && bt != nullptr;
+ const bool enable_wiimotes = emulation_started && bt != nullptr;
for (std::size_t i = 0; i < m_wii_remotes.size(); i++)
{
@@ -1263,20 +1257,16 @@ void MenuBar::OnSelectionChanged(std::shared_ptr<const UICommon::GameFile> game_
m_game_selected = !!game_file;
auto& system = Core::System::GetInstance();
- const bool can_start_from_boot = m_game_selected && Core::IsUninitialized(system);
- const bool can_start_from_savestate = Core::IsRunning(system);
- m_recording_play->setEnabled(can_start_from_boot);
- m_recording_start->setEnabled((can_start_from_boot || can_start_from_savestate) &&
+ 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)
{
auto& system = Core::System::GetInstance();
- const bool can_start_from_boot = m_game_selected && Core::IsUninitialized(system);
- const bool can_start_from_savestate = Core::IsRunning(system);
-
- m_recording_start->setEnabled(!recording && (can_start_from_boot || can_start_from_savestate));
+ 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/MenuBar.h b/Source/Core/DolphinQt/MenuBar.h
index 538ca29bb5..b6620291d2 100644
--- a/Source/Core/DolphinQt/MenuBar.h
+++ b/Source/Core/DolphinQt/MenuBar.h
@@ -43,7 +43,7 @@ public:
explicit MenuBar(QWidget* parent = nullptr);
- void UpdateToolsMenu(Core::State state);
+ void UpdateToolsMenu(bool emulation_started);
QMenu* GetListColumnsMenu() const { return m_cols_menu; }
diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
index 2bbf52d11d..4ae4b5f315 100644
--- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
+++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
@@ -804,11 +804,9 @@ 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(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())});
- }
}
void NetPlayDialog::AppendChat(const std::string& msg)
diff --git a/Source/Core/DolphinQt/Settings/AdvancedPane.cpp b/Source/Core/DolphinQt/Settings/AdvancedPane.cpp
index 0d4e2a8bfd..cfcc3bba81 100644
--- a/Source/Core/DolphinQt/Settings/AdvancedPane.cpp
+++ b/Source/Core/DolphinQt/Settings/AdvancedPane.cpp
@@ -239,7 +239,7 @@ void AdvancedPane::ConnectLayout()
void AdvancedPane::Update()
{
- const bool running = !Core::IsUninitialized(Core::System::GetInstance());
+ const bool running = Core::GetState(Core::System::GetInstance()) != Core::State::Uninitialized;
const bool enable_cpu_clock_override_widgets = Config::Get(Config::MAIN_OVERCLOCK_ENABLE);
const bool enable_ram_override_widgets = Config::Get(Config::MAIN_RAM_OVERRIDE_ENABLE);
const bool enable_custom_rtc_widgets = Config::Get(Config::MAIN_CUSTOM_RTC_ENABLE) && !running;
diff --git a/Source/Core/DolphinQt/Settings/AudioPane.cpp b/Source/Core/DolphinQt/Settings/AudioPane.cpp
index d2290025ed..289dc28e7d 100644
--- a/Source/Core/DolphinQt/Settings/AudioPane.cpp
+++ b/Source/Core/DolphinQt/Settings/AudioPane.cpp
@@ -40,7 +40,8 @@ AudioPane::AudioPane()
OnEmulationStateChanged(state != Core::State::Uninitialized);
});
- OnEmulationStateChanged(!Core::IsUninitialized(Core::System::GetInstance()));
+ OnEmulationStateChanged(Core::GetState(Core::System::GetInstance()) !=
+ Core::State::Uninitialized);
}
void AudioPane::CreateWidgets()
diff --git a/Source/Core/DolphinQt/Settings/WiiPane.cpp b/Source/Core/DolphinQt/Settings/WiiPane.cpp
index 0e432855af..b6ad36654f 100644
--- a/Source/Core/DolphinQt/Settings/WiiPane.cpp
+++ b/Source/Core/DolphinQt/Settings/WiiPane.cpp
@@ -93,7 +93,8 @@ WiiPane::WiiPane(QWidget* parent) : QWidget(parent)
LoadConfig();
ConnectLayout();
ValidateSelectionState();
- OnEmulationStateChanged(!Core::IsUninitialized(Core::System::GetInstance()));
+ OnEmulationStateChanged(Core::GetState(Core::System::GetInstance()) !=
+ Core::State::Uninitialized);
}
void WiiPane::CreateLayout()