Fix adrenaline? compat

This commit is contained in:
SilicaAndPina 2019-12-18 17:11:15 +13:00
parent 3db707a7e7
commit 084155bbf5
1 changed files with 21 additions and 29 deletions

View File

@ -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;