diff --git a/src/suyu/main.cpp b/src/suyu/main.cpp
index 6421be422ba93bb79a93b900904c400c383376af..b51cb703466b84249681f5621bae925c53bf79f4 100644
--- a/src/suyu/main.cpp
+++ b/src/suyu/main.cpp
@@ -480,6 +480,7 @@ GMainWindow::GMainWindow(std::unique_ptr<QtConfig> config_, bool has_broken_vulk
     QString game_path;
     bool has_gamepath = false;
     bool is_fullscreen = false;
+    bool is_qlaunch = false;
 
     for (int i = 1; i < args.size(); ++i) {
         // Preserves drag/drop functionality
@@ -494,7 +495,11 @@ GMainWindow::GMainWindow(std::unique_ptr<QtConfig> config_, bool has_broken_vulk
             is_fullscreen = true;
             continue;
         }
-
+        // Use QLaunch at startup
+        if (args[i] == QStringLiteral("-ql")) {
+            is_qlaunch = true;
+            continue;
+        }
         // Launch game with a specific user
         if (args[i] == QStringLiteral("-u")) {
             if (i >= args.size() - 1) {
@@ -552,7 +557,10 @@ GMainWindow::GMainWindow(std::unique_ptr<QtConfig> config_, bool has_broken_vulk
     if (has_gamepath || is_fullscreen) {
         ui->action_Fullscreen->setChecked(is_fullscreen);
     }
-
+    // Open HomeMenu
+    if (!has_gamepath && is_qlaunch) {
+        OnHomeMenu();
+    }
     if (!game_path.isEmpty()) {
         BootGame(game_path, ApplicationAppletParameters());
     }