X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fgba%2Fmain.c;h=5240dff7d87f6056123a57e2f4385f19abf02a4d;hb=af7c842d19c318b8958e1acecce6ff0a7c7b0591;hp=068f3d1f8daf10a3e74ed5671303c48a660f767c;hpb=097d03fa2406fca819b27b698ffb1cfc8ac445c2;p=gbajam22 diff --git a/src/gba/main.c b/src/gba/main.c index 068f3d1..5240dff 100644 --- a/src/gba/main.c +++ b/src/gba/main.c @@ -4,9 +4,11 @@ #include "debug.h" #include "game.h" #include "maxmod.h" +#include "input.h" +#include "timer.h" +#include "xgl.h" static void vblank(void); -static void nopfunc(void); int main(void) { @@ -28,32 +30,40 @@ 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); + xgl_init(); + + if(init_screens() == -1) { + panic(get_pc(), "failed to initialize screens"); + } + + if(change_screen(find_screen("game")) == -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) -{ -}