X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fnew_dynarec%2Femu_if.c;h=8c96504602e2a1003c1355c262ee835391f0ada6;hb=37387d8b2b8b9705ca42bd7582ed48d88aeafb9b;hp=0d6e58d3de2071e1613d549761d2108e1093af40;hpb=81dbbf4cbb16fc6c9a82a5b91e102c8005c5726a;p=pcsx_rearmed.git diff --git a/libpcsxcore/new_dynarec/emu_if.c b/libpcsxcore/new_dynarec/emu_if.c index 0d6e58d3..8c965046 100644 --- a/libpcsxcore/new_dynarec/emu_if.c +++ b/libpcsxcore/new_dynarec/emu_if.c @@ -10,6 +10,7 @@ #include "emu_if.h" #include "pcsxmem.h" #include "../psxhle.h" +#include "../psxinterpreter.h" #include "../r3000a.h" #include "../cdrom.h" #include "../psxdma.h" @@ -387,7 +388,6 @@ static void ari64_clear(u32 addr, u32 size) invalidate_block(start); } -#ifdef ICACHE_EMULATION static void ari64_notify(int note, void *data) { /* Should be fixed when ARM dynarec has proper icache emulation. @@ -403,7 +403,22 @@ static void ari64_notify(int note, void *data) { } */ } -#endif + +static void ari64_apply_config() +{ + intApplyConfig(); + + if (Config.DisableStalls) + new_dynarec_hacks |= NDHACK_NO_STALLS; + else + new_dynarec_hacks &= ~NDHACK_NO_STALLS; + + if (cycle_multiplier != cycle_multiplier_old + || new_dynarec_hacks != new_dynarec_hacks_old) + { + new_dynarec_clear_full(); + } +} static void ari64_shutdown() { @@ -417,9 +432,8 @@ R3000Acpu psxRec = { ari64_execute, ari64_execute_until, ari64_clear, -#ifdef ICACHE_EMULATION ari64_notify, -#endif + ari64_apply_config, ari64_shutdown }; @@ -431,7 +445,9 @@ unsigned int next_interupt; int new_dynarec_did_compile; int cycle_multiplier; int cycle_multiplier_override; +int cycle_multiplier_old; int new_dynarec_hacks_pergame; +int new_dynarec_hacks_old; int new_dynarec_hacks; void *psxH_ptr; void *zeromem_ptr;