diff --git a/src/suyu/main.cpp b/src/suyu/main.cpp
index e7354e8fa58133e9ddb3626e61ecfd3c8d5f77ed..b1a32118236d4b088677f449e3dc9de2c17c5661 100644
--- a/src/suyu/main.cpp
+++ b/src/suyu/main.cpp
@@ -1747,18 +1747,21 @@ void GMainWindow::AllowOSSleep() {
 }
 
 bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletParameters params) {
-    if (!CheckFirmwarePresence()) {
-        QMessageBox::critical(this, tr("Component Missing"), tr("Missing Firmware."));
-        return false;
-    }
+    if (Loader::IdentifyType(Core::GetGameFileFromPath(vfs, filename.toStdString())) !=
+        Loader::FileType::NRO) {
+        if (!CheckFirmwarePresence()) {
+            QMessageBox::critical(this, tr("Component Missing"), tr("Missing Firmware."));
+            return false;
+        }
 
-    if (!ContentManager::AreKeysPresent()) {
-        QMessageBox::warning(this, tr("Derivation Components Missing"),
-                             tr("Encryption keys are missing. "
-                                "In order to use this emulator, "
-                                "you need to provide your own encryption keys "
-                                "in order to play them."));
-        return false;
+        if (!ContentManager::AreKeysPresent()) {
+            QMessageBox::warning(this, tr("Derivation Components Missing"),
+                                tr("Encryption keys are missing. "
+                                    "In order to use this emulator, "
+                                    "you need to provide your own encryption keys "
+                                    "in order to play them."));
+            return false;
+        }
     }
 
     // Shutdown previous session if the emu thread is still active...