X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Fplugin_lib.c;h=c719f48e4cf6336f147544d634c055c5df29ae89;hp=0a49872c4b06c308baa56f73bb1ba465f82ffa35;hb=d3f3bf09b5b3f1d8b025cc9dbd902eb157aae0b7;hpb=a185be7095b1575c32911d18341f3f99ed686ae5 diff --git a/frontend/plugin_lib.c b/frontend/plugin_lib.c index 0a49872c..c719f48e 100644 --- a/frontend/plugin_lib.c +++ b/frontend/plugin_lib.c @@ -32,10 +32,11 @@ int in_type1, in_type2; int in_a1[2] = { 127, 127 }, in_a2[2] = { 127, 127 }; int in_keystate, in_state_gun; +int pl_flip_cnt; static void *ts; void *pl_vout_buf; static int pl_vout_w, pl_vout_h, pl_vout_bpp; -static int flip_cnt, vsync_cnt, flips_per_sec, tick_per_sec; +static int vsync_cnt, flips_per_sec, tick_per_sec; static float vsps_cur; static int frame_interval, frame_interval1024, vsync_usec_time; @@ -60,57 +61,78 @@ static __attribute__((noinline)) int get_cpu_ticks(void) return ret; } -static void print_hud(void) +static void print_msg(int h, int border) { if (pl_vout_bpp == 16) - pl_text_out16(2, pl_vout_h - 10, "%s", hud_msg); + pl_text_out16(border + 2, h - 10, "%s", hud_msg); } -static void print_fps(void) +static void print_fps(int h, int border) { if (pl_vout_bpp == 16) - pl_text_out16(2, pl_vout_h - 10, "%2d %4.1f", flips_per_sec, vsps_cur); + pl_text_out16(border + 2, h - 10, "%2d %4.1f", flips_per_sec, vsps_cur); } -static void print_cpu_usage(void) +static void print_cpu_usage(int w, int h, int border) { if (pl_vout_bpp == 16) - pl_text_out16(pl_vout_w - 28, pl_vout_h - 10, "%3d", tick_per_sec); + pl_text_out16(w - border - 28, h - 10, "%3d", tick_per_sec); } // draw 192x8 status of 24 sound channels -static __attribute__((noinline)) void draw_active_chans(void) +static __attribute__((noinline)) void draw_active_chans(int vout_w, int vout_h) { - extern void spu_get_debug_info(int *chans_out, int *fmod_chans_out, int *noise_chans_out); // hack - int live_chans, fmod_chans, noise_chans; + extern void spu_get_debug_info(int *chans_out, int *run_chans, + int *fmod_chans_out, int *noise_chans_out); // hack + int live_chans, run_chans, fmod_chans, noise_chans; static const unsigned short colors[2] = { 0x1fe3, 0x0700 }; unsigned short *dest = (unsigned short *)pl_vout_buf + - pl_vout_w * (pl_vout_h - 10) + pl_vout_w / 2 - 192/2; + vout_w * (vout_h - 10) + vout_w / 2 - 192/2; unsigned short *d, p; int c, x, y; if (pl_vout_bpp != 16) return; - spu_get_debug_info(&live_chans, &fmod_chans, &noise_chans); + spu_get_debug_info(&live_chans, &run_chans, &fmod_chans, &noise_chans); for (c = 0; c < 24; c++) { d = dest + c * 8; - p = !(live_chans & (1< frame_interval) { // yay for working usleep on pandora! //printf("usleep %d\n", diff - frame_interval / 2); - usleep(diff - frame_interval / 2); + usleep(diff - frame_interval); } if (pl_rearmed_cbs.frameskip) { @@ -395,7 +410,7 @@ static void *watchdog_thread(void *unused) int seen_dead = 0; int sleep_time = 5; -#ifndef NDEBUG +#if !defined(NDEBUG) || defined(DRC_DBG) // don't interfere with debug return NULL; #endif @@ -444,5 +459,8 @@ void pl_start_watchdog(void) void pl_init(void) { + pl_vout_w = pl_vout_h = 256; + pl_vout_bpp = 16; + ts = pl_gun_ts_init(); }