merge from libretro fork
[pcsx_rearmed.git] / frontend / plugin_lib.c
index d215636..171296d 100644 (file)
 
 #define HUD_HEIGHT 10
 
-int in_type1, in_type2;
-int in_a1[2] = { 127, 127 }, in_a2[2] = { 127, 127 };
+int in_type[8];
+int multitap1;
+int multitap2;
+int in_analog_left[8][2] = {{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 }};
+int in_analog_right[8][2] = {{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 },{ 127, 127 }};
 int in_adev[2] = { -1, -1 }, in_adev_axis[2][2] = {{ 0, 1 }, { 0, 1 }};
 int in_adev_is_nublike[2];
-int in_keystate, in_state_gun;
+unsigned short in_keystate[8];
+int in_mouse[8][2];
+int in_state_gun;
 int in_enable_vibration;
 void *tsdev;
 void *pl_vout_buf;
@@ -308,6 +313,7 @@ static void pl_vout_flip(const void *vram, int stride, int bgr24, int w, int h)
        unsigned char *dest = pl_vout_buf;
        const unsigned short *src = vram;
        int dstride = pl_vout_w, h1 = h;
+       int h_full = pl_vout_h - pl_vout_yoffset;
        int doffs;
 
        pcnt_start(PCNT_BLIT);
@@ -318,7 +324,7 @@ static void pl_vout_flip(const void *vram, int stride, int bgr24, int w, int h)
                        pl_plat_clear();
                else
                        memset(pl_vout_buf, 0,
-                               dstride * pl_vout_h * pl_vout_bpp / 8);
+                               dstride * h_full * pl_vout_bpp / 8);
                goto out_hud;
        }
 
@@ -334,7 +340,7 @@ static void pl_vout_flip(const void *vram, int stride, int bgr24, int w, int h)
                        pl_plat_clear();
                else
                        memset(pl_vout_buf, 0,
-                               dstride * pl_vout_h * pl_vout_bpp / 8);
+                               dstride * h_full * pl_vout_bpp / 8);
                clear_counter--;
        }
 
@@ -468,7 +474,7 @@ static int dispmode_default(void)
        return 1;
 }
 
-#ifdef __ARM_NEON__
+#ifdef BUILTIN_GPU_NEON
 static int dispmode_doubleres(void)
 {
        if (!(pl_rearmed_cbs.gpu_caps & GPU_CAP_SUPPORTS_2X)
@@ -480,7 +486,9 @@ static int dispmode_doubleres(void)
        snprintf(hud_msg, sizeof(hud_msg), "double resolution");
        return 1;
 }
+#endif
 
+#ifdef __ARM_NEON__
 static int dispmode_scale2x(void)
 {
        if (!resolution_ok(psx_w * 2, psx_h * 2) || psx_bpp != 16)
@@ -506,8 +514,10 @@ static int dispmode_eagle2x(void)
 
 static int (*dispmode_switchers[])(void) = {
        dispmode_default,
-#ifdef __ARM_NEON__
+#ifdef BUILTIN_GPU_NEON
        dispmode_doubleres,
+#endif
+#ifdef __ARM_NEON__
        dispmode_scale2x,
        dispmode_eagle2x,
 #endif
@@ -562,7 +572,7 @@ static void update_analog_nub_adjust(int *x_, int *y_)
 
 static void update_analogs(void)
 {
-       int *nubp[2] = { in_a1, in_a2 };
+       int *nubp[2] = { in_analog_left[0], in_analog_right[0] };
        int vals[2];
        int i, a, v, ret;
 
@@ -590,7 +600,6 @@ static void update_analogs(void)
                }
 
        }
-       //printf("%4d %4d %4d %4d\n", in_a1[0], in_a1[1], in_a2[0], in_a2[1]);
 }
 
 static void update_input(void)
@@ -599,7 +608,7 @@ static void update_input(void)
        unsigned int emu_act;
 
        in_update(actions);
-       if (in_type1 == PSE_PAD_TYPE_ANALOGPAD)
+       if (in_type[0] == PSE_PAD_TYPE_ANALOGJOY || in_type[0] == PSE_PAD_TYPE_ANALOGPAD)
                update_analogs();
        emu_act = actions[IN_BINDTYPE_EMU];
        in_state_gun = (emu_act & SACTION_GUN_MASK) >> SACTION_GUN_TRIGGER;
@@ -613,7 +622,7 @@ static void update_input(void)
        }
        emu_set_action(emu_act);
 
-       in_keystate = actions[IN_BINDTYPE_PLAYER12];
+       in_keystate[0] = actions[IN_BINDTYPE_PLAYER12];
 }
 #else /* MAEMO */
 extern void update_input(void);