diff options
author | hizzlekizzle | 2019-06-10 20:00:07 -0500 |
---|---|---|
committer | GitHub | 2019-06-10 20:00:07 -0500 |
commit | 3db9ba184ee35968e381dd4cc5c80f931869b2e4 (patch) | |
tree | 5fd1f7d39f029567fbb331240af95dc87222fdb4 /frontend/libretro.c | |
parent | cadb88547d18552628dd9ccf5751fac1c54240fd (diff) | |
parent | b12cce7427981efd7bdd47b454e7c3b86929b2f3 (diff) | |
download | pcsx_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
Diffstat (limited to 'frontend/libretro.c')
-rw-r--r-- | frontend/libretro.c | 63 |
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 } } |