return MAKERESULT(RL_PERMANENT, RS_INVALIDARG, 1, 2);
}
- logstr("validated params\n");
+ // load code
+ progid = g_exheader.arm11systemlocalcaps.programid;
+
+ logu64(progid);
+ logstr(" validated params\n");
load_config(); // First order of business - we need the config file.
return res;
}
- // load code
- progid = g_exheader.arm11systemlocalcaps.programid;
if ((res = load_code(progid, &shared_addr, &original_vaddr, prog_handle,
g_exheader.codesetinfo.flags.flag & 1)) >= 0) {
memcpy(&codesetinfo.name, g_exheader.codesetinfo.name, 8);
FSFILE_Write(log_file_hdl, &wrote, size, str, len, 0);
}
+void logu64(u64 progId) {
+ char str[] = "Title: 0000000000000000\n";
+ u32 i = 22;
+ while(progId) {
+ static const char hexDigits[] = "0123456789ABCDEF";
+ str[i--] = hexDigits[(u32)(progId & 0xF)];
+ progId >>= 4;
+ }
+
+ logstr(str);
+}
+
void closeLogger() {
FSFILE_Close(log_file_hdl);
logger_is_initd = 0;
void openLogger();
void logstr(const char* str);
+void logu64(u64 progId);
void closeLogger();
#endif
sizeof(stopCartUpdatesPattern), 0, stopCartUpdatesPatch,
sizeof(stopCartUpdatesPatch), 2);
- logstr("disable_cart_updates\n");
+ logstr(" disable_cart_updates\n");
}
skipEshopUpdateCheckPatch, sizeof(skipEshopUpdateCheckPatch),
1);
- logstr("disable_eshop_updates\n");
+ logstr(" disable_eshop_updates\n");
}
sizeof(blockAutoUpdatesPattern), 0, blockAutoUpdatesPatch,
sizeof(blockAutoUpdatesPatch), 1);
- logstr("disable_nim_updates\n");
+ logstr(" disable_nim_updates\n");
}
patchMemory(code, size, fpdVerPattern, sizeof(fpdVerPattern), 9,
&fpdVerPatch, sizeof(fpdVerPatch), 1);
- logstr("fake_friends_version\n");
+ logstr(" fake_friends_version\n");
}
patchMemory(code, size, verPattern, sizeof(verPattern) - sizeof(u16), 0,
verPatch, sizeof(verPatch) - sizeof(u16), 1);
- logstr("settings_string\n");
+ logstr(" settings_string\n");
}
patchMemory(code, size, regionFreePattern, sizeof(regionFreePattern), -16,
regionFreePatch, sizeof(regionFreePatch), 1);
- logstr("region_patch\n");
+ logstr(" region_patch\n");
}
patchMemory(code, size, sha256ChecksPattern2, sizeof(sha256ChecksPattern2),
0, stub, sizeof(stub), 1);
- logstr("ro_sigpatch\n");
+ logstr(" ro_sigpatch\n");
}
sizeof(secureinfoSigCheckPattern), 0, secureinfoSigCheckPatch,
sizeof(secureinfoSigCheckPatch), 1);
- logstr("secureinfo_sigpatch\n");
+ logstr(" secureinfo_sigpatch\n");
}
failed_load_config = 0;
- logstr("loaded config file\n");
+ logstr(" loaded config file\n");
return;
}
}
}
- logstr("langemu cfg applied\n");
+ logstr(" langemu cfg applied\n ");
logstr(path);
logstr("\n");
}
0xE3B00000; // (1 or 2 instructions) => movs
// r0, 0 (result code)
- logstr("patched language\n");
+ logstr(" patched language\n");
// We're done
return;
}
}
- logstr("patched region\n");
+ logstr(" patched region\n");
}
static void
}
}
}
-
- logstr("set up langemu\n");
}
void