X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=common%2Fmenu.c;h=611cee90ae32385f53e68a9b0bedbe83c3210ab0;hb=86883f7f8a1f3d0b0542907bef84e40ad127a513;hp=169b89231691a2b2542b072b8886a8f043c3d9cc;hpb=36f6fd5afec3bd982c715f6d39d5712dacb237cd;p=libpicofe.git diff --git a/common/menu.c b/common/menu.c index 169b892..611cee9 100644 --- a/common/menu.c +++ b/common/menu.c @@ -338,11 +338,25 @@ int me_process(menu_entry *entries, int count, menu_id id, int is_next) #include #include -#include -#include +#include +#include void SekStepM68k(void); +static void mplayer_loop(void) +{ + emu_startSound(); + + while (1) + { + PDebugZ80Frame(); + if (read_buttons_async(PBTN_NORTH)) break; + emu_waitSound(); + } + + emu_endSound(); +} + static void draw_text_debug(const char *str, int skip, int from) { const char *p; @@ -415,37 +429,41 @@ void debug_menu_loop(void) } menu_draw_end(); - inp = read_buttons(BTN_EAST|BTN_SOUTH|BTN_WEST|BTN_L|BTN_R|BTN_UP|BTN_DOWN|BTN_LEFT|BTN_RIGHT); - if (inp & BTN_SOUTH) return; - if (inp & BTN_L) { mode--; if (mode < 0) mode = 3; } - if (inp & BTN_R) { mode++; if (mode > 3) mode = 0; } + inp = read_buttons(PBTN_EAST|PBTN_SOUTH|PBTN_WEST|PBTN_NORTH|PBTN_L|PBTN_R|PBTN_UP|PBTN_DOWN|PBTN_LEFT|PBTN_RIGHT); + if (inp & PBTN_SOUTH) return; + if (inp & PBTN_L) { mode--; if (mode < 0) mode = 3; } + if (inp & PBTN_R) { mode++; if (mode > 3) mode = 0; } switch (mode) { case 0: - if (inp & BTN_EAST) SekStepM68k(); - if ((inp & (BTN_WEST|BTN_LEFT)) == (BTN_WEST|BTN_LEFT)) { + if (inp & PBTN_EAST) SekStepM68k(); + if (inp & PBTN_NORTH) { + while (inp & PBTN_NORTH) inp = read_buttons_async(PBTN_NORTH); + mplayer_loop(); + } + if ((inp & (PBTN_WEST|PBTN_LEFT)) == (PBTN_WEST|PBTN_LEFT)) { mkdir("dumps", 0777); PDebugDumpMem(); - while (inp & BTN_WEST) inp = read_buttons_async(BTN_WEST); + while (inp & PBTN_WEST) inp = read_buttons_async(PBTN_WEST); dumped = 1; } break; case 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; - if (inp & BTN_EAST) { + if (inp & PBTN_LEFT) PicoDrawMask ^= PDRAW_LAYERB_ON; + if (inp & PBTN_RIGHT) PicoDrawMask ^= PDRAW_LAYERA_ON; + if (inp & PBTN_DOWN) PicoDrawMask ^= PDRAW_SPRITES_LOW_ON; + if (inp & PBTN_UP) PicoDrawMask ^= PDRAW_SPRITES_HI_ON; + if (inp & PBTN_EAST) { PsndOut = NULL; // just in case PicoSkipFrame = 1; PicoFrame(); PicoSkipFrame = 0; - while (inp & BTN_EAST) inp = read_buttons_async(BTN_EAST); + while (inp & PBTN_EAST) inp = read_buttons_async(PBTN_EAST); } break; case 3: - if (inp & BTN_DOWN) spr_offs++; - if (inp & BTN_UP) spr_offs--; + if (inp & PBTN_DOWN) spr_offs++; + if (inp & PBTN_UP) spr_offs--; if (spr_offs < 0) spr_offs = 0; break; }