PsndRate = strtoul(val, &tmp, 10);
if (PsndRate < 8000 || PsndRate > 44100)
PsndRate = 22050;
+ if (*tmp == 'H' || *tmp == 'h') tmp++;
+ if (*tmp == 'Z' || *tmp == 'z') tmp++;
while (*tmp == ' ') tmp++;
if (strcasecmp(tmp, "stereo") == 0) {
PicoOpt |= POPT_EN_STEREO;
return 0;
return 1;
-#if 0 // TODO rm?
- case MA_OPT_CPU_CLOCKS:
-#ifdef __GP2X__
- if (strcasecmp(var, "GP2X CPU clocks") != 0) return 0;
-#elif defined(PSP)
- if (strcasecmp(var, "PSP CPU clock") != 0) return 0;
-#endif
- currentConfig.CPUclock = atoi(val);
- return 1;
-#endif
-
case MA_OPT2_GAMMA:
if (strcasecmp(var, "Gamma correction") != 0) return 0;
currentConfig.gamma = (int) (atof(val) * 100.0);
\r
if (timestamp - timestamp_base >= ms_to_ticks(1000))\r
{\r
- if (PsndOut == 0 && currentConfig.Frameskip >= 0)\r
+ if ((currentConfig.EmuOpt & EOPT_NO_FRMLIMIT) && currentConfig.Frameskip >= 0)\r
pframes_done = 0;\r
- else\r
+ else {\r
pframes_done -= target_fps;\r
+ /* don't allow it to drift during heavy slowdowns */\r
+ if (pframes_done < -2)\r
+ pframes_done = -2;\r
+ }\r
timestamp_base += ms_to_ticks(1000);\r
}\r
\r
pframes_done++; frames_done++;\r
diff_lim += target_frametime;\r
\r
- if (PsndOut && !reset_timing) { // do framelimitting if sound is enabled\r
+ if (!(currentConfig.EmuOpt & EOPT_NO_FRMLIMIT)) {\r
timestamp = get_ticks();\r
diff = timestamp - timestamp_base;\r
if (diff < diff_lim) // we are too fast\r
PicoFrame();\r
\r
/* frame limiter */\r
- if (!reset_timing && (PsndOut != NULL || currentConfig.Frameskip < 0))\r
+ if (!reset_timing && !(currentConfig.EmuOpt & EOPT_NO_FRMLIMIT))\r
{\r
timestamp = get_ticks();\r
diff = timestamp - timestamp_base;\r
mee_onoff ("gzip savestates", MA_OPT2_GZIP_STATES, currentConfig.EmuOpt, EOPT_GZIP_SAVES),\r
mee_onoff ("Don't save last used ROM", MA_OPT2_NO_LAST_ROM, currentConfig.EmuOpt, EOPT_NO_AUTOSVCFG),\r
mee_onoff ("Disable idle loop patching",MA_OPT2_NO_IDLE_LOOPS,PicoOpt, POPT_DIS_IDLE_DET),\r
+ mee_onoff ("Disable frame limiter", MA_OPT2_NO_FRAME_LIMIT,currentConfig.EmuOpt, EOPT_NO_FRMLIMIT),\r
MENU_GP2X_OPTIONS_ADV\r
mee_end,\r
};\r
return;
}
in_gp2x_get_bits = in_gp2x_get_wiz_bits;
- in_gp2x_keys[BTN_START] = "MENU";
break;
default:
#ifdef FAKE_IN_GP2X
void in_gp2x_init(void *vdrv)
{
in_drv_t *drv = vdrv;
+ gp2x_soc_t soc;
+ soc = soc_detect();
+ if (soc == SOCID_POLLUX)
+ in_gp2x_keys[BTN_START] = "MENU";
+
in_gp2x_combo_keys = in_gp2x_combo_acts = 0;
drv->prefix = in_gp2x_prefix;