forums.ps2dev.org Forum Index forums.ps2dev.org
Homebrew PS2, PSP & PS3 Development Discussions
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

LoadExecForKernel_28D0D249, the holy function of homebrew :)

 
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development
View previous topic :: View next topic  
Author Message
moonlight



Joined: 26 Oct 2005
Posts: 567

PostPosted: Fri Mar 24, 2006 5:34 am    Post subject: LoadExecForKernel_28D0D249, the holy function of homebrew :) Reply with quote

I've spending the day doing some reverse engineering stuff to find out what function the firmware 1.50 uses to let us execute homebrew and i finally found it.

In normal mode ("game" mode), the function is located at address 0x88068a74. In "vsh" mode (the one i have really been investigating), this function is located at address 0x880bc274.

The parameters are very similar to the sceKernelLoadExec function (i think that almost all of these laod-exec function call to the same function which is the one that does the real stuff).

The function and structure defintion (more or less)

Code:

struct SceKernelLoadExecVSHParam {
/* Size of structure (0x24)*/
    SceSize     size;
 
/* Size of the arguments string */
    SceSize     args;

/* Pointer to the arguments strings */
    void * argp;

 /* Set to "game" when loading homebrews */
    const char * key;

/* unknown, it seems to be some kind of flag. the firmware set it to 0x00000400. it looks like is related with the next fields of the struct, it's better to set it to 0 if we don't know how to use those fields */
    u32 unk1;

/* unknown, the firmware always set it to 0x09CF344C, which seems to be a pointer (but it's not a pointer to a string) */
    void *unk2;

/* unknown. the firmware sets it to 0 */
    u32 unk3;

/* unknown. the firmware sets it to 0 */
    u32 unk4;

/* unknown. the firmware sets it to 0 */
    u32 unk5
};

int LoadExecForKernel_28D0D249(const char *file, struct SceKernelLoadExecVSHParam *param); 



I don't know if the function can work in "game" mode or if only work in "vsh" mode. I've only tested it in vsh.

We don't know the name of this function, but i would swear that it has to be something that starts with "sceKernelLoadExecVSH"


I know this may not be very useful since we already have sceKernelLoadExec that it's almost identical, but hey, you should show some respect to LoadExecForKernel_28D0D249, thanks to it we have homebrew ;)
Back to top
View user's profile Send private message
sg57



Joined: 14 Oct 2005
Posts: 154

PostPosted: Fri Mar 24, 2006 5:08 pm    Post subject: Reply with quote

"but hey, you should show some respect to LoadExecForKernel_28D0D249, thanks to it we have homebrew ;)"

Well, maybe LoadExecForKernel_28D0D249 is just a line of code and doesnt have feelings/emotions? It may just be a 'command' towards the PSP. AI if you will :P.... just kiddding around, Ive been wanting to know something like this for quite some time actually.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development All times are GMT + 10 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group