CE_INTVAL_V(frameskip, 3),
CE_INTVAL_P(gpu_peops.iUseDither),
CE_INTVAL_P(gpu_peops.dwActFixes),
+ CE_INTVAL_P(gpu_unai.lineskip),
CE_INTVAL_P(gpu_unai.abe_hack),
CE_INTVAL_P(gpu_unai.no_light),
CE_INTVAL_P(gpu_unai.no_blend),
static menu_entry e_menu_plugin_gpu_unai[] =
{
+ mee_onoff ("Skip every 2nd line", 0, pl_rearmed_cbs.gpu_unai.lineskip, 1),
mee_onoff ("Abe's Odyssey hack", 0, pl_rearmed_cbs.gpu_unai.abe_hack, 1),
mee_onoff ("Disable lighting", 0, pl_rearmed_cbs.gpu_unai.no_light, 1),
mee_onoff ("Disable blending", 0, pl_rearmed_cbs.gpu_unai.no_blend, 1),
#define FRAME_HEIGHT 512
#define FRAME_OFFSET(x,y) (((y)<<10)+(x))
-static bool isSkip = false; /* skip frame (info coming from GPU) */
-static int linesInterlace = 0; /* internal lines interlace */
-
+#define isSkip 0 /* skip frame (info coming from GPU) */
#define alt_fps 0
+static int linesInterlace; /* internal lines interlace */
+static int force_interlace;
static bool light = true; /* lighting */
static bool blend = true; /* blending */
void do_cmd_list(unsigned int *list, int list_len)
{
unsigned int cmd, len;
-
unsigned int *list_end = list + list_len;
+ linesInterlace = force_interlace;
+#ifndef __ARM_ARCH_7A__ /* XXX */
+ linesInterlace |= gpu.status.interlace;
+#endif
+
for (; list < list_end; list += 1 + len)
{
cmd = *list >> 24;
void renderer_set_config(const struct rearmed_cbs *cbs)
{
+ force_interlace = cbs->gpu_unai.lineskip;
enableAbbeyHack = cbs->gpu_unai.abe_hack;
light = !cbs->gpu_unai.no_light;
blend = !cbs->gpu_unai.no_blend;
break;
case 0xA0: // sys ->vid
gpuLoadImage(); // prim handles updateLace && skip
+#ifndef isSkip // not a define
if (alt_fps) isSkip=false;
+#endif
DO_LOG(("gpuLoadImage(0x%x)\n",PRIM));
break;
case 0xC0: // vid -> sys