Fix N3DS applications not closing properly (fix #1271, #1270, etc.)

This commit is contained in:
TuxSH 2019-06-30 22:59:44 +02:00
parent 37544a0eb9
commit c9a578734e
2 changed files with 4 additions and 1 deletions

View File

@ -11,6 +11,9 @@ Result registerProgram(u64 *programHandle, const FS_ProgramInfo *programInfo, co
Result res = 0; Result res = 0;
if (IS_N3DS) { if (IS_N3DS) {
if (pi.programId >> 48 == 0xFFFF) {
return LOADER_RegisterProgram(programHandle, &pi, &piu);
}
pi.programId = (pi.programId & ~N3DS_TID_MASK) | N3DS_TID_BIT; pi.programId = (pi.programId & ~N3DS_TID_MASK) | N3DS_TID_BIT;
piu.programId = (piu.programId & ~N3DS_TID_MASK) | N3DS_TID_BIT; piu.programId = (piu.programId & ~N3DS_TID_MASK) | N3DS_TID_BIT;
res = LOADER_RegisterProgram(programHandle, &pi, &piu); res = LOADER_RegisterProgram(programHandle, &pi, &piu);

View File

@ -49,7 +49,7 @@ Result UnregisterProcess(u64 titleId)
ProcessData *foundProcess = NULL; ProcessData *foundProcess = NULL;
ProcessList_Lock(&g_manager.processList); ProcessList_Lock(&g_manager.processList);
foundProcess = ProcessList_FindProcessByTitleId(&g_manager.processList, titleId); foundProcess = ProcessList_FindProcessByTitleId(&g_manager.processList, titleId & ~N3DS_TID_MASK);
if (foundProcess != NULL) { if (foundProcess != NULL) {
if (foundProcess == g_manager.runningApplicationData) { if (foundProcess == g_manager.runningApplicationData) {
g_manager.runningApplicationData = NULL; g_manager.runningApplicationData = NULL;