giz rc1 release
[picodrive.git] / platform / gizmondo / menu.c
index 1662da1..bf56c32 100644 (file)
@@ -991,6 +991,7 @@ menu_entry opt2_entries[] =
        { "Emulate Z80",               MB_ONOFF, MA_OPT2_ENABLE_Z80,    &currentConfig.PicoOpt,0x0004, 0, 0, 1 },\r
        { "Emulate YM2612 (FM)",       MB_ONOFF, MA_OPT2_ENABLE_YM2612, &currentConfig.PicoOpt,0x0001, 0, 0, 1 },\r
        { "Emulate SN76496 (PSG)",     MB_ONOFF, MA_OPT2_ENABLE_SN76496,&currentConfig.PicoOpt,0x0002, 0, 0, 1 },\r
+       { "Wait for V-sync (slow)",    MB_ONOFF, MA_OPT2_VSYNC,         &currentConfig.EmuOpt, 0x2000, 0, 0, 1 },\r
        { "gzip savestates",           MB_ONOFF, MA_OPT2_GZIP_STATES,   &currentConfig.EmuOpt, 0x0008, 0, 0, 1 },\r
        { "Don't save last used ROM",  MB_ONOFF, MA_OPT2_NO_LAST_ROM,   &currentConfig.EmuOpt, 0x0020, 0, 0, 1 },\r
        { "done",                      MB_NONE,  MA_OPT2_DONE,          NULL, 0, 0, 0, 1 },\r
@@ -1056,16 +1057,17 @@ static void amenu_loop_options(void)
 menu_entry opt_entries[] =\r
 {\r
        { NULL,                        MB_NONE,  MA_OPT_RENDERER,      NULL, 0, 0, 0, 1 },\r
-       { "Scale low res mode",        MB_ONOFF, MA_OPT_SCALING,       &currentConfig.scaling, 0x001, 0, 3, 1 },\r
-       { "Accurate timing (slower)",  MB_ONOFF, MA_OPT_ACC_TIMING,    &currentConfig.PicoOpt, 0x040, 0, 0, 1 },\r
-       { "Accurate sprites (slower)", MB_ONOFF, MA_OPT_ACC_SPRITES,   &currentConfig.PicoOpt, 0x080, 0, 0, 1 },\r
-       { "Show FPS",                  MB_ONOFF, MA_OPT_SHOW_FPS,      &currentConfig.EmuOpt,  0x002, 0, 0, 1 },\r
+       { "Interlaced rend. (faster)", MB_ONOFF, MA_OPT_INTERLACED,    &currentConfig.EmuOpt,  0x4000, 0, 0, 1 },\r
+       { "Scale low res mode",        MB_ONOFF, MA_OPT_SCALING,       &currentConfig.scaling, 0x0001, 0, 3, 1 },\r
+       { "Accurate timing (slower)",  MB_ONOFF, MA_OPT_ACC_TIMING,    &currentConfig.PicoOpt, 0x0040, 0, 0, 1 },\r
+       { "Accurate sprites (slower)", MB_ONOFF, MA_OPT_ACC_SPRITES,   &currentConfig.PicoOpt, 0x0080, 0, 0, 1 },\r
+       { "Show FPS",                  MB_ONOFF, MA_OPT_SHOW_FPS,      &currentConfig.EmuOpt,  0x0002, 0, 0, 1 },\r
        { NULL,                        MB_RANGE, MA_OPT_FRAMESKIP,     &currentConfig.Frameskip, 0, -1, 16, 1 },\r
-       { "Enable sound",              MB_ONOFF, MA_OPT_ENABLE_SOUND,  &currentConfig.EmuOpt,  0x004, 0, 0, 1 },\r
+       { "Enable sound",              MB_ONOFF, MA_OPT_ENABLE_SOUND,  &currentConfig.EmuOpt,  0x0004, 0, 0, 1 },\r
        { NULL,                        MB_NONE,  MA_OPT_SOUND_QUALITY, NULL, 0, 0, 0, 1 },\r
-       { "6 button pad",              MB_ONOFF, MA_OPT_6BUTTON_PAD,   &currentConfig.PicoOpt, 0x020, 0, 0, 1 },\r
+       { "6 button pad",              MB_ONOFF, MA_OPT_6BUTTON_PAD,   &currentConfig.PicoOpt, 0x0020, 0, 0, 1 },\r
        { NULL,                        MB_NONE,  MA_OPT_REGION,        NULL, 0, 0, 0, 1 },\r
-       { "Use SRAM/BRAM savestates",  MB_ONOFF, MA_OPT_SRAM_STATES,   &currentConfig.EmuOpt,  0x001, 0, 0, 1 },\r
+       { "Use SRAM/BRAM savestates",  MB_ONOFF, MA_OPT_SRAM_STATES,   &currentConfig.EmuOpt,  0x0001, 0, 0, 1 },\r
        { NULL,                        MB_NONE,  MA_OPT_CONFIRM_STATES,NULL, 0, 0, 0, 1 },\r
        { "Save slot",                 MB_RANGE, MA_OPT_SAVE_SLOT,     &state_slot, 0, 0, 9, 1 },\r
        { "[Sega/Mega CD options]",    MB_NONE,  MA_OPT_SCD_OPTS,      NULL, 0, 0, 0, 1 },\r
@@ -1175,7 +1177,7 @@ static int sndrate_prevnext(int rate, int dir)
                if (rates[i] == rate) break;\r
 \r
        i += dir ? 1 : -1;\r
-       if (i > 4) return dir ? 44100 : 22050;\r
+       if (i > 2) return dir ? 44100 : 22050;\r
        if (i < 0) return dir ? 22050 : 11025;\r
        return rates[i];\r
 }\r
@@ -1243,21 +1245,30 @@ static int menu_loop_options(void)
                                switch (selected_id) {\r
                                        case MA_OPT_RENDERER:\r
                                                if (inp & BTN_LEFT) {\r
-                                                       if      (  currentConfig.PicoOpt&0x10) currentConfig.PicoOpt&= ~0x10;\r
-                                                       else if (!(currentConfig.EmuOpt &0x80))currentConfig.EmuOpt |=  0x80;\r
-                                                       else if (  currentConfig.EmuOpt &0x80) break;\r
+                                                       if ((currentConfig.PicoOpt&0x10) || !(currentConfig.EmuOpt &0x80)) {\r
+                                                               currentConfig.PicoOpt&= ~0x10;\r
+                                                               currentConfig.EmuOpt |=  0x80;\r
+                                                       }\r
                                                } else {\r
-                                                       if      (  currentConfig.PicoOpt&0x10) break;\r
-                                                       else if (!(currentConfig.EmuOpt &0x80))currentConfig.PicoOpt|=  0x10;\r
-                                                       else if (  currentConfig.EmuOpt &0x80) currentConfig.EmuOpt &= ~0x80;\r
+                                                       if (!(currentConfig.PicoOpt&0x10) || (currentConfig.EmuOpt &0x80)) {\r
+                                                               currentConfig.PicoOpt|=  0x10;\r
+                                                               currentConfig.EmuOpt &= ~0x80;\r
+                                                       }\r
                                                }\r
                                                break;\r
                                        case MA_OPT_SOUND_QUALITY:\r
-                                               if ((inp & BTN_RIGHT) && currentConfig.PsndRate == 44100 && !(currentConfig.PicoOpt&0x08)) {\r
-                                                       currentConfig.PsndRate = 11025;  currentConfig.PicoOpt|= 0x08;\r
-                                               } else if ((inp & BTN_LEFT) && currentConfig.PsndRate == 11025 && (currentConfig.PicoOpt&0x08)) {\r
-                                                       currentConfig.PsndRate = 44100; currentConfig.PicoOpt&=~0x08;\r
-                                               } else currentConfig.PsndRate = sndrate_prevnext(currentConfig.PsndRate, inp & BTN_RIGHT);\r
+                                               if ((inp & BTN_RIGHT) && currentConfig.PsndRate == 44100 &&\r
+                                                               !(currentConfig.PicoOpt&0x08))\r
+                                               {\r
+                                                       currentConfig.PsndRate =  11025;\r
+                                                       currentConfig.PicoOpt |=  8;\r
+                                               } else if ((inp & BTN_LEFT) && currentConfig.PsndRate == 11025 &&\r
+                                                               (currentConfig.PicoOpt&0x08) && !(PicoMCD&1))\r
+                                               {\r
+                                                       currentConfig.PsndRate =  44100;\r
+                                                       currentConfig.PicoOpt &= ~8;\r
+                                               } else\r
+                                                       currentConfig.PsndRate = sndrate_prevnext(currentConfig.PsndRate, inp & BTN_RIGHT);\r
                                                break;\r
                                        case MA_OPT_REGION:\r
                                                region_prevnext(inp & BTN_RIGHT);\r
@@ -1343,7 +1354,7 @@ static void draw_menu_credits(void)
        menu_draw_begin(1);\r
 \r
        text_out16(tl_x, 20, "PicoDrive v" VERSION " (c) notaz, 2006,2007");\r
-text_out16(tl_x, 30, "beta1");\r
+text_out16(tl_x, 30, "rc1");\r
        y = tl_y;\r
        text_out16(tl_x, y, "Credits:");\r
        text_out16(tl_x, (y+=10), "Dave: Cyclone 68000 core,");\r