Replies: 8 comments 31 replies
-
|
Beta Was this translation helpful? Give feedback.
-
The intercept is here: https://github.com/emukidid/swiss-gc/blob/master/cube/patches/base/blockdevice.c#L71-L74 libogc: https://github.com/devkitPro/libogc/blob/master/libogc/system.c#L261-L268 |
Beta Was this translation helpful? Give feedback.
-
One step at a time... libogcIn the original code, what means to set 0 at
libogc2your code looks to be a little more interesting... if I understand well:
What is located at Did I understand well ? Interceptor if ((*VAR_IGR_TYPE & 0x80) && offset == 0x2440) {
*VAR_CURRENT_DISC = FRAGS_APPLOADER;
*VAR_SECOND_DISC = 0;
} that's only for block devices no? If I execute a DOL from swiss, the custom hackloader won't be called ? |
Beta Was this translation helpful? Give feedback.
-
By Dolphin SDK software I guess you meant official SDK. So probably easier in my case, as I'd like to intercept the reset from a libogc/libogc2 program to go back to my loader (USB Gecko/BBA Loader). In this piece of code (https://github.com/crtc-demos/the-scary-demo/blob/master/filemgr.c) it does: static void return_to_loader (void)
{
void (*reload)() = (void(*)()) 0x80001800;
reload ();
}
int main (int argc, char **argv)
{
...
/* Hopefully this will trigger if we exit unexpectedly... */
atexit (return_to_loader);
....
return_to_loader ();
return 0;
} How can I set a pointer to USB Gecko/BBA Loader in this first exception vector ( |
Beta Was this translation helpful? Give feedback.
-
Ah ah it works !!! So great :D Any example on how to catch a push on the RESET button? |
Beta Was this translation helpful? Give feedback.
-
Any comment on my previous question on I also found |
Beta Was this translation helpful? Give feedback.
-
Ok I have a working version but the fact to set my devoptab_list[STD_OUT] = &dotab_stdudp;
devoptab_list[STD_ERR] = &dotab_stdudp; Ok found out... |
Beta Was this translation helpful? Give feedback.
-
Now working on the gcloader, what's the easiest way to read a file from the SD card inserted in the GCLoader ? |
Beta Was this translation helpful? Give feedback.
-
Hi,
Just very curious about the swiss low level stuff which really impresses me. Could you explain me how the pad patch works ?
CheckStatus(chan, status)
?OSResetSystem(OS_RESET_RESTART, 0, 0);
triggering the restart of swiss? How does it work (resident? OS pointer ?...)Thanks!
Beta Was this translation helpful? Give feedback.
All reactions