#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;
break;
}
+#ifdef TEST
+ case 0xA0: // sys -> vid
+ {
+ u32 load_width = list[2] & 0xffff;
+ u32 load_height = list[2] >> 16;
+ u32 load_size = load_width * load_height;
+
+ len += load_size / 2;
+ break;
+ }
+#endif
+
default:
unai_do_prim(cmd, list, len + 1);
break;
{
}
+#ifndef TEST
+
#include "../../frontend/plugin_lib.h"
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;
}
+
+#endif