I have got a bootstrap (Slasher sent it to me) but it works only for 1.5 and 1.0.
Here's the part I need help with.
Code: Select all
// patch the kernel@sceGameExit
#define J(addr) (0x08000000 | (0xFFFFFFF & (((u32)(addr)) >> 2)))
switch (sceKernelDevkitVersion())
{
case 0x01050001: // 1.5
//*((unsigned int *)0x8806882c) = J(returnTo);
*((unsigned int *)0x8806882c) = J(rebootApp);
*((unsigned int *)0x88068830) = 0x00000000; // nop
break;
case 0x01000300: // 1.0
//*((unsigned int *)0x88064118) = J(returnTo);
*((unsigned int *)0x88064118) = J(rebootApp);
*((unsigned int *)0x8806411c) = 0x00000000; // nop
break;
}
I used this to get the addresses:
Code: Select all
SceModule2* mod = sceKernelFindModuleByName("sceLoadExec");
u32 functionAddr = sctrlHENFindFunction("sceLoadExec", "LoadExecForUser", 0x05572A5F);
Thanks. :)