Libretro port should do the same, but here it outdated and nobody cared
updating it here.
// If a state has been specified, then load that
if (loadst) {
// If a state has been specified, then load that
if (loadst) {
static const char h_cfg_nosmc[] = "Will cause crashes when loading, break memcards";
static const char h_cfg_gteunn[] = "May cause graphical glitches";
static const char h_cfg_gteflgs[] = "Will cause graphical glitches";
static const char h_cfg_nosmc[] = "Will cause crashes when loading, break memcards";
static const char h_cfg_gteunn[] = "May cause graphical glitches";
static const char h_cfg_gteflgs[] = "Will cause graphical glitches";
+static const char h_cfg_gtestll[] = "Some games will run too fast";
static menu_entry e_menu_speed_hacks[] =
{
static menu_entry e_menu_speed_hacks[] =
{
+ int cycle_multiplier_old = cycle_multiplier;
+ int ndrc_hacks_old = new_dynarec_hacks;
static int warned_about_bios = 0;
static int sel = 0;
static int warned_about_bios = 0;
static int sel = 0;
in_set_config_int(0, IN_CFG_BLOCKING, 0);
in_set_config_int(0, IN_CFG_BLOCKING, 0);
+ ndrc_changed = cycle_multiplier_old != cycle_multiplier
+ || ndrc_hacks_old != new_dynarec_hacks;
+ menu_prepare_emu(ndrc_changed);
}
static int qsort_strcmp(const void *p1, const void *p2)
}
static int qsort_strcmp(const void *p1, const void *p2)
cpu_clock = plat_target_cpu_clock_get();
}
cpu_clock = plat_target_cpu_clock_get();
}
-void menu_prepare_emu(void)
+void menu_prepare_emu(int ndrc_config_changed)
{
R3000Acpu *prev_cpu = psxCpu;
{
R3000Acpu *prev_cpu = psxCpu;
// note that this does not really reset, just clears drc caches
psxCpu->Reset();
}
// note that this does not really reset, just clears drc caches
psxCpu->Reset();
}
+ else if (ndrc_config_changed)
+ new_dynarec_clear_full();
// core doesn't care about Config.Cdda changes,
// so handle them manually here
// core doesn't care about Config.Cdda changes,
// so handle them manually here
-void menu_prepare_emu(void);
+void menu_prepare_emu(int ndrc_config_changed);
void menu_loop(void);
void menu_finish(void);
void menu_loop(void);
void menu_finish(void);
if (bytes != size)
return;
if (bytes != size)
return;
- new_dynarec_load_blocks(addrs, size);
+ if (psxCpu != &psxInt)
+ new_dynarec_load_blocks(addrs, size);
}
//printf("drc: %d block info entries %s\n", size/8, mode ? "saved" : "loaded");
}
//printf("drc: %d block info entries %s\n", size/8, mode ? "saved" : "loaded");