X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Fplugin_lib.c;h=159da702c8caa90c9eb6cc6300d747250042c632;hb=2f70bda7011efe14e8e689cab687cf00b9fdfe7c;hp=bdf09c7154ae4a4267c6d446f307e5bfa9828e8f;hpb=308c6e678a2f0a56a9dee35307070550354f580c;p=pcsx_rearmed.git diff --git a/frontend/plugin_lib.c b/frontend/plugin_lib.c index bdf09c71..159da702 100644 --- a/frontend/plugin_lib.c +++ b/frontend/plugin_lib.c @@ -33,7 +33,7 @@ #include "psemu_plugin_defs.h" #include "../libpcsxcore/new_dynarec/new_dynarec.h" #include "../libpcsxcore/psxmem_map.h" -#include "../plugins/dfinput/externals.h" +#include "../libpcsxcore/gpu.h" #define HUD_HEIGHT 10 @@ -134,11 +134,11 @@ static __attribute__((noinline)) void draw_active_chans(int vout_w, int vout_h) static const unsigned short colors[2] = { 0x1fe3, 0x0700 }; unsigned short *dest = (unsigned short *)pl_vout_buf + - vout_w * (vout_h - HUD_HEIGHT) + vout_w / 2 - 192/2; + pl_vout_w * (vout_h - HUD_HEIGHT) + pl_vout_w / 2 - 192/2; unsigned short *d, p; int c, x, y; - if (dest == NULL || pl_vout_bpp != 16) + if (pl_vout_buf == NULL || pl_vout_bpp != 16) return; spu_get_debug_info(&live_chans, &run_chans, &fmod_chans, &noise_chans); @@ -149,7 +149,7 @@ static __attribute__((noinline)) void draw_active_chans(int vout_w, int vout_h) (fmod_chans & (1< 0) { + if (flip_clear_counter > 0) { if (pl_plat_clear) pl_plat_clear(); else memset(pl_vout_buf, 0, dstride * h_full * pl_vout_bpp / 8); - clear_counter--; + flip_clear_counter--; } if (pl_plat_blit) @@ -385,17 +391,21 @@ static void pl_vout_flip(const void *vram, int stride, int bgr24, } else if (scanlines != 0 && scanline_level != 100) { - int l = scanline_level * 2048 / 100; + int h2, l = scanline_level * 2048 / 100; int stride_0 = pl_vout_scale_h >= 2 ? 0 : stride; h1 *= pl_vout_scale_h; - for (; h1 >= 2; h1 -= 2) + while (h1 > 0) { - bgr555_to_rgb565(dest, src, w * 2); - dest += dstride * 2, src += stride_0; + for (h2 = scanlines; h2 > 0 && h1 > 0; h2--, h1--) { + bgr555_to_rgb565(dest, src, w * 2); + dest += dstride * 2, src += stride_0; + } - bgr555_to_rgb565_b(dest, src, w * 2, l); - dest += dstride * 2, src += stride; + for (h2 = scanlines; h2 > 0 && h1 > 0; h2--, h1--) { + bgr555_to_rgb565_b(dest, src, w * 2, l); + dest += dstride * 2, src += stride; + } } } #endif @@ -620,18 +630,18 @@ static void update_input(void) emu_set_action(emu_act); in_keystate[0] = actions[IN_BINDTYPE_PLAYER12]; + + // fixme + //if (in_type[0] == PSE_PAD_TYPE_GUNCON && tsdev) + // pl_gun_ts_update(tsdev, xn, yn, in); + // in_analog_left[0][0] = xn } #else /* MAEMO */ extern void update_input(void); #endif -void pl_update_gun(int *xn, int *yn, int *xres, int *yres, int *in) +void pl_gun_byte2(int port, unsigned char byte) { - if (tsdev) - pl_gun_ts_update(tsdev, xn, yn, in); - - *xres = psx_w; - *yres = psx_h; } #define MAX_LAG_FRAMES 3 @@ -771,6 +781,7 @@ struct rearmed_cbs pl_rearmed_cbs = { .mmap = pl_mmap, .munmap = pl_munmap, .pl_set_gpu_caps = pl_set_gpu_caps, + .gpu_state_change = gpu_state_change, }; /* watchdog */