X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fnew_dynarec%2Femu_if.c;h=8c96504602e2a1003c1355c262ee835391f0ada6;hb=b7ec323c2e42a9ff8df844e5a95665733abb4bc1;hp=f660e7f11395d19aa4d1c9cf490bd41d0b5ed1b3;hpb=2d3c4d02ae7877c8b28c3f8e7578dfc0f98bacd6;p=pcsx_rearmed.git diff --git a/libpcsxcore/new_dynarec/emu_if.c b/libpcsxcore/new_dynarec/emu_if.c index f660e7f1..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" @@ -218,15 +219,6 @@ const char *gte_regnames[64] = { NULL , NULL , NULL , NULL , NULL , "GPF" , "GPL" , "NCCT", // 38 }; -/* from gte.txt.. not sure if this is any good. */ -const char gte_cycletab[64] = { - /* 1 2 3 4 5 6 7 8 9 a b c d e f */ - 0, 15, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 6, 0, 0, 0, - 8, 8, 8, 19, 13, 0, 44, 0, 0, 0, 0, 17, 11, 0, 14, 0, - 30, 0, 0, 0, 0, 0, 0, 0, 5, 8, 17, 0, 0, 5, 6, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 39, -}; - #define GCBIT(x) \ (1ll << (32+x)) #define GDBIT(x) \ @@ -396,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. @@ -412,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() { @@ -426,9 +432,8 @@ R3000Acpu psxRec = { ari64_execute, ari64_execute_until, ari64_clear, -#ifdef ICACHE_EMULATION ari64_notify, -#endif + ari64_apply_config, ari64_shutdown }; @@ -440,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;