Display the number of failed patches, make loader svcBreak on failed patch, minor cleanup

This commit is contained in:
Aurora
2016-10-10 15:53:56 +02:00
parent 973640f023
commit d4cf22d370
8 changed files with 58 additions and 43 deletions

View File

@@ -13,7 +13,7 @@ static void patchMemory(u8 *start, u32 size, const void *pattern, u32 patSize, i
{
u8 *found = memsearch(start, pattern, size, patSize);
if(found == NULL) break;
if(found == NULL) svcBreak(USERBREAK_ASSERT);
memcpy(found + offset, replace, repSize);
@@ -143,6 +143,8 @@ static void loadTitleCodeSection(u64 progId, u8 *code, u32 size)
{
u64 total;
IFile_Read(&file, &total, code, fileSize);
if(total != fileSize) svcBreak(USERBREAK_ASSERT);
}
IFile_Close(&file);
@@ -374,8 +376,10 @@ void patchCode(u64 progId, u8 *code, u32 size)
u8 *fpdVer = memsearch(code, fpdVerPattern, size, sizeof(fpdVerPattern));
if(fpdVer == NULL) svcBreak(USERBREAK_ASSERT);
//Allow online access to work with old friends modules
if(fpdVer != NULL && fpdVer[9] < mostRecentFpdVer) fpdVer[9] = mostRecentFpdVer;
if(fpdVer[9] < mostRecentFpdVer) fpdVer[9] = mostRecentFpdVer;
break;
}
@@ -462,12 +466,11 @@ void patchCode(u64 progId, u8 *code, u32 size)
u32 *cfgN3dsCpuLoc = (u32 *)memsearch(code, cfgN3dsCpuPattern, size, sizeof(cfgN3dsCpuPattern));
if(cfgN3dsCpuLoc == NULL) svcBreak(USERBREAK_ASSERT);
//Patch N3DS CPU Clock and L2 cache setting
if(cfgN3dsCpuLoc != NULL)
{
*(cfgN3dsCpuLoc + 1) = 0xE1A00000;
*(cfgN3dsCpuLoc + 8) = 0xE3A00000 | cpuSetting;
}
*(cfgN3dsCpuLoc + 1) = 0xE1A00000;
*(cfgN3dsCpuLoc + 8) = 0xE3A00000 | cpuSetting;
}
break;