diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp
index da9ea6c913f56b4c7df2820fb7e5580d6508bf24..d2ba3f9dbc88743f1bf0885f16e8beae04087636 100644
--- a/src/citra_qt/main.cpp
+++ b/src/citra_qt/main.cpp
@@ -259,9 +259,34 @@ void GMainWindow::BootGame(const std::string& filename) {
     System::Init(render_window);
 
     // Load the game
-    if (Loader::ResultStatus::Success != Loader::LoadFile(filename)) {
+    Loader::ResultStatus result = Loader::LoadFile(filename);
+    if (Loader::ResultStatus::Success != result) {
         LOG_CRITICAL(Frontend, "Failed to load ROM!");
         System::Shutdown();
+
+        switch (result) {
+        case Loader::ResultStatus::ErrorEncrypted: {
+            // Build the MessageBox ourselves to have clickable link
+            QMessageBox popup_error;
+            popup_error.setTextFormat(Qt::RichText);
+            popup_error.setWindowTitle(tr("Error while loading ROM !"));
+            popup_error.setText(tr("The ROM is probably encrypted !<br/><br/>"
+                                  "Please check: <a href='https://github.com/citra-emu/citra/wiki/Dumping-Game-Cartridges'>https://github.com/citra-emu/citra/wiki/Dumping-Game-Cartridges</a>"));
+            popup_error.setIcon(QMessageBox::Critical);
+            popup_error.exec();
+            break;
+        }
+        case Loader::ResultStatus::ErrorInvalidFormat:
+            QMessageBox::critical(this, tr("Error while loading ROM !"),
+                                  tr("The ROM format is not supported."));
+            break;
+        case Loader::ResultStatus::Error:
+
+        default:
+            QMessageBox::critical(this, tr("Error while loading ROM !"),
+                                  tr("Unknown error !"));
+            break;
+        }
         return;
     }
 
diff --git a/src/core/loader/loader.cpp b/src/core/loader/loader.cpp
index 6b88169e1d9efc91db865058487ef7c5218f2304..99f1183cac4bb6a10842461bedb2378a37f64828 100644
--- a/src/core/loader/loader.cpp
+++ b/src/core/loader/loader.cpp
@@ -137,11 +137,12 @@ ResultStatus LoadFile(const std::string& filename) {
         AppLoader_NCCH app_loader(std::move(file), filename);
 
         // Load application and RomFS
-        if (ResultStatus::Success == app_loader.Load()) {
+        ResultStatus result = app_loader.Load();
+        if (ResultStatus::Success == result) {
             Service::FS::RegisterArchiveType(Common::make_unique<FileSys::ArchiveFactory_RomFS>(app_loader), Service::FS::ArchiveIdCode::RomFS);
             return ResultStatus::Success;
         }
-        break;
+        return result;
     }
 
     // CIA file format...