aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authorretro-wertz2019-06-11 09:08:27 +0800
committerretro-wertz2019-06-11 09:08:27 +0800
commitdecba348a49c50232fc706d0f860d3f910a06453 (patch)
tree177be0091084c94e4d4d908c63b3928843743fd1 /frontend
parent3db9ba184ee35968e381dd4cc5c80f931869b2e4 (diff)
downloadpcsx_rearmed-decba348a49c50232fc706d0f860d3f910a06453.tar.gz
pcsx_rearmed-decba348a49c50232fc706d0f860d3f910a06453.tar.bz2
pcsx_rearmed-decba348a49c50232fc706d0f860d3f910a06453.zip
Allow dynarec speedhacks to be applied on-the-fly
Diffstat (limited to 'frontend')
-rw-r--r--frontend/libretro.c62
1 files changed, 32 insertions, 30 deletions
diff --git a/frontend/libretro.c b/frontend/libretro.c
index 9f7c4fe..ccf1433 100644
--- a/frontend/libretro.c
+++ b/frontend/libretro.c
@@ -1626,6 +1626,38 @@ static void update_variables(bool in_flight)
Config.Cdda = 0;
}
+#ifndef DRC_DISABLE
+ var.value = NULL;
+ var.key = "pcsx_rearmed_nosmccheck";
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ new_dynarec_hacks |= NDHACK_NO_SMC_CHECK;
+ else
+ new_dynarec_hacks &= ~NDHACK_NO_SMC_CHECK;
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_gteregsunneeded";
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ new_dynarec_hacks |= NDHACK_GTE_UNNEEDED;
+ else
+ new_dynarec_hacks &= ~NDHACK_GTE_UNNEEDED;
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_nogteflags";
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ new_dynarec_hacks |= NDHACK_GTE_NO_FLAGS;
+ else
+ new_dynarec_hacks &= ~NDHACK_GTE_NO_FLAGS;
+ }
+#endif
+
if (in_flight) {
// inform core things about possible config changes
plugin_call_rearmed_cbs();
@@ -1664,36 +1696,6 @@ static void update_variables(bool in_flight)
int psxclock = atoi(var.value);
cycle_multiplier = 10000 / psxclock;
}
-
- var.value = NULL;
- var.key = "pcsx_rearmed_nosmccheck";
- if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
- {
- if (strcmp(var.value, "enabled") == 0)
- new_dynarec_hacks |= NDHACK_NO_SMC_CHECK;
- else
- new_dynarec_hacks &= ~NDHACK_NO_SMC_CHECK;
- }
-
- var.value = NULL;
- var.key = "pcsx_rearmed_gteregsunneeded";
- if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
- {
- if (strcmp(var.value, "enabled") == 0)
- new_dynarec_hacks |= NDHACK_GTE_UNNEEDED;
- else
- new_dynarec_hacks &= ~NDHACK_GTE_UNNEEDED;
- }
-
- var.value = NULL;
- var.key = "pcsx_rearmed_nogteflags";
- if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
- {
- if (strcmp(var.value, "enabled") == 0)
- new_dynarec_hacks |= NDHACK_GTE_NO_FLAGS;
- else
- new_dynarec_hacks &= ~NDHACK_GTE_NO_FLAGS;
- }
#endif
}
}