From e74eda16cef37431cc8efa73ebb5cf1a40380439 Mon Sep 17 00:00:00 2001 From: Aurora Date: Fri, 26 Feb 2016 02:41:47 +0100 Subject: [PATCH] Fixed reboot patch on N3DS Yay, 178 MB content! --- source/firm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source/firm.c b/source/firm.c index ca274aa8..30159740 100755 --- a/source/firm.c +++ b/source/firm.c @@ -146,6 +146,12 @@ u8 patchFirm(void){ memcpy((u8*)sigOffset, sigPat1, sizeof(sigPat1)); memcpy((u8*)sigOffset2, sigPat2, sizeof(sigPat2)); + //Patch ARM9 entrypoint on N3DS to skip arm9loader + if(console){ + u32 *arm9Entry = (u32*)&firmLocation->arm9Entry; + *arm9Entry = 0x801B01C; + } + //Patch FIRM reboots, not on 9.0 FIRM as it breaks firmlaunchhax if(mode){ u32 rebootOffset = 0, @@ -196,5 +202,5 @@ void launchFirm(void){ *arm11Entry = (u32)firmLocation->arm11Entry; //Final jump to arm9 binary - console ? ((void (*)())0x801B01C)() : ((void (*)())firmLocation->arm9Entry)(); + ((void (*)())firmLocation->arm9Entry)(); } \ No newline at end of file