// 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;
+ static int vsync_cnt_ms_prev;
+ if ((unsigned int)(vsync_cnt - vsync_cnt_ms_prev) < 5*60)
+ h = (h + 7) & ~7;
+ vsync_cnt_ms_prev = vsync_cnt;
if (w == pl_vout_w && h == pl_vout_h && bpp == pl_vout_bpp)
return pl_vout_buf;
omap_enable_layer(1);
#if defined(VOUT_FBDEV)
- pl_vout_buf = vout_fbdev_flip(layer_fb);
+ // force mode update
+ int h = pl_vout_h;
+ pl_vout_h--;
+ pl_vout_buf = pl_vout_set_mode(pl_vout_w, h, pl_vout_bpp);
// try to align redraws to vsync
vout_fbdev_wait_vsync(layer_fb);
void pl_init(void)
{
+ pl_vout_w = pl_vout_h = 256;
+ pl_vout_bpp = 16;
+
ts = pl_gun_ts_init();
}