int main_thread(SceSize args, void *argp) { char *argv0; char prx_path[256]; char *path; SceUID modid; int ret; pspDebugScreenInit(); sceDisplayWaitVblankStart(); pspSdkInstallNoDeviceCheckPatch(); pspSdkInstallNoPlainModuleCheckPatch(); pspSdkInstallKernelLoadModulePatch(); argv0 = (char*) argp; path = strrchr(argv0, '/'); if(path != NULL) { memcpy(prx_path, argv0, path - argv0 + 1); prx_path[path - argv0 + 1] = 0; strcat(prx_path, "psplink.prx"); } else { /* Well try for a default */ strcpy(prx_path, "ms0:/psplink.prx"); } /* Start mymodule.prx and dump its information */ printf("PSPLink Bootstrap TyRaNiD (c) 2k5 Version %s\n", PSPLINK_VERSION); modid = load_module(prx_path, 0, 0); if(modid >= 0) { int status; printf("Starting psplink module\n"); ret = sceKernelStartModule(modid, args, argp, &status, NULL); printf("Done\n"); } else { printf("Error loading psplink module %08X\n", modid); } /* Let's bug out */ sceKernelExitDeleteThread(0); return 0; }
void loaderInit(){ pspKernelSetKernelPC(); pspSdkInstallNoDeviceCheckPatch(); pspSdkInstallNoPlainModuleCheckPatch(); pspSdkInstallKernelLoadModulePatch(); }