From 084155bbf55a75f985ec61f78e447f32fed2b760 Mon Sep 17 00:00:00 2001 From: SilicaAndPina Date: Wed, 18 Dec 2019 17:11:15 +1300 Subject: [PATCH] Fix adrenaline? compat --- DolcePolce.c | 50 +++++++++++++++++++++----------------------------- 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/DolcePolce.c b/DolcePolce.c index df26260..81cc218 100644 --- a/DolcePolce.c +++ b/DolcePolce.c @@ -59,41 +59,33 @@ static int check_pspemu_allowed(char **game, int *is_allowed, int *unk) { void _start() __attribute__ ((weak, alias ("module_start"))); int module_start(SceSize argc, const void *args) { - /* - * Read Fw Version - */ - - SceKernelFwInfo fwInfo; - fwInfo.size = sizeof(SceKernelFwInfo); - _vshSblGetSystemSwVersion(&fwInfo); - int fw = fwInfo.version; - - sceClibPrintf("[DolcePolce] Loaded! running on FW: %x\n",fw); + sceClibPrintf("[DolcePolce] Loaded.. Blessed Be..\n"); - /* - * Get SceShell Info - */ tai_module_info_t tai_info; tai_info.size = sizeof(tai_module_info_t); taiGetModuleInfo("SceShell", &tai_info); - if(fw >= 0x3650000) - { - check_psm_allowed_hook = taiHookFunctionOffset(&check_psm_allowed_hook_ref, tai_info.modid,0,0x2E928,1, check_psm_allowed); - check_vita_allowed_hook = taiHookFunctionOffset(&check_vita_allowed_hook_ref, tai_info.modid,0,0x2E480,1, check_vita_allowed); - check_pspemu_allowed_hook = taiHookFunctionOffset(&check_pspemu_allowed_hook_ref, tai_info.modid,0,0x2E78C,1, check_pspemu_allowed); + // this is getting absolutely rediculous tbh but: + switch (tai_info.module_nid) { + case 0x0552F692: // retail 3.60 SceShell + check_psm_allowed_hook = taiHookFunctionOffset(&check_psm_allowed_hook_ref, tai_info.modid,0,0x2E8D0,1, check_psm_allowed); + check_vita_allowed_hook = taiHookFunctionOffset(&check_vita_allowed_hook_ref, tai_info.modid,0,0x2E428,1, check_vita_allowed); + check_pspemu_allowed_hook = taiHookFunctionOffset(&check_pspemu_allowed_hook_ref, tai_info.modid,0,0x2E734,1, check_pspemu_allowed); + break; + case 0x5549BF1F: // retail 3.65 SceShell + case 0x34B4D82E: // retail 3.67 SceShell + case 0x12DAC0F3: // retail 3.68 SceShell + case 0x0703C828: // retail 3.69 SceShell + case 0x2053B5A5: // retail 3.70 SceShell + case 0xF476E785: // retail 3.71 SceShell + case 0x939FFBE9: // retail 3.72 SceShell + case 0x734D476A: // retail 3.73 SceShell + default: + check_psm_allowed_hook = taiHookFunctionOffset(&check_psm_allowed_hook_ref, tai_info.modid,0,0x2E928,1, check_psm_allowed); + check_vita_allowed_hook = taiHookFunctionOffset(&check_vita_allowed_hook_ref, tai_info.modid,0,0x2E480,1, check_vita_allowed); + check_pspemu_allowed_hook = taiHookFunctionOffset(&check_pspemu_allowed_hook_ref, tai_info.modid,0,0x2E78C,1, check_pspemu_allowed); + break; } - else - { - check_psm_allowed_hook = taiHookFunctionOffset(&check_psm_allowed_hook_ref, tai_info.modid,0,0x2E8D0,1, check_psm_allowed); - check_vita_allowed_hook = taiHookFunctionOffset(&check_vita_allowed_hook_ref, tai_info.modid,0,0x2E428,1, check_vita_allowed); - check_pspemu_allowed_hook = taiHookFunctionOffset(&check_pspemu_allowed_hook_ref, tai_info.modid,0,0x2E734,1, check_pspemu_allowed); - } - - - sceClibPrintf("[DolcePolce] check_psm_allowed: %x %x\n",check_psm_allowed_hook,check_psm_allowed_hook_ref); - sceClibPrintf("[DolcePolce] check_vita_allowed: %x %x\n",check_vita_allowed_hook,check_vita_allowed_hook_ref); - sceClibPrintf("[DolcePolce] check_pspemu_allowed: %x %x\n",check_pspemu_allowed_hook,check_pspemu_allowed_hook_ref); return SCE_KERNEL_START_SUCCESS;