X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fgba%2Fmain.c;h=4ade40476c0edeb4a0e5bb03fd61dc2bc6df267b;hb=fb23aa4804a46173f817eb83b4823b7263ef0ed9;hp=068f3d1f8daf10a3e74ed5671303c48a660f767c;hpb=097d03fa2406fca819b27b698ffb1cfc8ac445c2;p=gbajam22 diff --git a/src/gba/main.c b/src/gba/main.c index 068f3d1..4ade404 100644 --- a/src/gba/main.c +++ b/src/gba/main.c @@ -4,9 +4,12 @@ #include "debug.h" #include "game.h" #include "maxmod.h" +#include "input.h" +#include "timer.h" +#include "xgl.h" +#include "scoredb.h" static void vblank(void); -static void nopfunc(void); int main(void) { @@ -28,32 +31,43 @@ int main(void) mmStart(MOD_POPCORN, MM_PLAY_LOOP); #endif - screen_vblank = nopfunc; - intr_disable(); interrupt(INTR_VBLANK, vblank); REG_DISPSTAT |= DISPSTAT_IEN_VBLANK; unmask(INTR_VBLANK); + load_scores(); + gba_colors = scores[10].score & 1; + + xgl_init(); + + if(init_screens() == -1) { + panic(get_pc(), "failed to initialize screens"); + } + + if(change_screen(find_screen("logo")) == -1) { + panic(get_pc(), "failed to find starting screen"); + } + + reset_msec_timer(); intr_enable(); - gamescr(); - for(;;); + for(;;) { + curscr->frame(); + } return 0; } +ARM_IWRAM static void vblank(void) { vblperf_count++; - screen_vblank(); + keyb_vblank(); + curscr->vblank(); #ifndef NOSOUND mmVBlank(); mmFrame(); #endif } - -static void nopfunc(void) -{ -}