+ struct screen *scr;
+
+ start_scr_name = getenv("START_SCR");
+ if(argv[1]) {
+ start_scr_name = argv[1];
+ }
+
+ if(g3d_init() == -1) {
+ return -1;
+ }
+ g3d_framebuffer(fb_width, fb_height, fb_pixels);
+
+ if(music_open("data/test.mod") == -1) {
+ return -1;
+ }
+
+ if(scr_init() == -1) {
+ return -1;
+ }
+ if(start_scr_name) {
+ scr = scr_lookup(start_scr_name);
+ } else {
+ scr = scr_screen(0);
+ }
+
+ if(!scr || scr_change(scr, 4000) == -1) {
+ fprintf(stderr, "screen %s not found\n", start_scr_name ? start_scr_name : "0");
+ return -1;
+ }
+
+ /* clear the framebuffer at least once */
+ memset(fb_pixels, 0, fb_width * fb_height * fb_bpp / CHAR_BIT);
+
+ music_play();