X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=common%2Fmenu.c;h=0f3fb61fb5fa6d15efa428ed55a10031d9b3e839;hb=7443ecd9586ff46c9ffbe8c2fdc719c722ff9b25;hp=2775859386b7de75f1fb514759113abb9bfe7aae;hpb=b846453101c070b93938dd2224f0cca130a55e8c;p=libpicofe.git diff --git a/common/menu.c b/common/menu.c index 2775859..0f3fb61 100644 --- a/common/menu.c +++ b/common/menu.c @@ -19,20 +19,23 @@ char menuErrorMsg[64] = { 0, }; // PicoPad[] format: MXYZ SACB RLDU -me_bind_action me_ctrl_actions[12] = +me_bind_action me_ctrl_actions[15] = { - { "UP ", 0x001 }, - { "DOWN ", 0x002 }, - { "LEFT ", 0x004 }, - { "RIGHT ", 0x008 }, - { "A ", 0x040 }, - { "B ", 0x010 }, - { "C ", 0x020 }, - { "START ", 0x080 }, - { "MODE ", 0x800 }, - { "X ", 0x400 }, - { "Y ", 0x200 }, - { "Z ", 0x100 } + { "UP ", 0x0001 }, + { "DOWN ", 0x0002 }, + { "LEFT ", 0x0004 }, + { "RIGHT ", 0x0008 }, + { "A ", 0x0040 }, + { "B ", 0x0010 }, + { "C ", 0x0020 }, + { "A turbo", 0x4000 }, + { "B turbo", 0x1000 }, + { "C turbo", 0x2000 }, + { "START ", 0x0080 }, + { "MODE ", 0x0800 }, + { "X ", 0x0400 }, + { "Y ", 0x0200 }, + { "Z ", 0x0100 } }; @@ -402,13 +405,16 @@ void debug_menu_loop(void) { int inp, mode = 0; int spr_offs = 0, dumped = 0; + char *tmp; while (1) { switch (mode) { case 0: menu_draw_begin(); - draw_text_debug(PDebugMain(), 0, 0); + tmp = PDebugMain(); + emu_platformDebugCat(tmp); + draw_text_debug(tmp, 0, 0); if (dumped) { smalltext_out16(SCREEN_WIDTH-6*10, SCREEN_HEIGHT-8, "dumped", 0xffff); dumped = 0; @@ -418,7 +424,8 @@ void debug_menu_loop(void) case 2: clear_screen(); emu_forcedFrame(0); darken_screen(); - PDebugShowSpriteStats(SCREEN_BUFFER, SCREEN_WIDTH); break; + PDebugShowSpriteStats((unsigned short *)SCREEN_BUFFER + (SCREEN_HEIGHT/2 - 240/2)*SCREEN_WIDTH + + SCREEN_WIDTH/2 - 320/2, SCREEN_WIDTH); break; case 3: clear_screen(); PDebugShowPalette(SCREEN_BUFFER, SCREEN_WIDTH); PDebugShowSprite((unsigned short *)SCREEN_BUFFER + SCREEN_WIDTH*120+SCREEN_WIDTH/2+16, @@ -439,6 +446,7 @@ void debug_menu_loop(void) if ((inp & (BTN_WEST|BTN_LEFT)) == (BTN_WEST|BTN_LEFT)) { mkdir("dumps", 0777); PDebugDumpMem(); + while (inp & BTN_WEST) inp = read_buttons_async(BTN_WEST); dumped = 1; } break; @@ -447,6 +455,13 @@ void debug_menu_loop(void) 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) { + PsndOut = NULL; // just in case + PicoSkipFrame = 1; + PicoFrame(); + PicoSkipFrame = 0; + while (inp & BTN_EAST) inp = read_buttons_async(BTN_EAST); + } break; case 3: if (inp & BTN_DOWN) spr_offs++;