Compare commits
9 Commits
Author | SHA1 | Date |
---|---|---|
random() | 148e5bcbad | |
SilicaAndPina | e46ffc8e83 | |
SilicaAndPina | 6101d286f4 | |
SilicaAndPina | 0d44412168 | |
SilicaAndPina | f0d3629482 | |
SilicaAndPina | 9578c70d6e | |
SilicaAndPina | 35f0cbdb93 | |
SilicaAndPina | 9293389bce | |
AtelierWindows | eeb4457a1e |
44
FreePSM.c
44
FreePSM.c
|
@ -14,14 +14,7 @@ char titleid[12];
|
|||
|
||||
int SceLibPsmAimMgrIsDex_p()
|
||||
{
|
||||
int ret = TAI_CONTINUE(int, SceLibPsmAimMgrIsDexHook_ref,);
|
||||
|
||||
if(ret > -1)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
sceClibPrintf("[FreePSM] ERROR: SceLibPsmAimMgrIsDex returned %x",ret);
|
||||
return ret;
|
||||
return 1;
|
||||
}
|
||||
|
||||
SceUID sceKernelLoadStartModule_p(char *path, SceSize args, void *argp, int flags, SceKernelLMOption *option, int *status)
|
||||
|
@ -31,16 +24,45 @@ SceUID sceKernelLoadStartModule_p(char *path, SceSize args, void *argp, int flag
|
|||
SceUID ret;
|
||||
ret = TAI_CONTINUE(SceUID, LoadModuleHook_ref, path, args, argp, flags, option, status);
|
||||
|
||||
if(strstr(path,"libpsm.suprx"))
|
||||
if(strstr(path,"libpsm.suprx")) //PSM
|
||||
{
|
||||
SceLibPsmAimMgrIsDexHook = taiHookFunctionOffset(&SceLibPsmAimMgrIsDexHook_ref,
|
||||
ret,
|
||||
0,
|
||||
0x450da, //2.01 Retail Runtime
|
||||
0x450da, //SceLibPsmAimMgrIsDex
|
||||
1,
|
||||
SceLibPsmAimMgrIsDex_p);
|
||||
sceClibPrintf("[FreePSM] SceLibPsmAimMgrIsDexHook %x %x\n",SceLibPsmAimMgrIsDexHook,SceLibPsmAimMgrIsDexHook_ref);
|
||||
}
|
||||
|
||||
if(strstr(path,"libScePsmInAppPurchase.suprx")) //PSM Unity
|
||||
{
|
||||
tai_module_info_t tai_info;
|
||||
tai_info.size = sizeof(tai_module_info_t);
|
||||
taiGetModuleInfo("SceLibPsmInAppPurchase", &tai_info);
|
||||
|
||||
switch (tai_info.module_nid) {
|
||||
case 0x1E9E7B88: //1.00 - 1.01 Unity Runtime
|
||||
SceLibPsmAimMgrIsDexHook = taiHookFunctionOffset(&SceLibPsmAimMgrIsDexHook_ref,
|
||||
ret,
|
||||
0,
|
||||
0x3672, //SceLibPsmAimMgrIsDex
|
||||
1,
|
||||
SceLibPsmAimMgrIsDex_p);
|
||||
sceClibPrintf("[FreePSM] SceLibPsmAimMgrIsDexHook %x %x\n",SceLibPsmAimMgrIsDexHook,SceLibPsmAimMgrIsDexHook_ref);
|
||||
break;
|
||||
case 0x4E7A28FC: //1.02 Unity Runtime
|
||||
SceLibPsmAimMgrIsDexHook = taiHookFunctionOffset(&SceLibPsmAimMgrIsDexHook_ref,
|
||||
ret,
|
||||
0,
|
||||
0x366a, //SceLibPsmAimMgrIsDex
|
||||
1,
|
||||
SceLibPsmAimMgrIsDex_p);
|
||||
sceClibPrintf("[FreePSM] SceLibPsmAimMgrIsDexHook %x %x\n",SceLibPsmAimMgrIsDexHook,SceLibPsmAimMgrIsDexHook_ref);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -50,7 +72,7 @@ void _start() __attribute__ ((weak, alias ("module_start")));
|
|||
void module_start(SceSize argc, const void *args) {
|
||||
sceAppMgrAppParamGetString(0, 12, titleid, 256);
|
||||
|
||||
if(!strcmp(titleid,"PCSI00011")) // PSM Runtime
|
||||
if(!strcmp(titleid,"PCSI00011") || !strcmp(titleid,"PCSI00010")) // PSM Runtime & PSM Unity Runtime
|
||||
{
|
||||
sceClibPrintf("[FreePSM] Silca: I like to see girls die :3\n");
|
||||
sceClibPrintf("[FreePSM] Loaded!\n");
|
||||
|
|
41
README.md
41
README.md
|
@ -1,18 +1,23 @@
|
|||
# FreePSM
|
||||
|
||||
Enables Debug PSM InAppPurchases in retail PSM Runtime
|
||||
|
||||
Basically.. it Allows you to obtain PSM InAppPurchases offline . . (and for free of cource)
|
||||
forever.. :3
|
||||
|
||||
Useful for games that have the full game locked behinds an IAP
|
||||
|
||||
Install under \*ALL
|
||||
|
||||
Download: https://bitbucket.org/SilicaAndPina/freepsm/downloads/FreePSM.suprx
|
||||
|
||||
Currently only working with regular Mono PSM games, PSM for UNITY games are not supported (yet)
|
||||
|
||||
Only works with PSM Runtime 2.01 . . . (if u have older please share)
|
||||
|
||||
Note: This is ONLY for PSM (PlayStation Mobile) games NOT for Native Vita Games.
|
||||
# About
|
||||
|
||||
Enables Debug PSM InAppPurchases in retail PSM Runtime
|
||||
|
||||
Basically.. it Allows you to obtain PSM InAppPurchases offline . . (and for free of cource)
|
||||
forever.. :3
|
||||
|
||||
Useful for games that have the full game locked behinds an IAP
|
||||
|
||||
Install under \*ALL
|
||||
|
||||
Only works with PSM Runtime 2.01 And UNITY Runtime(s) 1.00-1.02
|
||||
|
||||
BTW: if u have an older PSM Runtime please share! im looking for older verisons!
|
||||
|
||||
Note: This is ONLY for PSM (PlayStation Mobile) games NOT for Native Vita Games.
|
||||
|
||||
Whenever an InAppPurchase command is called a message box will pop up:
|
||||
like "Get Ticket Information ?" with 3 options:
|
||||
OK Cancel Error
|
||||
if you press OK, the IAP Handler will say the command completed successfully
|
||||
if you press CANCEL it'll say that it was cancled by the user
|
||||
if you press ERROR it'll say an error occured.
|
||||
|
|
Loading…
Reference in New Issue