diff --git a/libctru/source/system/appExit.c b/libctru/source/system/appExit.c index f797e1d..9165425 100644 --- a/libctru/source/system/appExit.c +++ b/libctru/source/system/appExit.c @@ -6,7 +6,12 @@ #include <3ds/services/fs.h> #include <3ds/services/hid.h> -void __attribute__((weak)) __appExit(void) { +void __attribute__((weak)) userAppExit(void); + +void __attribute__((weak)) __appExit(void) +{ + if (&userAppExit) userAppExit(); + // Exit services archiveUnmountAll(); fsExit(); diff --git a/libctru/source/system/appInit.c b/libctru/source/system/appInit.c index 0bd3e04..47b4dbf 100644 --- a/libctru/source/system/appInit.c +++ b/libctru/source/system/appInit.c @@ -6,7 +6,10 @@ #include <3ds/services/fs.h> #include <3ds/services/hid.h> -void __attribute__((weak)) __appInit(void) { +void __attribute__((weak)) userAppInit(void); + +void __attribute__((weak)) __appInit(void) +{ // Initialize services srvInit(); aptInit(); @@ -14,4 +17,6 @@ void __attribute__((weak)) __appInit(void) { fsInit(); archiveMountSdmc(); + + if (&userAppInit) userAppInit(); }