1.30 release
[picodrive.git] / platform / gp2x / menu.c
index 40eee48..47b91b1 100644 (file)
@@ -729,6 +729,10 @@ static void kc_sel_loop(void)
 static void draw_cd_menu_options(int menu_sel, char *b_us, char *b_eu, char *b_jp)\r
 {\r
        int tl_x = 25, tl_y = 60, y;\r
+       char ra_buff[16];\r
+\r
+       if (PicoCDBuffers > 1) sprintf(ra_buff, "%5iK", PicoCDBuffers * 2);\r
+       else strcpy(ra_buff, "     OFF");\r
 \r
        y = tl_y;\r
        //memset(gp2x_screen, 0, 320*240);\r
@@ -740,7 +744,9 @@ static void draw_cd_menu_options(int menu_sel, char *b_us, char *b_eu, char *b_j
        gp2x_text_out8(tl_x, (y+=10), "CD LEDs                    %s", (currentConfig.EmuOpt &0x0400)?"ON":"OFF"); // 3\r
        gp2x_text_out8(tl_x, (y+=10), "CDDA audio (using mp3s)    %s", (currentConfig.PicoOpt&0x0800)?"ON":"OFF"); // 4\r
        gp2x_text_out8(tl_x, (y+=10), "PCM audio                  %s", (currentConfig.PicoOpt&0x0400)?"ON":"OFF"); // 5\r
-       gp2x_text_out8(tl_x, (y+=10), "Better sync (very slow)    %s", (currentConfig.PicoOpt&0x2000)?"ON":"OFF"); // 6\r
+       gp2x_text_out8(tl_x, (y+=10), "ReadAhead buffer      %s", ra_buff); // 6\r
+       gp2x_text_out8(tl_x, (y+=10), "Scale/Rot. fx (buggy,slow) %s", (currentConfig.PicoOpt&0x1000)?"ON":"OFF"); // 7\r
+       gp2x_text_out8(tl_x, (y+=10), "Better sync (slow)         %s", (currentConfig.PicoOpt&0x2000)?"ON":"OFF"); // 8\r
        gp2x_text_out8(tl_x, (y+=10), "Done");\r
 \r
        // draw cursor\r
@@ -756,7 +762,7 @@ static void draw_cd_menu_options(int menu_sel, char *b_us, char *b_eu, char *b_j
 \r
 static void cd_menu_loop_options(void)\r
 {\r
-       int menu_sel = 0, menu_sel_max = 7;\r
+       int menu_sel = 0, menu_sel_max = 9;\r
        unsigned long inp = 0;\r
        char bios_us[32], bios_eu[32], bios_jp[32], *bios, *p;\r
 \r
@@ -786,8 +792,19 @@ static void cd_menu_loop_options(void)
                                case  3: currentConfig.EmuOpt ^=0x0400; break;\r
                                case  4: currentConfig.PicoOpt^=0x0800; break;\r
                                case  5: currentConfig.PicoOpt^=0x0400; break;\r
-                               case  6: currentConfig.PicoOpt^=0x2000; break;\r
-                               case  7: return;\r
+                               case  6:\r
+                                       if (inp & GP2X_LEFT) {\r
+                                               PicoCDBuffers >>= 1;\r
+                                               if (PicoCDBuffers < 64) PicoCDBuffers = 0;\r
+                                       } else {\r
+                                               if (PicoCDBuffers < 64) PicoCDBuffers = 64;\r
+                                               else PicoCDBuffers <<= 1;\r
+                                               if (PicoCDBuffers > 8*1024) PicoCDBuffers = 8*1024; // 16M\r
+                                       }\r
+                                       break;\r
+                               case  7: currentConfig.PicoOpt^=0x1000; break;\r
+                               case  8: currentConfig.PicoOpt^=0x2000; break;\r
+                               case  9: return;\r
                        }\r
                }\r
                if(inp & (GP2X_X|GP2X_A)) return;\r