diff options
author | notaz | 2011-01-14 14:08:04 +0200 |
---|---|---|
committer | notaz | 2011-01-16 00:03:53 +0200 |
commit | b5e7e49a59450877fbeb6f9a6721b73fa065e7a2 (patch) | |
tree | a134ed86de183f01dbdb350477f28ac3a676f891 | |
parent | cfbd3c6ee21bde6e848eafb3b7994db626b70b72 (diff) | |
download | pcsx_rearmed-b5e7e49a59450877fbeb6f9a6721b73fa065e7a2.tar.gz pcsx_rearmed-b5e7e49a59450877fbeb6f9a6721b73fa065e7a2.tar.bz2 pcsx_rearmed-b5e7e49a59450877fbeb6f9a6721b73fa065e7a2.zip |
menu: add interpreter option
-rw-r--r-- | frontend/menu.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/frontend/menu.c b/frontend/menu.c index 05f5481..e1a3cc0 100644 --- a/frontend/menu.c +++ b/frontend/menu.c @@ -881,6 +881,8 @@ static const char h_cfg_sio[] = "This should be enabled for certain memcards/ static const char h_cfg_spuirq[] = "Compatibility tweak; should probably be left off"; static const char h_cfg_rcnt1[] = "Parasite Eve 2, Vandal Hearts 1/2 Fix"; static const char h_cfg_rcnt2[] = "InuYasha Sengoku Battle Fix"; +static const char h_cfg_nodrc[] = "Disable dynamic recompiler and use interpreter\n" + "Might be useful to overcome some dynarec bugs"; static menu_entry e_menu_adv_options[] = { @@ -892,6 +894,7 @@ static menu_entry e_menu_adv_options[] = mee_onoff_h ("SPU IRQ Always Enabled", 0, Config.SpuIrq, 1, h_cfg_spuirq), mee_onoff_h ("Rootcounter hack", 0, Config.RCntFix, 1, h_cfg_rcnt1), mee_onoff_h ("Rootcounter hack 2", 0, Config.VSyncWA, 1, h_cfg_rcnt2), + mee_onoff_h ("Disable dynarec (slow!)",0, Config.Cpu, 1, h_cfg_nodrc), mee_end, }; @@ -1357,6 +1360,8 @@ static void menu_leave_emu(void) void menu_prepare_emu(void) { + R3000Acpu *prev_cpu = psxCpu; + plat_video_menu_leave(); switch (scaling) { @@ -1378,6 +1383,11 @@ void menu_prepare_emu(void) apply_cpu_clock(); stop = 0; + psxCpu = (Config.Cpu == CPU_INTERPRETER) ? &psxInt : &psxRec; + if (psxCpu != prev_cpu) + // note that this does not really reset, just clears drc caches + psxCpu->Reset(); + // core doesn't care about Config.Cdda changes, // so handle them manually here if (Config.Cdda) |