- 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
- {
- // should really only happen once, on startup..
- readpng(g_screen_ptr, "skin/background.png", READPNG_BG);
+ if (gp2x_current_bpp != 16 || gp2x_dev_id == GP2X_DEV_WIZ) {
+ /* try to switch nicely avoiding glitches */
+ gp2x_video_wait_vsync();
+ memset(gp2x_screens[0], 0, 320*240*2);
+ memset(gp2x_screens[1], 0, 320*240*2);
+ gp2x_video_flip2(); // might flip to fb2/3
+ gp2x_video_flip2(); // ..so we do it again
+ // gp2x_video_wait_vsync();