Merge pull request #97 from LNH-team/feature/homebrew-return-to-loader

Homebrew return to loader
This commit is contained in:
Gericom
2026-01-11 13:24:04 +01:00
committed by GitHub
12 changed files with 390 additions and 16 deletions

View File

@@ -352,6 +352,7 @@ void NdsLoader::Load(BootMode bootMode)
if (isHomebrew)
{
InsertArgv();
HandleHomebrewPatching();
}
HandleDldiPatching();
@@ -437,6 +438,26 @@ void NdsLoader::InsertArgv()
HOMEBREW_ARGV->length = argSize;
}
void NdsLoader::HandleHomebrewPatching()
{
if (_launcherPath != nullptr && _launcherPath[0] != 0)
{
sendToArm9(IPC_COMMAND_ARM9_SETUP_HOMEBREW_BOOTSTUB);
sendToArm9(16 * 1024); // required dldi space
void* dldiSpace = (void*)receiveFromArm9();
char* launcherPath = (char*)receiveFromArm9();
if (dldiSpace != nullptr)
{
dldi_copyTo(dldiSpace);
}
if (launcherPath != nullptr)
{
strncpy(launcherPath, _launcherPath, 256);
launcherPath[255] = 0;
}
}
}
void NdsLoader::ApplyArm7Patches()
{
sendToArm9(IPC_COMMAND_ARM9_APPLY_ARM7_PATCHES);