diff --git a/patches/twl_k11modules.s b/patches/twl_k11modules.s index d808b27..aaec02c 100644 --- a/patches/twl_k11modules.s +++ b/patches/twl_k11modules.s @@ -35,7 +35,7 @@ patch: add r1, sp, #(0xb0 - 0xac) push {r0-r11, lr} - + ldr r9, [r3] ; load the address of the code section ldr r8, [r4] ; load the address of the exheader @@ -70,7 +70,7 @@ patch: ldr r0, [r5] add r0, r4 blx memcpy - + skipPatch: ldrh r0, [r5, #6] @@ -100,7 +100,7 @@ memcmp: sub r6, r7 cmp r6, #0 beq cmp_loop - + cmp_loop_end: mov r0, r6 pop {r4-r7, pc} @@ -126,7 +126,7 @@ memcpy: patchesStart: ; SCFG_EXT bit31 patches, based on https://github.com/ahezard/twl_firm_patcher (credits where they're due) - + .word 0x07368 ; offset .halfword 1 ; type (0: relative to the start of TwlBg's code; 1: relative to the start of the dev SRL launcher) .halfword 4 ; size (must be a multiple of 4) diff --git a/source/emunand.c b/source/emunand.c index 0115a1c..c3198a5 100644 --- a/source/emunand.c +++ b/source/emunand.c @@ -95,16 +95,14 @@ static inline void patchNandRw(u8 *pos, u32 size, u32 branchOffset) static inline void patchMpu(u8 *pos, u32 size) { - const u32 mpuPatch[3] = {0x00360003, 0x00200603, 0x001C0603}; - //Look for MPU pattern const u8 pattern[] = {0x03, 0x00, 0x24, 0x00}; u32 *off = (u32 *)memsearch(pos, pattern, size, 4); - off[0] = mpuPatch[0]; - off[6] = mpuPatch[1]; - off[9] = mpuPatch[2]; + off[0] = 0x00360003; + off[6] = 0x00200603; + off[9] = 0x001C0603; } void patchEmuNand(u8 *arm9Section, u32 arm9SectionSize, u8 *process9Offset, u32 process9Size, u32 emuHeader, u32 branchAdditive) diff --git a/source/patches.c b/source/patches.c index 97a5968..b44e4a4 100644 --- a/source/patches.c +++ b/source/patches.c @@ -92,29 +92,25 @@ void patchFirmlaunches(u8 *pos, u32 size, u32 process9MemAddr) void patchFirmWrites(u8 *pos, u32 size) { - const u16 writeBlock[2] = {0x2000, 0x46C0}; - //Look for FIRM writing code u8 *const off1 = memsearch(pos, "exe:", size, 4); const u8 pattern[] = {0x00, 0x28, 0x01, 0xDA}; u16 *off2 = (u16 *)memsearch(off1 - 0x100, pattern, 0x100, 4); - off2[0] = writeBlock[0]; - off2[1] = writeBlock[1]; + off2[0] = 0x2000; + off2[1] = 0x46C0; } void patchOldFirmWrites(u8 *pos, u32 size) { - const u16 writeBlockOld[2] = {0x2400, 0xE01D}; - //Look for FIRM writing code const u8 pattern[] = {0x04, 0x1E, 0x1D, 0xDB}; u16 *off = (u16 *)memsearch(pos, pattern, size, 4); - off[0] = writeBlockOld[0]; - off[1] = writeBlockOld[1]; + off[0] = 0x2400; + off[1] = 0xE01D; } void reimplementSvcBackdoor(u8 *pos, u32 *arm11SvcTable, u8 **freeK11Space)