]> Chaos Git - corbenik/corbenik.git/commitdiff
https://github.com/AuroraWright/Luma3DS/commit/429488a4ba1233ebd7efc2cdc10295f31dd0d2ff
authorchaoskagami <kagami@chaos.moe>
Tue, 20 Dec 2016 00:31:32 +0000 (19:31 -0500)
committerchaoskagami <kagami@chaos.moe>
Tue, 20 Dec 2016 00:31:32 +0000 (19:31 -0500)
I asked about this a while ago on #Cakey.

external/loader/source/patcher.c

index 2db0d422029fca7342a19fc5c3e17d33d51516cb..7ce49308b1d65226e0fe1ace378974a8087128f1 100644 (file)
@@ -300,14 +300,16 @@ adjust_cpu_settings(_UNUSED u64 progId, u8 *code, u32 size)
         cpuSetting |= config.options[OPTION_LOADER_CPU_800MHZ] << 1;
 
         if (cpuSetting) {
-            static const u8 cfgN3dsCpuPattern[] = { 0x00, 0x40, 0xA0, 0xE1, 0x07, 0x00 };
+            static const u8 cfgN3dsCpuPattern[] = { 0x0C, 0x00, 0x94, 0x15 };
 
             u32 *cfgN3dsCpuLoc = (u32 *)memfind(code, size, cfgN3dsCpuPattern, sizeof(cfgN3dsCpuPattern));
 
             // Patch N3DS CPU Clock and L2 cache setting
             if (cfgN3dsCpuLoc != NULL) {
-                *(cfgN3dsCpuLoc + 1) = 0xE1A00000;
-                *(cfgN3dsCpuLoc + 8) = 0xE3A00000 | cpuSetting;
+                *(cfgN3dsCpuLoc - 4) = *(cfgN3dsCpuLoc - 3);
+                *(cfgN3dsCpuLoc - 3) = *(cfgN3dsCpuLoc - 1);
+                memcpy(cfgN3dsCpuLoc - 1, cfgN3dsCpuLoc, 16);
+                *(cfgN3dsCpuLoc + 3) = 0xE3800000 | cpuSetting;
             }
         }
     }