jcorrea
PSX-Place Supporter
I Never used psnliberator. InFamous: Festival of Blood, if not edited eboot.bin (only param.sfo), will create data on TITLE_ID_INSTALL (at least the NPUA80657 creates data inside dev_hdd0/game/NPUA80657_INSTALL, with 1GB of data inside).Yes, thanks, that would be nice.
--------------------------------
I opened the EBOOT.ELF of CS:GO... It seems that that game just is not supposed to be rebuilt into nothing but HDD game type.
Those lines:Code:undefined8 FUN_00012538(longlong param_1,ulonglong param_2) { undefined8 uVar1; undefined8 uVar2; int iVar3; char *pcVar4; char *__s1; char *__s; undefined *puVar5; undefined4 local_520; undefined4 local_51c; undefined4 local_518; undefined4 local_514; undefined4 local_510; undefined4 local_50c; undefined auStack1288 [32]; undefined auStack1256 [1064]; undefined local_c0; undefined auStack191 [31]; undefined8 local_a0; if (*(char *)(param_1 + 0xc70) != '\0') { FUN_000124c0("CPs3ContentPathInfo is being initialized twice!\n"); } uVar1 = cellSysmoduleLoadModule(0x16); if ((int)uVar1 == 0) { local_a0 = cellSysmoduleIsLoaded(0x3e); if ((int)local_a0 == 0) { FUN_000124c0( "The SYSUTIL_GAME module is already loaded -- revist load order logic in CPs3ContentPathInfo::Init()\n" ); } else { uVar1 = cellSysmoduleLoadModule(0x3e); if ((int)uVar1 != 0) { uVar2 = FUN_00012398(uVar1,0xa0000); FUN_000124c0("Failed to load sysutil_game: %s\n",uVar2); return uVar1; } } local_520 = 0; local_51c = 0; local_518 = 0; local_c0 = 0; sys_libc_0xA7E9EA47(auStack191,0,0x1f); uVar1 = cellGameBootCheck(param_1 + 0xc64,param_1 + 0xc68,&local_520,&local_c0); if ((int)uVar1 == 0) { *(undefined *)(param_1 + 0xc70) = 1; *(undefined4 *)(param_1 + 0xc6c) = local_520; __s1 = (char *)(param_1 + 0x1a4); pcVar4 = (char *)(param_1 + 0xa4); if ((param_2 & 1) == 0) { uVar1 = cellGameGetParamString(0,param_1,0x80); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_TITLE )",uVar2); return uVar1; } uVar1 = cellGameGetParamString(100,param_1 + 0x80,10); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_TITLE_ID )",uVar2); return uVar1; } uVar1 = cellGameGetParamString(0x6a,param_1 + 0x8a,6); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_APP_VER )",uVar2); return uVar1; } uVar1 = cellGameGetParamInt(0x66,param_1 + 0x98); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_PARENTAL_LEVEL )",uVar2); return uVar1; } uVar1 = cellGameGetParamInt(0x67,param_1 + 0x9c); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_RESOLUTION )",uVar2); return uVar1; } uVar1 = cellGameGetParamInt(0x68,param_1 + 0xa0); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_SOUND_FORMAT )",uVar2); return uVar1; } uVar1 = cellGameContentPermit(pcVar4,__s1); if (((*(uint *)(param_1 + 0xc68) & 4) != 0) && (iVar3 = strncmp(__s1,"/app_home",9), iVar3 == 0)) { snprintf(pcVar4,0x7f,"/app_home/PS3_GAME"); snprintf(__s1,0x7f,"/app_home/PS3_GAME/USRDIR"); } } else { if (*(int *)(param_1 + 0xc64) != 2) { FUN_000124c0("Unsupported boot in RETAIL mode! (bootmode=%d)\n",*(int *)(param_1 + 0xc64)) ; return 0xffffffffffffffff; } uVar1 = cellGameGetParamString(0,param_1,0x80); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_TITLE )",uVar2); return uVar1; } uVar1 = cellGameGetParamString(100,param_1 + 0x80,10); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_TITLE_ID )",uVar2); return uVar1; } uVar1 = cellGameGetParamString(0x6a,param_1 + 0x8a,6); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_APP_VER )",uVar2); return uVar1; } uVar1 = cellGameGetParamInt(0x66,param_1 + 0x98); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_PARENTAL_LEVEL )",uVar2); return uVar1; } uVar1 = cellGameGetParamInt(0x67,param_1 + 0x9c); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_RESOLUTION )",uVar2); return uVar1; } uVar1 = cellGameGetParamInt(0x68,param_1 + 0xa0); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_SOUND_FORMAT )",uVar2); return uVar1; } uVar1 = cellGameContentPermit(pcVar4,__s1); if ((int)uVar1 != 0) { uVar2 = FUN_00012398(uVar1,0xa0000); FUN_000124c0("cellGameContentPermit failed (line %d, code %d): %s\n",0xe0,uVar1,uVar2); return uVar1; } iVar3 = *(int *)(param_1 + 0xc64); if (iVar3 != 2) { puVar5 = (undefined *)0x0; if (iVar3 == 2) { puVar5 = &local_c0; } uVar1 = cellGameDataCheck(iVar3,puVar5,&local_520); if ((int)uVar1 != 0) { uVar2 = FUN_00012398(uVar1,0xa0000); FUN_000124c0("cellGameDataCheck failed (line %d, code %d): %s\n",0xfb,uVar1,uVar2); return uVar1; } uVar1 = cellGameGetParamString(0,param_1,0x80); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_TITLE )",uVar2); return uVar1; } uVar1 = cellGameGetParamString(100,param_1 + 0x80,10); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_TITLE_ID )",uVar2); return uVar1; } uVar1 = cellGameGetParamString(0x6a,param_1 + 0x8a,6); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_APP_VER )",uVar2); return uVar1; } uVar1 = cellGameGetParamInt(0x66,param_1 + 0x98); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_PARENTAL_LEVEL )",uVar2); return uVar1; } uVar1 = cellGameGetParamInt(0x67,param_1 + 0x9c); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_RESOLUTION )",uVar2); return uVar1; } uVar1 = cellGameGetParamInt(0x68,param_1 + 0xa0); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1); FUN_000124c0("%s: %s\n","PARAM.SFO getParam( CELL_GAME_PARAMID_SOUND_FORMAT )",uVar2); return uVar1; } uVar1 = cellGameContentPermit(pcVar4,__s1); } } if ((*(uint *)(param_1 + 0xc68) & 1) != 0) { local_514 = 0; local_510 = 0; local_50c = 0; uVar1 = cellGamePatchCheck(&local_514,0); if ((int)uVar1 != 0) { uVar2 = FUN_00012398(uVar1,0xa0000); FUN_000124c0("cellGamePatchCheck failed (line %d, code %d): %s\n",0x113,uVar1,uVar2); return uVar1; } uVar1 = cellGameGetParamString(0x6a,param_1 + 0x90,6); if ((int)uVar1 < 0) { uVar2 = FUN_00012398(uVar1,0xa0000); FUN_000124c0("%s: %s\n","PARAM.SFO PATCH getParam( CELL_GAME_PARAMID_APP_VER )",uVar2); return uVar1; } uVar1 = cellGameContentPermit(param_1 + 0x124,param_1 + 0x224); } __s = (char *)(param_1 + 0x324); pcVar4 = __s1; if (*(int *)(param_1 + 0xc64) != 2) { pcVar4 = "/hddpath/invalid"; } snprintf(__s,0x80,pcVar4); if (-1 < (int)uVar1) { sys_libc_0xA7E9EA47(auStack1288,0,0x444); memcpy(auStack1288,"NPUB30589",10); uVar1 = cellSysCacheMount(auStack1288); if ((-1 < (int)uVar1) && (memcpy((void *)(param_1 + 0x424),auStack1256,0x41f), (param_2 & 0x80) != 0)) { cellSysCacheClear(); } } pcVar4 = (char *)(param_1 + 0x3a4); snprintf(pcVar4,0x80,__s1); if ((param_2 & 8) == 0) { if ((param_2 & 4) == 0) { if ((param_2 & 2) != 0) { snprintf(pcVar4,0x80,"/dev_bdvd/PS3_GAME/USRDIR"); } } else { snprintf(pcVar4,0x80,__s); } } else { snprintf(pcVar4,0x80,"/app_home/PS3_GAME/USRDIR"); } pcVar4 = (char *)(param_1 + 0x2a4); snprintf(pcVar4,0x80,"%s/bin",__s1); if ((param_2 & 0x40) == 0) { if ((param_2 & 0x20) == 0) { if ((param_2 & 0x10) != 0) { snprintf(pcVar4,0x80,"/dev_bdvd/PS3_GAME/USRDIR/bin"); } } else { snprintf(pcVar4,0x80,"%s/bin",__s); } } else { snprintf(pcVar4,0x80,"/app_home/PS3_GAME/USRDIR/bin"); } sys_libc_0xBDA4DCF0((char *)(param_1 + 0x843),param_1 + 0x424,0x41f); strncat((char *)(param_1 + 0x843),"/tempsave/",0x41f); if ((int)local_a0 != 0) { cellSysmoduleUnloadModule(0x3e); } } else { uVar2 = FUN_00012398(uVar1,0xa0000); FUN_000124c0("cellGameBootCheck failed (line %d, code %d): %s\n",0x8b,uVar1,uVar2); } } else { uVar2 = FUN_00012398(uVar1,0xa0000); FUN_000124c0("Failed to load sysutil_np: %s\n",uVar2); } return uVar1; }
if (*(int *)(param_1 + 0xc64) != 2) {
FUN_000124c0("Unsupported boot in RETAIL mode! (bootmode=%d)\n",*(int *)(param_1 + 0xc64))
- if they are here then I think the developers thought out the game rebuilt as to deprecate that. I tried to change !=2 to !=1, that case the system is trying to search for the non-existing files... So, looks like this game is doomed to exist in it's HDD type only :/
I am starting to think that the case with the Korra's EBOOT is just a single one...
--------------------------------------
Juast was wondering and had a free moment - tried to rebuild "InFamous: Festival of Blood" NPEA00322 into iso. There is no need in it's EBOOT edit, it simply rebuilds. It even functionals like a standalone BD game (without the needence in the original pkg's data presence in /dev_hdd0/, it is independable). Tested either in emulator and on my console device, passing to the moment after the videos when I could control a character. So, jcorrea, If you were trusting the rebuild proccess to some third program like psnliberator, it's time to have a doubt in it)
Last edited: