diff --git a/linker_scripts/symbols/addr.txt b/linker_scripts/symbols/addr.txt index 9d08eb9..8852421 100644 --- a/linker_scripts/symbols/addr.txt +++ b/linker_scripts/symbols/addr.txt @@ -25,7 +25,7 @@ rdpstateinit_dl = 0x800A9EF0; // rom:0x3A2F0 nuGfxDisplay = 0x800C4BD8; nuSiMesgQ = 0x800E9B88; nuSiMesgBuf = 0x800BBE60; -siMgrThread = 0x800BBE80; +siMgrThread = 0x800BBE80; // size:0x1B0 nuThreadIdle = 0x800AF440; nuStackIdle = 0x800B0010; nuPiCartHandle = 0x800E7A20; @@ -46,6 +46,7 @@ nuContPakCompanyCode = 0x800AA010; nuContPakGameCode = 0x800AA014; nuSiCallBackList = 0x800A9EA0; nuGfxTaskEndFunc = 0x800A9E88; +nuStackSiMgrThread = 0x800BC030; nuBoot = 0x8007F880; nuScCreateScheduler = 0x80088C50; // rom:0x19050 diff --git a/src/nu/nusimgr.c b/src/nu/nusimgr.c index 8d0391d..6894771 100644 --- a/src/nu/nusimgr.c +++ b/src/nu/nusimgr.c @@ -5,6 +5,8 @@ void nuSiMgrThread(void* arg); +extern u64 nuStackSiMgrThread[0x2000 / sizeof(u64)]; + /* 1A060 80089C60 */ u8 nuSiMgrInit(void) { u8 pattern; @@ -15,7 +17,7 @@ u8 nuSiMgrInit(void) { osContInit(&nuSiMesgQ, &pattern, status); - osCreateThread(&siMgrThread, 5, nuSiMgrThread, NULL, &nuPiMgrMesgQ, NU_SI_THREAD_PRI); + osCreateThread(&siMgrThread, 5, nuSiMgrThread, NULL, nuStackSiMgrThread + 0x2000 / sizeof(u64), NU_SI_THREAD_PRI); osStartThread(&siMgrThread); return pattern;