Some minor APT fixes (capture typo, race condition fix, etc)
This commit is contained in:
parent
e7ea04e532
commit
7706270720
@ -109,7 +109,7 @@ void aptInitCaptureInfo(u32 *ns_capinfo)
|
|||||||
GSPGPU_ImportDisplayCaptureInfo(NULL, &gspcapinfo);
|
GSPGPU_ImportDisplayCaptureInfo(NULL, &gspcapinfo);
|
||||||
|
|
||||||
// Fill in display-capture info for NS.
|
// Fill in display-capture info for NS.
|
||||||
if(gspcapinfo.screencapture[0].framebuf0_vaddr != gspcapinfo.screencapture[1].framebuf0_vaddr)ns_capinfo[1] = 1;
|
if(gspcapinfo.screencapture[0].framebuf0_vaddr != gspcapinfo.screencapture[0].framebuf1_vaddr)ns_capinfo[1] = 1;
|
||||||
|
|
||||||
ns_capinfo[4] = gspcapinfo.screencapture[0].format & 0x7;
|
ns_capinfo[4] = gspcapinfo.screencapture[0].format & 0x7;
|
||||||
ns_capinfo[7] = gspcapinfo.screencapture[1].format & 0x7;
|
ns_capinfo[7] = gspcapinfo.screencapture[1].format & 0x7;
|
||||||
@ -301,6 +301,7 @@ void aptAppletClosed()
|
|||||||
|
|
||||||
svcClearEvent(aptStatusEvent);
|
svcClearEvent(aptStatusEvent);
|
||||||
aptSetStatus(APP_RUNNING);
|
aptSetStatus(APP_RUNNING);
|
||||||
|
svcClearEvent(aptStatusEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __handle_notification() {
|
static void __handle_notification() {
|
||||||
@ -580,6 +581,7 @@ bool aptMainLoop()
|
|||||||
break;
|
break;
|
||||||
case APP_APPLETCLOSED:
|
case APP_APPLETCLOSED:
|
||||||
aptAppletClosed();
|
aptAppletClosed();
|
||||||
|
aptCallHook(APTHOOK_ONRESTORE);
|
||||||
break;
|
break;
|
||||||
case APP_PREPARE_SLEEPMODE:
|
case APP_PREPARE_SLEEPMODE:
|
||||||
aptCallHook(APTHOOK_ONSLEEP);
|
aptCallHook(APTHOOK_ONSLEEP);
|
||||||
@ -1147,6 +1149,16 @@ Result APT_CheckNew3DS(Handle* handle, u8 *out)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This may be needed in future exploits because APT_CheckNew3DS has a
|
||||||
|
// compatibility mode which always return zero even on an actual N3DS.
|
||||||
|
if (__system_runflags & BIT(31))
|
||||||
|
{
|
||||||
|
__apt_new3dsflag_initialized = 1;
|
||||||
|
__apt_new3dsflag = 1;
|
||||||
|
*out = 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
aptOpenSession();
|
aptOpenSession();
|
||||||
if(currentAppId==APPID_APPLICATION)
|
if(currentAppId==APPID_APPLICATION)
|
||||||
{
|
{
|
||||||
@ -1265,6 +1277,13 @@ Result APT_LaunchLibraryApplet(NS_APPID appID, Handle inhandle, u32 *parambuf, u
|
|||||||
if(tmp!=0)break;
|
if(tmp!=0)break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
aptCallHook(APTHOOK_ONSUSPEND);
|
||||||
|
|
||||||
|
__apt_launchapplet_appID = appID;
|
||||||
|
__apt_launchapplet_inhandle = inhandle;
|
||||||
|
__apt_launchapplet_parambuf = parambuf;
|
||||||
|
__apt_launchapplet_parambufsize = parambufsize;
|
||||||
|
|
||||||
// Set status to SUSPENDED.
|
// Set status to SUSPENDED.
|
||||||
svcClearEvent(aptStatusEvent);
|
svcClearEvent(aptStatusEvent);
|
||||||
aptSetStatus(APP_SUSPENDED);
|
aptSetStatus(APP_SUSPENDED);
|
||||||
@ -1285,11 +1304,6 @@ Result APT_LaunchLibraryApplet(NS_APPID appID, Handle inhandle, u32 *parambuf, u
|
|||||||
// Release GSP module.
|
// Release GSP module.
|
||||||
GSPGPU_ReleaseRight(NULL);
|
GSPGPU_ReleaseRight(NULL);
|
||||||
|
|
||||||
__apt_launchapplet_appID = appID;
|
|
||||||
__apt_launchapplet_inhandle = inhandle;
|
|
||||||
__apt_launchapplet_parambuf = parambuf;
|
|
||||||
__apt_launchapplet_parambufsize = parambufsize;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user