diff --git a/sysmodules/loader/source/loader.c b/sysmodules/loader/source/loader.c index 2f51965..e6d133b 100644 --- a/sysmodules/loader/source/loader.c +++ b/sysmodules/loader/source/loader.c @@ -172,9 +172,6 @@ static Result GetProgramInfo(ExHeader_Info *exheaderInfo, u64 programHandle) s64 nbSection0Modules; svcGetSystemInfo(&nbSection0Modules, 26, 0); - // Force always having sdmc:/ and nand:/rw permission - exheaderInfo->aci.local_caps.storage_info.fs_access_info |= FSACCESS_NANDRW | FSACCESS_SDMC_RW; - // Tweak 3dsx placeholder title exheaderInfo if (nbSection0Modules == 6 && exheaderInfo->aci.local_caps.title_id == HBLDR_3DSX_TID) { @@ -182,10 +179,22 @@ static Result GetProgramInfo(ExHeader_Info *exheaderInfo, u64 programHandle) HBLDR_PatchExHeaderInfo(exheaderInfo); hbldrExit(); } + else + { + u64 originaltitleId = exheaderInfo->aci.local_caps.title_id; + if(CONFIG(PATCHGAMES) && loadTitleExheaderInfo(exheaderInfo->aci.local_caps.title_id, exheaderInfo)) + exheaderInfo->aci.local_caps.title_id = originaltitleId; - u64 originaltitleId = exheaderInfo->aci.local_caps.title_id; - if(CONFIG(PATCHGAMES) && loadTitleExheaderInfo(exheaderInfo->aci.local_caps.title_id, exheaderInfo)) - exheaderInfo->aci.local_caps.title_id = originaltitleId; + if(isN3DS) + { + u32 cpuSetting = MULTICONFIG(NEWCPU); + + if(cpuSetting & 0x1) + exheaderInfo->aci.local_caps.core_info.use_cpu_clockrate_804MHz = true; + if(cpuSetting & 0x2) + exheaderInfo->aci.local_caps.core_info.enable_l2c = true; + } + } return res; } diff --git a/sysmodules/loader/source/patcher.c b/sysmodules/loader/source/patcher.c index f38e3a4..3fc143b 100644 --- a/sysmodules/loader/source/patcher.c +++ b/sysmodules/loader/source/patcher.c @@ -698,28 +698,6 @@ void patchCode(u64 progId, u16 progVer, u8 *code, u32 size, u32 textSize, u32 ro if(ret == 0 || (ret == 1 && progVer > 0xB)) goto error; } - if(isN3DS) - { - u32 cpuSetting = MULTICONFIG(NEWCPU); - - if(cpuSetting != 0) - { - static const u8 pattern[] = { - 0x0C, 0x00, 0x94, 0x15 - }; - - u32 *off = (u32 *)memsearch(code, pattern, textSize, sizeof(pattern)); - - if(off == NULL) goto error; - - //Patch N3DS CPU Clock and L2 cache setting - *(off - 4) = *(off - 3); - *(off - 3) = *(off - 1); - memmove(off - 1, off, 16); - *(off + 3) = 0xE3800000 | cpuSetting; - } - } - if(progVer > 0x12) { static const u8 pattern[] = {