fix ROM selector annoyance
[libpicofe.git] / common / menu.c
index bd4eb70..e651694 100644 (file)
@@ -22,8 +22,6 @@
 #include <pico/pico_int.h>\r
 #include <pico/patch.h>\r
 \r
-#define array_size(x) (sizeof(x) / sizeof(x[0]))\r
-\r
 static char static_buff[64];\r
 static char menu_error_msg[64] = { 0, };\r
 static int  menu_error_time = 0;\r
@@ -602,7 +600,7 @@ static void load_progress_cb(int percent)
        plat_video_menu_end();\r
 }\r
 \r
-static void cdload_progress_cb(int percent)\r
+static void cdload_progress_cb(const char *fname, int percent)\r
 {\r
        int ln, len = percent * g_screen_width / 100;\r
        unsigned short *dst = (unsigned short *)g_screen_ptr + g_screen_width * 10 * 2;\r
@@ -610,7 +608,7 @@ static void cdload_progress_cb(int percent)
        memset(dst, 0xff, g_screen_width * (me_sfont_h - 2) * 2);\r
 \r
        smalltext_out16(1, 3 * me_sfont_h, "Processing CD image / MP3s", 0xffff);\r
-       smalltext_out16(1, 4 * me_sfont_h, rom_fname_loaded, 0xffff);\r
+       smalltext_out16(1, 4 * me_sfont_h, fname, 0xffff);\r
        dst += g_screen_width * me_sfont_h * 3;\r
 \r
        if (len > g_screen_width)\r
@@ -647,7 +645,8 @@ void menu_romload_prepare(const char *rom_name)
 \r
 void menu_romload_end(void)\r
 {\r
-       PicoCartLoadProgressCB = PicoCDLoadProgressCB = NULL;\r
+       PicoCartLoadProgressCB = NULL;\r
+       PicoCDLoadProgressCB = NULL;\r
        smalltext_out16(1, (cdload_called ? 6 : 3) * me_sfont_h,\r
                "Starting emulation...", 0xffff);\r
        plat_video_menu_end();\r
@@ -815,6 +814,11 @@ rescan:
                }\r
        }\r
 \r
+       /* make sure action buttons are not pressed on entering menu */\r
+       draw_dirlist(curr_path, namelist, n, sel);\r
+       while (in_menu_wait_any(50) & (PBTN_MOK|PBTN_MBACK|PBTN_MENU))\r
+               ;\r
+\r
        for (;;)\r
        {\r
                draw_dirlist(curr_path, namelist, n, sel);\r
@@ -1804,7 +1808,7 @@ static void debug_menu_loop(void)
                {\r
                        case 0:\r
                                if (inp & PBTN_MOK)\r
-                                       SekStepM68k();\r
+                                       PDebugCPUStep();\r
                                if (inp & PBTN_MA3) {\r
                                        while (inp & PBTN_MA3)\r
                                                inp = in_menu_wait_any(-1);\r
@@ -1946,7 +1950,8 @@ void menu_loop(void)
                if (engineState == PGS_Menu)\r
                        engineState = PGS_Running;\r
                /* wait until menu, ok, back is released */\r
-               while (in_menu_wait_any(50) & (PBTN_MENU|PBTN_MOK|PBTN_MBACK));\r
+               while (in_menu_wait_any(50) & (PBTN_MENU|PBTN_MOK|PBTN_MBACK))\r
+                       ;\r
        }\r
 \r
        in_set_blocking(0);\r