frame limiter opt, menu btn on cfg load fix

git-svn-id: file:///home/notaz/opt/svn/PicoDrive@727 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
notaz 2009-08-02 21:10:35 +00:00
parent 7c34867ab6
commit 21ecaf237f
4 changed files with 16 additions and 16 deletions

View file

@ -490,6 +490,8 @@ static int custom_read(menu_entry *me, const char *var, const char *val)
PsndRate = strtoul(val, &tmp, 10); PsndRate = strtoul(val, &tmp, 10);
if (PsndRate < 8000 || PsndRate > 44100) if (PsndRate < 8000 || PsndRate > 44100)
PsndRate = 22050; PsndRate = 22050;
if (*tmp == 'H' || *tmp == 'h') tmp++;
if (*tmp == 'Z' || *tmp == 'z') tmp++;
while (*tmp == ' ') tmp++; while (*tmp == ' ') tmp++;
if (strcasecmp(tmp, "stereo") == 0) { if (strcasecmp(tmp, "stereo") == 0) {
PicoOpt |= POPT_EN_STEREO; PicoOpt |= POPT_EN_STEREO;
@ -551,17 +553,6 @@ static int custom_read(menu_entry *me, const char *var, const char *val)
return 0; return 0;
return 1; 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: case MA_OPT2_GAMMA:
if (strcasecmp(var, "Gamma correction") != 0) return 0; if (strcasecmp(var, "Gamma correction") != 0) return 0;
currentConfig.gamma = (int) (atof(val) * 100.0); currentConfig.gamma = (int) (atof(val) * 100.0);

View file

@ -1325,10 +1325,14 @@ void emu_loop(void)
if (timestamp - timestamp_base >= ms_to_ticks(1000)) if (timestamp - timestamp_base >= ms_to_ticks(1000))
{ {
if (PsndOut == 0 && currentConfig.Frameskip >= 0) if ((currentConfig.EmuOpt & EOPT_NO_FRMLIMIT) && currentConfig.Frameskip >= 0)
pframes_done = 0; pframes_done = 0;
else else {
pframes_done -= target_fps; pframes_done -= target_fps;
/* don't allow it to drift during heavy slowdowns */
if (pframes_done < -2)
pframes_done = -2;
}
timestamp_base += ms_to_ticks(1000); timestamp_base += ms_to_ticks(1000);
} }
@ -1343,7 +1347,7 @@ void emu_loop(void)
pframes_done++; frames_done++; pframes_done++; frames_done++;
diff_lim += target_frametime; diff_lim += target_frametime;
if (PsndOut && !reset_timing) { // do framelimitting if sound is enabled if (!(currentConfig.EmuOpt & EOPT_NO_FRMLIMIT)) {
timestamp = get_ticks(); timestamp = get_ticks();
diff = timestamp - timestamp_base; diff = timestamp - timestamp_base;
if (diff < diff_lim) // we are too fast if (diff < diff_lim) // we are too fast
@ -1369,7 +1373,7 @@ void emu_loop(void)
PicoFrame(); PicoFrame();
/* frame limiter */ /* frame limiter */
if (!reset_timing && (PsndOut != NULL || currentConfig.Frameskip < 0)) if (!reset_timing && !(currentConfig.EmuOpt & EOPT_NO_FRMLIMIT))
{ {
timestamp = get_ticks(); timestamp = get_ticks();
diff = timestamp - timestamp_base; diff = timestamp - timestamp_base;

View file

@ -1450,6 +1450,7 @@ static menu_entry e_menu_adv_options[] =
mee_onoff ("gzip savestates", MA_OPT2_GZIP_STATES, currentConfig.EmuOpt, EOPT_GZIP_SAVES), mee_onoff ("gzip savestates", MA_OPT2_GZIP_STATES, currentConfig.EmuOpt, EOPT_GZIP_SAVES),
mee_onoff ("Don't save last used ROM", MA_OPT2_NO_LAST_ROM, currentConfig.EmuOpt, EOPT_NO_AUTOSVCFG), mee_onoff ("Don't save last used ROM", MA_OPT2_NO_LAST_ROM, currentConfig.EmuOpt, EOPT_NO_AUTOSVCFG),
mee_onoff ("Disable idle loop patching",MA_OPT2_NO_IDLE_LOOPS,PicoOpt, POPT_DIS_IDLE_DET), mee_onoff ("Disable idle loop patching",MA_OPT2_NO_IDLE_LOOPS,PicoOpt, POPT_DIS_IDLE_DET),
mee_onoff ("Disable frame limiter", MA_OPT2_NO_FRAME_LIMIT,currentConfig.EmuOpt, EOPT_NO_FRMLIMIT),
MENU_GP2X_OPTIONS_ADV MENU_GP2X_OPTIONS_ADV
mee_end, mee_end,
}; };

View file

@ -104,7 +104,6 @@ static void in_gp2x_probe(void)
return; return;
} }
in_gp2x_get_bits = in_gp2x_get_wiz_bits; in_gp2x_get_bits = in_gp2x_get_wiz_bits;
in_gp2x_keys[BTN_START] = "MENU";
break; break;
default: default:
#ifdef FAKE_IN_GP2X #ifdef FAKE_IN_GP2X
@ -318,7 +317,12 @@ static int in_gp2x_clean_binds(void *drv_data, int *binds, int *def_binds)
void in_gp2x_init(void *vdrv) void in_gp2x_init(void *vdrv)
{ {
in_drv_t *drv = 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; in_gp2x_combo_keys = in_gp2x_combo_acts = 0;
drv->prefix = in_gp2x_prefix; drv->prefix = in_gp2x_prefix;