diff --git a/src/core/system.cpp b/src/core/system.cpp
index 4a4757af3..4fc266cb0 100644
--- a/src/core/system.cpp
+++ b/src/core/system.cpp
@@ -17,6 +17,8 @@
 
 namespace System {
 
+static bool is_powered_on{ false };
+
 Result Init(EmuWindow* emu_window) {
     Core::Init();
     CoreTiming::Init();
@@ -30,9 +32,15 @@ Result Init(EmuWindow* emu_window) {
     AudioCore::Init();
     GDBStub::Init();
 
+    is_powered_on = true;
+
     return Result::Success;
 }
 
+bool IsPoweredOn() {
+    return is_powered_on;
+}
+
 void Shutdown() {
     GDBStub::Shutdown();
     AudioCore::Shutdown();
@@ -42,6 +50,8 @@ void Shutdown() {
     HW::Shutdown();
     CoreTiming::Shutdown();
     Core::Shutdown();
+
+    is_powered_on = false;
 }
 
 } // namespace
diff --git a/src/core/system.h b/src/core/system.h
index a4a627ea9..fb0ca4e1b 100644
--- a/src/core/system.h
+++ b/src/core/system.h
@@ -16,6 +16,7 @@ enum class Result {
 };
 
 Result Init(EmuWindow* emu_window);
+bool IsPoweredOn();
 void Shutdown();
 
 }