- if (pl_fbdev_bpp == 16)
- pl_text_out16(pl_fbdev_w - 28, pl_fbdev_h - 10, "%3d", tick_per_sec);
+ if (pl_vout_bpp == 16)
+ pl_text_out16(pl_vout_w - 28, pl_vout_h - 10, "%3d", tick_per_sec);
+}
+
+// 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;
+
+ 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;
+ unsigned short *d, p;
+ int c, x, y;
+
+ if (pl_vout_bpp != 16)
+ return;
+
+ spu_get_debug_info(&live_chans, &fmod_chans, &noise_chans);
+
+ for (c = 0; c < 24; c++) {
+ d = dest + c * 8;
+ p = !(live_chans & (1<<c)) ? 0 :
+ (fmod_chans & (1<<c)) ? 0xf000 :
+ (noise_chans & (1<<c)) ? 0x001f :
+ colors[c & 1];
+ for (y = 0; y < 8; y++, d += pl_vout_w)
+ for (x = 0; x < 8; x++)
+ d[x] = p;
+ }