diff options
| author | lizzie <lizzie@eden-emu.dev> | 2026-05-19 23:35:53 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-05-19 23:35:53 +0200 |
| commit | 300a646a34b6729879e3fb71d53e625a09683bb2 (patch) | |
| tree | 12bc42fb5729059340b598e0999a9e282c6f8adc /src/yuzu/main_window.cpp | |
| parent | e875a3196b5fc525f357b387d3cb2f283b11b8a0 (diff) | |
[hle] make HBLoader work, add -hlaunch option (#3981)
hbloader is required to launch a bunch of shit (particularly hbmenu)
however due to some restrictive metadata validation, it doesn't get recognized as an NSP file
programs like hbmenu require hbloader (since it feeds them data like ConfigEntries and whatnot), launching hbmenu as-is standalone will result in a launchInit() error
adds an option to launch hbmenu via command line
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3981
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: crueter <crueter@eden-emu.dev>
Diffstat (limited to 'src/yuzu/main_window.cpp')
| -rw-r--r-- | src/yuzu/main_window.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/yuzu/main_window.cpp b/src/yuzu/main_window.cpp index 2bb83fa189..a43a06cd31 100644 --- a/src/yuzu/main_window.cpp +++ b/src/yuzu/main_window.cpp @@ -3,6 +3,7 @@ // Qt on macOS doesn't define VMA shit #include <boost/algorithm/string/split.hpp> +#include "common/fs/path_util.h" #include "common/settings.h" #include "common/settings_enums.h" #include "frontend_common/settings_generator.h" @@ -635,6 +636,7 @@ MainWindow::MainWindow(bool has_broken_vulkan) QString game_path; bool should_launch_qlaunch = false; + bool should_launch_hlaunch = false; bool should_launch_setup = false; bool has_gamepath = false; bool is_fullscreen = false; @@ -676,6 +678,8 @@ MainWindow::MainWindow(bool has_broken_vulkan) players[0].profile_name = args[++i].toStdString(); } else if (args[i] == QStringLiteral("-qlaunch")) { should_launch_qlaunch = true; + } else if (args[i] == QStringLiteral("-hlaunch")) { + should_launch_hlaunch = true; } else if (args[i] == QStringLiteral("-setup")) { should_launch_setup = true; } else { @@ -694,10 +698,12 @@ MainWindow::MainWindow(bool has_broken_vulkan) } else { if (!game_path.isEmpty()) { BootGame(game_path, ApplicationAppletParameters()); - } else { - if (should_launch_qlaunch) { - LaunchFirmwareApplet(u64(Service::AM::AppletProgramId::QLaunch), std::nullopt); - } + } else if (should_launch_qlaunch) { + LaunchFirmwareApplet(u64(Service::AM::AppletProgramId::QLaunch), std::nullopt); + } else if (should_launch_hlaunch) { + std::filesystem::path const sd_dir = Common::FS::GetEdenPathString(Common::FS::EdenPath::SDMCDir); + auto const hbl_path = (sd_dir / "atmosphere" / "hbl.nsp").string(); + BootGame(QString::fromStdString(hbl_path), ApplicationAppletParameters()); } } } |
