#include "common.h" void boot(void); void idle(void* arg); void boot(void) { extern OSThread THREAD_IDLE; extern u8 SP_THREAD_IDLE[1]; osInitialize(); osCreateThread(&THREAD_IDLE, 1, idle, NULL, SP_THREAD_IDLE, 0xA); osStartThread(&THREAD_IDLE); } void idle(void* arg) { extern void main_(void*); extern void __idle_start_4_threads(s32, s32); extern void (*D_800E7A18)(); extern u8 SP_THREAD_FIRST_DMA_LOAD[1]; extern OSThread THREAD_FIRST_DMA_LOAD; extern OSThread THREAD_IDLE; D_800E7A18 = NULL; obInitializePi(); __idle_start_4_threads(2, 1); osViSetSpecialFeatures(OS_VI_DIVOT_ON | OS_VI_DITHER_FILTER_ON | OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_OFF); osCreateThread(&THREAD_FIRST_DMA_LOAD, 3, main_, NULL, SP_THREAD_FIRST_DMA_LOAD, 0xA); osStartThread(&THREAD_FIRST_DMA_LOAD); osSetThreadPri(&THREAD_IDLE, OS_PRIORITY_IDLE); while(1) { if (D_800E7A18 != NULL) { D_800E7A18(); } } }