// a hack for VR\r
if (PicoIn.AHW & PAHW_SVP)\r
memset32((int *)(Pico.est.Draw2FB+328*8+328*223), 0xe0e0e0e0, 328/4);\r
+ // clear top and bottom of overlap trash\r
+ if (!(Pico.est.rendstatus & PDRAW_30_ROWS)) {\r
+ memset32((int *)(Pico.est.Draw2FB+8*(224+8)), 0xe0e0e0e0, 328*8/4);\r
+ memset32((int *)(Pico.est.Draw2FB), 0xe0e0e0e0, 328*8/4);\r
+ }\r
// do actual copy\r
vidcpyM2(g_screen_ptr, Pico.est.Draw2FB+328*8,\r
!(Pico.video.reg[12] & 1), !(PicoIn.opt & POPT_DIS_32C_BORDER));\r
\r
if (is_16bit_mode())\r
stride *= 2;\r
- PicoDrawSetOutBuf(g_screen_ptr, stride);\r
+ // the fast renderer has overlap areas and can't directly render to\r
+ // screen buffers. Its output is copied to screen in finalize_frame\r
+ if (currentConfig.renderer != RT_8BIT_FAST || (PicoIn.AHW & PAHW_32X))\r
+ PicoDrawSetOutBuf(g_screen_ptr, stride);\r
}\r
\r
/* XXX */\r
} else {\r
if (is_8bit) {\r
char *d = (char *)gp2x_screens[i] + 320 * (240-8);\r
- memset32((int *)d, 0xe0, 320 * 8 / 4);\r
+ memset32((int *)d, 0xe0e0e0e0, 320 * 8 / 4);\r
} else {\r
char *d = (char *)gp2x_screens[i] + 320*2 * (240-8);\r
memset32((int *)d, 0, 2*320 * 8 / 4);\r