- int ret = 0;
- draw_debug();
- while (!(ret & (BTN_X|BTN_CIRCLE)))
- ret = wait_for_input(BTN_X|BTN_CIRCLE, 0);
+ int inp, mode = 0;
+
+ while (1)
+ {
+ switch (mode)
+ {
+ case 0: draw_main_debug(); break;
+ case 1: draw_frame_debug(); break;
+ case 2: menu_draw_begin();
+ PicoDrawShowSpriteStats((unsigned short *)psp_screen+512*16+80, 512); break;
+ case 3: memset(psp_screen, 0, 512*272*2);
+ PicoDrawShowPalette(psp_screen, 512); break;
+ }
+ menu_draw_end();
+
+ inp = wait_for_input(BTN_X|BTN_CIRCLE|BTN_L|BTN_R|BTN_UP|BTN_DOWN|BTN_LEFT|BTN_RIGHT, 0);
+ if (inp & (BTN_X|BTN_CIRCLE)) return;
+ if (inp & BTN_L) { mode--; if (mode < 0) mode = 3; }
+ if (inp & BTN_R) { mode++; if (mode > 3) mode = 0; }
+ if (mode == 1) {
+ if (inp & BTN_LEFT) PicoDrawMask ^= PDRAW_LAYERB_ON;
+ if (inp & BTN_RIGHT) PicoDrawMask ^= PDRAW_LAYERA_ON;
+ if (inp & BTN_DOWN) PicoDrawMask ^= PDRAW_SPRITES_LOW_ON;
+ if (inp & BTN_UP) PicoDrawMask ^= PDRAW_SPRITES_HI_ON;
+ }
+ }