+ if (is_rom_loaded)
+ {
+ // darken the active framebuffer
+ memset(g_screen_ptr, 0, 320*8*2);
+ menu_darken_bg((char *)g_screen_ptr + 320*8*2, 320*224, 1);
+ memset((char *)g_screen_ptr + 320*232*2, 0, 320*8*2);
+ }
+ else
+ {
+ char buff[256];
+
+ // should really only happen once, on startup..
+ emu_make_path(buff, "skin/background.png", sizeof(buff));
+ if (readpng(g_screen_ptr, buff, READPNG_BG) < 0)
+ memset(g_screen_ptr, 0, 320*240*2);
+ }
+
+ memcpy(menu_bg_buffer, g_screen_ptr, 320*240*2);
+
+ // switch to 16bpp
+ gp2x_video_changemode_ll_(16);
+ gp2x_video_flip_();