+ static uint16_t blurbuf[2][BBW * BBH];
+ int fboffs, tmp, cleartop;
+ const struct menuent *ent = menuent + cur;
+
+ int blur_rad_x = (int)((sin(time_msec / 1000.0f) * 0.5f + 0.5f) * 50.0f);
+ int blur_rad_y = (int)((cos(time_msec / 1000.0f) * 0.5f + 0.5f) * 50.0f);
+
+ fboffs = ent->y * fb_width + ent->x;
+
+ memset(blurbuf[0], 0, sizeof blurbuf[0]);
+ blit(blurbuf[0], BBW, bgpix + fboffs, ent->len, ent->height, bgwidth);
+
+ blur_horiz(blurbuf[1], blurbuf[0], BBW, BBH, blur_rad_x + 3, 0x140);
+ blur_vert(blurbuf[0], blurbuf[1], BBW, BBH, blur_rad_y / 4 + 3, 0x140);
+
+ //wait_vsync();
+
+ cleartop = 280 * fb_width;
+ memcpy(fb_pixels + cleartop, bgpix + cleartop, (fb_height - 280) * fb_width << 1);
+
+ blit(fb_pixels + fboffs, fb_width, blurbuf[0], ent->len, ent->height, BBW);
+ blit_key(fb_pixels + fboffs, fb_width, bgpix + fboffs, ent->len, ent->height, bgwidth, 0);
+
+ if(show_fps) {
+ blit(fb_pixels, fb_width, bgpix, 64, 16, bgwidth);
+ }
+
+ blit_frame(fb_pixels, 0);