- minor changes for homebrew/plugin dol booting.

This commit is contained in:
Fledge68 2021-12-03 17:37:35 -06:00
parent 5e4535bbf7
commit 9faa6db839
2 changed files with 12 additions and 1 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 MiB

After

Width:  |  Height:  |  Size: 4.4 MiB

View File

@ -21,6 +21,8 @@ static entry BOOTER_ENTRY = (entry)BOOTER_ADDR;
static __argv *ARGS_ADDR = (__argv*)0x93300800; //more than twice as much as the appbooter, just for safety static __argv *ARGS_ADDR = (__argv*)0x93300800; //more than twice as much as the appbooter, just for safety
static char *CMD_ADDR = (char*)ARGS_ADDR + sizeof(struct __argv); static char *CMD_ADDR = (char*)ARGS_ADDR + sizeof(struct __argv);
extern "C" { void __exception_closeall(); }
char *homebrew_ptr = NULL; char *homebrew_ptr = NULL;
u32 homebrew_size = 0; u32 homebrew_size = 0;
@ -129,6 +131,8 @@ static int SetupARGV()
position += Arguments[i].size() + 1; position += Arguments[i].size() + 1;
} }
args->commandLine[args->length - 1] = '\0'; args->commandLine[args->length - 1] = '\0';
args->argv = &args->commandLine;
args->endARGV = args->argv + 1;
Arguments.clear(); Arguments.clear();
return 0; return 0;
@ -159,10 +163,17 @@ void BootHomebrew()
else else
gprintf("Homebrew Boot Arguments disabled\n"); gprintf("Homebrew Boot Arguments disabled\n");
u32 cpu_isr;
memcpy(BOOTER_ADDR, appbooter_ptr, appbooter_size); memcpy(BOOTER_ADDR, appbooter_ptr, appbooter_size);
DCFlushRange(BOOTER_ADDR, appbooter_size); DCFlushRange(BOOTER_ADDR, appbooter_size);
ICInvalidateRange(BOOTER_ADDR, appbooter_size);
free(appbooter_ptr); free(appbooter_ptr);
JumpToEntry(BOOTER_ENTRY); //JumpToEntry(BOOTER_ENTRY);
SYS_ResetSystem(SYS_SHUTDOWN, 0, 0);
_CPU_ISR_Disable( cpu_isr );
__exception_closeall();
BOOTER_ENTRY();
_CPU_ISR_Restore( cpu_isr );
} }
extern "C" { extern void __exception_closeall(); } extern "C" { extern void __exception_closeall(); }