- if (gpu.status.rgb24)
- {
- if (cbs->only_16bpp) {
- dest += doffs * 2;
- for (; h-- > 0; dest += stride * 2, fb_offs += vram_stride)
- {
- fb_offs &= vram_mask;
- bgr888_to_rgb565(dest, vram + fb_offs, w * 3);
- }
- }
- else {
- dest += (doffs / 8) * 24;
- for (; h-- > 0; dest += stride * 3, fb_offs += vram_stride)
- {
- fb_offs &= vram_mask;
- bgr888_to_rgb888(dest, vram + fb_offs, w * 3);
- }
- }
+ check_mode_change(0);
+ if (gpu.state.enhancement_active) {
+ if (!gpu.state.enhancement_was_active)
+ return; // buffer not ready yet
+ vram = gpu.get_enhancement_bufer(&src_x, &src_y, &w, &h, &vram_h);
+ if (vram == NULL)
+ return;
+ x *= 2; y *= 2;
+ src_x2 *= 2;