return alphasort(d1, d2);\r
}\r
\r
+static char *filter_exts[] = { ".mp3", ".MP3", ".srm", ".brm", "s.gz", ".mds", "bcfg", ".txt", ".htm", "html", ".jpg", ".gpe" };\r
+\r
+static int scandir_filter(const struct dirent *ent)\r
+{\r
+ const char *p;\r
+ int i;\r
+\r
+ if (ent == NULL || ent->d_name == NULL) return 0;\r
+ if (strlen(ent->d_name) < 5) return 1;\r
+\r
+ p = ent->d_name + strlen(ent->d_name) - 4;\r
+\r
+ for (i = 0; i < sizeof(filter_exts)/sizeof(filter_exts[0]); i++)\r
+ {\r
+ if (strcmp(p, filter_exts[i]) == 0) return 0;\r
+ }\r
+\r
+ return 1;\r
+}\r
\r
static char *romsel_loop(char *curr_path)\r
{\r
fname = p+1;\r
}\r
\r
- n = scandir(curr_path, &namelist, 0, scandir_cmp);\r
+ n = scandir(curr_path, &namelist, scandir_filter, scandir_cmp);\r
if (n < 0) {\r
// try root\r
- n = scandir(curr_path, &namelist, 0, scandir_cmp);\r
+ n = scandir("/", &namelist, scandir_filter, scandir_cmp);\r
if (n < 0) {\r
// oops, we failed\r
printf("dir: "); printf(curr_path); printf("\n");\r
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 (slow) %s", (currentConfig.PicoOpt&0x2000)?"ON":"OFF"); // 6\r
- gp2x_text_out8(tl_x, (y+=10), "ReadAhead buffer %s", ra_buff); // 7\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 (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
\r
static void cd_menu_loop_options(void)\r
{\r
- int menu_sel = 0, menu_sel_max = 8;\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
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:\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 > 4096) PicoCDBuffers = 4096;\r
+ if (PicoCDBuffers > 8*1024) PicoCDBuffers = 8*1024; // 16M\r
}\r
break;\r
- case 8: return;\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