summaryrefslogtreecommitdiff
path: root/Source
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 /Source
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.
Diffstat (limited to 'Source')
-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()