diff --git a/linker_scripts/symbols/addr.txt b/linker_scripts/symbols/addr.txt index 39e45d5..a5ba190 100644 --- a/linker_scripts/symbols/addr.txt +++ b/linker_scripts/symbols/addr.txt @@ -37,6 +37,7 @@ nuContDataMutexQ = 0x800E9BF0; nuContDataMutexBuf = 0x800BE194; nuContCallBack = 0x800A9FF8; nuContStatus = 0x800C4B38; // size:0x10 type:u32 +nuContNum = 0x800C6D60; nuBoot = 0x8007F880; nuScCreateScheduler = 0x80088C50; // rom:0x19050 @@ -1012,7 +1013,6 @@ __virtual_mem_alloc = 0x80070F30; obMain = 0x80071EB0; obThreadMain = 0x800AF5F0; -obStackMain = 0x800C6D60; entry = 0x80070C00; diff --git a/src/_ob_prized_reading.c b/src/_ob_prized_reading.c index 912bac1..fe9ce85 100644 --- a/src/_ob_prized_reading.c +++ b/src/_ob_prized_reading.c @@ -2,8 +2,6 @@ #include "nu/nusys.h" -extern u32 obStackMain; - /* 1A660 8008A260 */ u8 nuContMgrInit(void) { s32 var_a0; @@ -19,12 +17,12 @@ u8 nuContMgrInit(void) { var_a0 = 1; var_a1 = 0; var_v1 = 0; - obStackMain = 0; + nuContNum = 0; for(; var_v1 < MAXCONTROLLERS; var_v1++) { if (nuContStatus[var_v1].errno == 0) { if ((nuContStatus[var_v1].type & CONT_TYPE_MASK) == CONT_TYPE_NORMAL) { var_a1 |= var_a0; - obStackMain += 1; + nuContNum += 1; } var_a0 *= 2; } diff --git a/src/boot.c b/src/boot.c index b16a137..935573e 100644 --- a/src/boot.c +++ b/src/boot.c @@ -5,8 +5,6 @@ extern OSThread nuThreadIdle; extern u64 nuStackIdle[]; -extern u8 obStackMain[]; - void nuIdle(void* arg); void nuBoot(void) { @@ -23,7 +21,7 @@ void nuIdle(void* arg) { osViSetSpecialFeatures(OS_VI_DIVOT_ON | OS_VI_DITHER_FILTER_ON | OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_OFF); - osCreateThread(&obThreadMain, NU_MAIN_THREAD_ID, obMain, NULL, obStackMain, NU_MAIN_THREAD_PRI); + osCreateThread(&obThreadMain, NU_MAIN_THREAD_ID, obMain, NULL, &nuContNum, NU_MAIN_THREAD_PRI); osStartThread(&obThreadMain); osSetThreadPri(&nuThreadIdle, NU_IDLE_THREAD_PRI);