To create an homebrew that load and starts another homebrew

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

Post Reply
pegasus2000
Posts: 160
Joined: Wed Jul 12, 2006 7:09 am

To create an homebrew that load and starts another homebrew

Post by pegasus2000 »

Is it possible to create an homebrew that load and starts another homebrew ?

A solution that would be useful for auto-updating software....

Is it possible ? How ?
mypspdev
Posts: 178
Joined: Wed Jul 11, 2007 10:30 pm

Post by mypspdev »

int sceKernelLoadExec (const char *file, struct SceKernelLoadExecParam *param)
?
Anti-QJ
Posts: 16
Joined: Thu May 03, 2007 2:34 pm

Post by Anti-QJ »

For Auto-Updating on my programs I have it connect to a WLAN access point on startup then check a text file on my server that has the latest version. Then I do a if currentVersion > hostedVersion then download new version and replace the files needed.
Art
Posts: 642
Joined: Wed Nov 09, 2005 8:01 am

Post by Art »

A further development of that idea might also delete itself and start the
new version as well.
When I had a play with LoadExec, I think it only wanted to load elf files.
If not actually, then potentially.
Cpasjuste
Posts: 214
Joined: Sun May 29, 2005 8:28 am

Post by Cpasjuste »

Yep i'm not able to load eboot with sceKernelLoadExec anymore but with the m33 sdk function "sctrlKernelLoadExecVSHMs2" there is no problem. Art is right, if you find a new version on the server, just overwrite your current eboot on psp (no problems since its loaded in ram) then exec it :

Code: Select all

void execEboot(char *target)
{	
	struct SceKernelLoadExecVSHParam param;
			
	memset(&param, 0, sizeof(param));
			
	param.key = "game";
	param.size = sizeof(param);
	param.args = strlen(target)+1;
	param.argp = target;

	sctrlKernelLoadExecVSHMs2(target, &param);	

}
moonlight
Posts: 567
Joined: Wed Oct 26, 2005 7:46 pm

Post by moonlight »

Yeah, in 2.XX+, the original sceKernelLoadExec is now only able to execute something that is inside in an disc.

Moreover, it cannot execute eboot.bin, games have to execute boot.bin to do it, but the curious thing is that since some firmware (2.70 i think), the firmware really executes eboot.bin when the program passes the boot.bin string in the original loadexec, but it will reject it if games explicitily indicate eboot.bin. Curious and stupid sce things :)
Post Reply