From 12737bfbe24cb96ff74ac2b4f542fa1ac589d007 Mon Sep 17 00:00:00 2001 From: lifehackerhansol Date: Sun, 13 Oct 2024 22:55:18 -0700 Subject: [PATCH] Add back support for PassMe This is handled by PassMeLoader; it must be present in `/__rpg/`. --- arm9/source/launcher/PassMeLauncher.cpp | 25 +++++++++++++++++++++++++ arm9/source/launcher/PassMeLauncher.h | 17 +++++++++++++++++ arm9/source/mainwnd.cpp | 3 ++- 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 arm9/source/launcher/PassMeLauncher.cpp create mode 100644 arm9/source/launcher/PassMeLauncher.h diff --git a/arm9/source/launcher/PassMeLauncher.cpp b/arm9/source/launcher/PassMeLauncher.cpp new file mode 100644 index 0000000..88b8839 --- /dev/null +++ b/arm9/source/launcher/PassMeLauncher.cpp @@ -0,0 +1,25 @@ +/* + Copyright (C) 2024 lifehackerhansol + + SPDX-License-Identifier: GPL-3.0-or-later +*/ + +#include +#include +#include + +#include "ILauncher.h" +#include "PassMeLauncher.h" +#include "nds_loader_arm9.h" + +bool PassMeLauncher::launchRom(std::string romPath, std::string savePath, u32 flags, + u32 cheatOffset, u32 cheatSize) { + const char passMeLoaderPath[] = "fat:/__rpg/PassMeLoader.nds"; + + std::vector argv; + argv.push_back(passMeLoaderPath); + eRunNdsRetCode rc = runNdsFile(argv[0], argv.size(), &argv[0]); + if (rc == RUN_NDS_OK) return true; + + return false; +} diff --git a/arm9/source/launcher/PassMeLauncher.h b/arm9/source/launcher/PassMeLauncher.h new file mode 100644 index 0000000..d5cfd7f --- /dev/null +++ b/arm9/source/launcher/PassMeLauncher.h @@ -0,0 +1,17 @@ +/* + Copyright (C) 2024 lifehackerhansol + + SPDX-License-Identifier: GPL-3.0-or-later +*/ + +#pragma once + +#include + +#include "ILauncher.h" + +class PassMeLauncher : public ILauncher { + public: + bool launchRom(std::string romPath, std::string savePath, u32 flags, u32 cheatOffset, + u32 cheatSize) override; +}; diff --git a/arm9/source/mainwnd.cpp b/arm9/source/mainwnd.cpp index e80906e..a44c293 100644 --- a/arm9/source/mainwnd.cpp +++ b/arm9/source/mainwnd.cpp @@ -34,6 +34,7 @@ #include "launcher/HomebrewLauncher.h" #include "launcher/NdsBootstrapLauncher.h" +#include "launcher/PassMeLauncher.h" using namespace akui; @@ -669,7 +670,7 @@ void cMainWnd::onFolderChanged() { } } if (mode == cGlobalSettings::ESlot2Nds) { - // loadRom("slot2:/", "", 0, 0, 0); + PassMeLauncher().launchRom("slot2:/", "", 0, 0, 0); } else { CGbaLoader::StartGBA(); }