| View previous topic :: View next topic |
| Author |
Message |
pegasus2000
Joined: 12 Jul 2006 Posts: 160
|
Posted: Mon Oct 29, 2007 7:44 pm Post subject: To create an homebrew that load and starts another homebrew |
|
|
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 ? |
|
| Back to top |
|
 |
mypspdev
Joined: 11 Jul 2007 Posts: 178
|
Posted: Mon Oct 29, 2007 9:10 pm Post subject: |
|
|
int sceKernelLoadExec (const char *file, struct SceKernelLoadExecParam *param)
? |
|
| Back to top |
|
 |
Anti-QJ
Joined: 03 May 2007 Posts: 16
|
Posted: Tue Oct 30, 2007 9:23 am Post subject: |
|
|
| 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. |
|
| Back to top |
|
 |
Art
Joined: 09 Nov 2005 Posts: 647
|
Posted: Tue Oct 30, 2007 11:57 am Post subject: |
|
|
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. |
|
| Back to top |
|
 |
Cpasjuste
Joined: 29 May 2005 Posts: 214
|
Posted: Wed Oct 31, 2007 1:15 am Post subject: |
|
|
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: |
void execEboot(char *target)
{
struct SceKernelLoadExecVSHParam param;
memset(¶m, 0, sizeof(param));
param.key = "game";
param.size = sizeof(param);
param.args = strlen(target)+1;
param.argp = target;
sctrlKernelLoadExecVSHMs2(target, ¶m);
}
|
|
|
| Back to top |
|
 |
moonlight
Joined: 26 Oct 2005 Posts: 567
|
Posted: Wed Oct 31, 2007 4:01 am Post subject: |
|
|
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 :) |
|
| Back to top |
|
 |
|