// draw 192x8 status of 24 sound channels
static __attribute__((noinline)) void draw_active_chans(void)
{
- 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 +
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<<c)) ? 0 :
+ p = !(live_chans & (1<<c)) ? (run_chans & (1<<c) ? 0x01c0 : 0) :
(fmod_chans & (1<<c)) ? 0xf000 :
(noise_chans & (1<<c)) ? 0x001f :
colors[c & 1];
static void *pl_vout_set_mode(int w, int h, int bpp)
{
+ // special h handling, Wipeout likes to change it by 1-6
+ h = (h + 7) & ~7;
+
if (w == pl_vout_w && h == pl_vout_h && bpp == pl_vout_bpp)
return pl_vout_buf;
if (pl_vout_buf == NULL)
fprintf(stderr, "failed to set mode\n");
+
+ // menu decides on layer size, we commit it
menu_notify_mode_change(w, h, bpp);
+ omap_enable_layer(1);
return pl_vout_buf;
}
if (!(g_opts & OPT_NO_FRAMELIM) && diff > 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) {