diff --git a/include/common.h b/include/common.h index 16ee6f3..6fbd858 100644 --- a/include/common.h +++ b/include/common.h @@ -292,8 +292,6 @@ extern void nuBoot(void); extern void obMain(void*); -extern OSThread obThreadMain; - extern OverlaySomething __OVERLAY_INFO_resets_menu_timer; extern void* D_8018FB0C[]; extern OverlaySomething __OVERLAY_INFO_8018FAF8; diff --git a/include/nu/nusys.h b/include/nu/nusys.h index 5714639..6ff862b 100644 --- a/include/nu/nusys.h +++ b/include/nu/nusys.h @@ -62,7 +62,7 @@ extern "C" { /*--------------------------------------*/ //#define NU_IDLE_STACK_SIZE 0x2000 /* Idle thread */ #define NU_RMON_STACK_SIZE 0x2000 /* Rmon thread */ -#define NU_MAIN_STACK_SIZE NU_SPEC_BOOT_STACK_SIZE /* Main thread */ +//#define NU_MAIN_STACK_SIZE NU_SPEC_BOOT_STACK_SIZE /* Main thread */ diff --git a/linker_scripts/symbols/addr.txt b/linker_scripts/symbols/addr.txt index 086e773..9d08eb9 100644 --- a/linker_scripts/symbols/addr.txt +++ b/linker_scripts/symbols/addr.txt @@ -1027,12 +1027,9 @@ __ERROR_BAD_TABLE = 0x800AE338; __VIRTUAL_MEMORY_EXHAUSTED = 0x800AE35C; __virtual_mem_alloc = 0x80070F30; - - - - obMain = 0x80071EB0; obThreadMain = 0x800AF5F0; +obStackMain = 0x800C4CF0; entry = 0x80070C00; diff --git a/src/boot.c b/src/boot.c index 37e0023..8615ef3 100644 --- a/src/boot.c +++ b/src/boot.c @@ -3,10 +3,14 @@ #include "nu/nusys.h" #define NU_IDLE_STACK_SIZE 0x1790 +#define OB_MAIN_STACK_SIZE 0x2070 extern OSThread nuThreadIdle; extern u64 nuStackIdle[NU_IDLE_STACK_SIZE / sizeof(u64)]; +extern OSThread obThreadMain; +extern u64 obStackMain[OB_MAIN_STACK_SIZE / sizeof(u64)]; + void nuIdle(void* arg); void nuBoot(void) { @@ -23,7 +27,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, &nuContNum, NU_MAIN_THREAD_PRI); + osCreateThread(&obThreadMain, NU_MAIN_THREAD_ID, obMain, NULL, obStackMain + OB_MAIN_STACK_SIZE / sizeof(u64), NU_MAIN_THREAD_PRI); osStartThread(&obThreadMain); osSetThreadPri(&nuThreadIdle, NU_IDLE_THREAD_PRI);