aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhizzlekizzle2019-06-10 20:00:07 -0500
committerGitHub2019-06-10 20:00:07 -0500
commit3db9ba184ee35968e381dd4cc5c80f931869b2e4 (patch)
tree5fd1f7d39f029567fbb331240af95dc87222fdb4
parentcadb88547d18552628dd9ccf5751fac1c54240fd (diff)
parentb12cce7427981efd7bdd47b454e7c3b86929b2f3 (diff)
downloadpcsx_rearmed-3db9ba184ee35968e381dd4cc5c80f931869b2e4.tar.gz
pcsx_rearmed-3db9ba184ee35968e381dd4cc5c80f931869b2e4.tar.bz2
pcsx_rearmed-3db9ba184ee35968e381dd4cc5c80f931869b2e4.zip
Merge pull request #295 from retro-wertz/dynarec_speedhacks
Add core options for some advance settings and dynarec speed hacks
-rw-r--r--frontend/libretro.c63
1 files changed, 62 insertions, 1 deletions
diff --git a/frontend/libretro.c b/frontend/libretro.c
index 31872f4..9f7c4fe 100644
--- a/frontend/libretro.c
+++ b/frontend/libretro.c
@@ -28,6 +28,7 @@
#include "../plugins/dfinput/externals.h"
#include "cspace.h"
#include "main.h"
+#include "menu.h"
#include "plugin.h"
#include "plugin_lib.h"
#include "arm_features.h"
@@ -508,7 +509,17 @@ void retro_set_environment(retro_environment_t cb)
{ "pcsx_rearmed_idiablofix", "Diablo Music Fix; disabled|enabled" },
{ "pcsx_rearmed_pe2_fix", "Parasite Eve 2/Vandal Hearts 1/2 Fix; disabled|enabled" },
{ "pcsx_rearmed_inuyasha_fix", "InuYasha Sengoku Battle Fix; disabled|enabled" },
- { NULL, NULL },
+
+ /* Advance options */
+ { "pcsx_rearmed_noxadecoding", "XA Decoding; enabled|disabled" },
+ { "pcsx_rearmed_nocdaudio", "CD Audio; enabled|disabled" },
+#ifndef DRC_DISABLE
+ { "pcsx_rearmed_nosmccheck", "(Speed Hack) Disable SMC Checks; disabled|enabled" },
+ { "pcsx_rearmed_gteregsunneeded", "(Speed Hack) Assume GTE Regs Unneeded; disabled|enabled" },
+ { "pcsx_rearmed_nogteflags", "(Speed Hack) Disable GTE Flags; disabled|enabled" },
+#endif
+
+ { NULL, NULL }
};
if (cb(RETRO_ENVIRONMENT_GET_LOG_INTERFACE, &logging))
@@ -1595,6 +1606,26 @@ static void update_variables(bool in_flight)
Config.VSyncWA = 1;
}
+ var.value = NULL;
+ var.key = "pcsx_rearmed_noxadecoding";
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+ {
+ if (strcmp(var.value, "disabled") == 0)
+ Config.Xa = 1;
+ else
+ Config.Xa = 0;
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_nocdaudio";
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+ {
+ if (strcmp(var.value, "disabled") == 0)
+ Config.Cdda = 1;
+ else
+ Config.Cdda = 0;
+ }
+
if (in_flight) {
// inform core things about possible config changes
plugin_call_rearmed_cbs();
@@ -1633,6 +1664,36 @@ 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
}
}