diff --git a/source/exceptions.c b/source/exceptions.c index 0b5adef..5698a36 100644 --- a/source/exceptions.c +++ b/source/exceptions.c @@ -32,13 +32,13 @@ void installArm9Handlers(void) { - const u32 offsets[] = {0x08, 0x18, 0x20, 0x28}; - memcpy((void *)0x01FF8000, arm9_exceptions + 32, arm9_exceptions_size - 32); /* IRQHandler is at 0x08000000, but we won't handle it for some reasons svcHandler is at 0x08000010, but we won't handle svc either */ + const u32 offsets[] = {0x08, 0x18, 0x20, 0x28}; + for(u32 i = 0; i < 4; i++) { *(vu32 *)(0x08000000 + offsets[i]) = 0xE51FF004; diff --git a/source/patches.c b/source/patches.c index b7f1eb8..81e768f 100644 --- a/source/patches.c +++ b/source/patches.c @@ -149,12 +149,14 @@ void implementSvcGetCFWInfo(u8 *pos, u32 *arm11SvcTable, u32 baseK11VA, u8 **fre CFWInfo *info = (CFWInfo *)memsearch(*freeK11Space, "LUMA", svcGetCFWInfo_size, 4); const char *rev = REVISION; - bool isRelease; info->commitHash = COMMIT_HASH; info->config = configData.config; info->versionMajor = (u8)(rev[1] - '0'); info->versionMinor = (u8)(rev[3] - '0'); + + bool isRelease; + if(rev[4] == '.') { info->versionBuild = (u8)(rev[5] - '0'); @@ -245,8 +247,6 @@ void patchArm9ExceptionHandlersInstall(u8 *pos, u32 size) u32 getInfoForArm11ExceptionHandlers(u8 *pos, u32 size, u32 *codeSetOffset) { - //This function has to succeed. Crash if it doesn't (we'll get an exception dump of it anyways) - const u8 pattern[] = {0xE3, 0xDC, 0x05, 0xC0}, //Get TitleID from CodeSet pattern2[] = {0xE1, 0x0F, 0x00, 0xBD}; //Call exception dispatcher