X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fgpulib%2Fvout_pl.c;h=79b6c3e6dee3488108b75fac2d831adc65e6195a;hp=91de057151a18135a52306c2c6f810a09f0ca79e;hb=4ea7de6a1495abfbc49c54fd2a90e902fdfa13d9;hpb=b07c18e8645a17be916266820ae564e0d320cc1a diff --git a/plugins/gpulib/vout_pl.c b/plugins/gpulib/vout_pl.c index 91de0571..79b6c3e6 100644 --- a/plugins/gpulib/vout_pl.c +++ b/plugins/gpulib/vout_pl.c @@ -36,8 +36,8 @@ static void check_mode_change(void) { old_status = gpu.status.reg; old_h = gpu.screen.h; - screen_buf = cbs->pl_vout_set_mode(gpu.screen.hres, - gpu.screen.h, gpu.status.rgb24 ? 24 : 16); + screen_buf = cbs->pl_vout_set_mode(gpu.screen.hres, gpu.screen.h, + (gpu.status.rgb24 && !cbs->only_16bpp) ? 24 : 16); } } @@ -60,21 +60,22 @@ static void blit(void) if (gpu.status.rgb24) { -#ifndef MAEMO - dest += (doffs / 8) * 24; - for (; h-- > 0; dest += stride * 3, fb_offs += 1024) - { - fb_offs &= 1024*512-1; - bgr888_to_rgb888(dest, vram + fb_offs, w * 3); + if (cbs->only_16bpp) { + dest += doffs * 2; + for (; h-- > 0; dest += stride * 2, fb_offs += 1024) + { + fb_offs &= 1024*512-1; + bgr888_to_rgb565(dest, vram + fb_offs, w * 3); + } } -#else - dest += doffs * 2; - for (; h-- > 0; dest += stride * 2, fb_offs += 1024) - { - fb_offs &= 1024*512-1; - bgr888_to_rgb565(dest, vram + fb_offs, w * 3); + else { + dest += (doffs / 8) * 24; + for (; h-- > 0; dest += stride * 3, fb_offs += 1024) + { + fb_offs &= 1024*512-1; + bgr888_to_rgb888(dest, vram + fb_offs, w * 3); + } } -#endif } else {