debug bgm player, sound code refactoring
[libpicofe.git] / common / menu.c
index 1becb83..241af9f 100644 (file)
@@ -343,6 +343,20 @@ int me_process(menu_entry *entries, int count, menu_id id, int is_next)
 \r
 void SekStepM68k(void);\r
 \r
+static void mplayer_loop(void)\r
+{\r
+       emu_startSound();\r
+\r
+       while (1)\r
+       {\r
+               PDebugZ80Frame();\r
+               if (read_buttons_async(BTN_NORTH)) break;\r
+               emu_waitSound();\r
+       }\r
+\r
+       emu_endSound();\r
+}\r
+\r
 static void draw_text_debug(const char *str, int skip, int from)\r
 {\r
        const char *p;\r
@@ -415,7 +429,7 @@ void debug_menu_loop(void)
                }\r
                menu_draw_end();\r
 \r
-               inp = read_buttons(BTN_EAST|BTN_SOUTH|BTN_WEST|BTN_L|BTN_R|BTN_UP|BTN_DOWN|BTN_LEFT|BTN_RIGHT);\r
+               inp = read_buttons(BTN_EAST|BTN_SOUTH|BTN_WEST|BTN_NORTH|BTN_L|BTN_R|BTN_UP|BTN_DOWN|BTN_LEFT|BTN_RIGHT);\r
                if (inp & BTN_SOUTH) return;\r
                if (inp & BTN_L) { mode--; if (mode < 0) mode = 3; }\r
                if (inp & BTN_R) { mode++; if (mode > 3) mode = 0; }\r
@@ -423,6 +437,10 @@ void debug_menu_loop(void)
                {\r
                        case 0:\r
                                if (inp & BTN_EAST) SekStepM68k();\r
+                               if (inp & BTN_NORTH) {\r
+                                       while (inp & BTN_NORTH) inp = read_buttons_async(BTN_NORTH);\r
+                                       mplayer_loop();\r
+                               }\r
                                if ((inp & (BTN_WEST|BTN_LEFT)) == (BTN_WEST|BTN_LEFT)) {\r
                                        mkdir("dumps", 0777);\r
                                        PDebugDumpMem();\r