8 static void *xfb
= NULL
;
9 static GXRModeObj
*rmode
= NULL
;
11 extern u8 loader_dol
[];
13 extern void __exception_closeall();
14 extern s32
__IOS_ShutdownSubsystems();
16 int main(int argc
, char **argv
) {
20 switch(VIDEO_GetCurrentTvMode()) {
22 rmode
= &TVNtsc480IntDf
;
25 rmode
= &TVPal528IntDf
;
28 rmode
= &TVMpal480IntDf
;
31 rmode
= &TVNtsc480IntDf
;
37 xfb
= MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode
));
38 console_init(xfb
,20,20,rmode
->fbWidth
,rmode
->xfbHeight
,rmode
->fbWidth
*VI_DISPLAY_PIX_SZ
);
40 VIDEO_Configure(rmode
);
41 VIDEO_SetNextFramebuffer(xfb
);
42 VIDEO_SetBlack(FALSE
);
46 if(rmode
->viTVMode
&VI_NON_INTERLACE
) VIDEO_WaitVSync();
48 printf("\n\nloading\n");
50 void (*ep
)() = (void(*)())load_dol_image(loader_dol
);
51 printf("jumping to 0x%08X\n", (unsigned int)ep
);
53 __IOS_ShutdownSubsystems();
54 _CPU_ISR_Disable (level
);
55 __exception_closeall ();
56 printf("__exception_closeall() done. Jumping to ep now...\n");
58 _CPU_ISR_Restore (level
);
60 return 0; // fixes gcc warning