X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Flibretro.c;h=42f6151fe3158f858529fa1be214a2a6eaef02a0;hb=f02c57eacd43b7a27111181dabc97b2c5ead78c4;hp=15c53a3ce1fb94b7ebc9a9374a442ee702dfcdf0;hpb=07ade526c4a0b1ddb316aff1459c1bdff31c267a;p=pcsx_rearmed.git diff --git a/frontend/libretro.c b/frontend/libretro.c index 15c53a3c..42f6151f 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -1936,6 +1936,8 @@ static void update_variables(bool in_flight) display_internal_fps = true; } + // + // CPU emulation related config #ifndef DRC_DISABLE var.value = NULL; var.key = "pcsx_rearmed_drc"; @@ -1970,48 +1972,69 @@ static void update_variables(bool in_flight) } } #endif /* !DRC_DISABLE */ - psxCpu->ApplyConfig(); var.value = NULL; - var.key = "pcsx_rearmed_spu_reverb"; + var.key = "pcsx_rearmed_psxclock"; + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + { + int psxclock = atoi(var.value); + Config.cycle_multiplier = 10000 / psxclock; + } +#if !defined(DRC_DISABLE) && !defined(LIGHTREC) + var.value = NULL; + var.key = "pcsx_rearmed_nosmccheck"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { - if (strcmp(var.value, "disabled") == 0) - spu_config.iUseReverb = false; - else if (strcmp(var.value, "enabled") == 0) - spu_config.iUseReverb = true; + 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_spu_interpolation"; + 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, "simple") == 0) - spu_config.iUseInterpolation = 1; - else if (strcmp(var.value, "gaussian") == 0) - spu_config.iUseInterpolation = 2; - else if (strcmp(var.value, "cubic") == 0) - spu_config.iUseInterpolation = 3; - else if (strcmp(var.value, "off") == 0) - spu_config.iUseInterpolation = 0; + if (strcmp(var.value, "enabled") == 0) + new_dynarec_hacks |= NDHACK_GTE_NO_FLAGS; + else + new_dynarec_hacks &= ~NDHACK_GTE_NO_FLAGS; } var.value = NULL; - var.key = "pcsx_rearmed_pe2_fix"; + var.key = "pcsx_rearmed_nocompathacks"; + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + { + if (strcmp(var.value, "enabled") == 0) + new_dynarec_hacks |= NDHACK_NO_COMPAT_HACKS; + else + new_dynarec_hacks &= ~NDHACK_NO_COMPAT_HACKS; + } +#endif /* !DRC_DISABLE && !LIGHTREC */ + var.value = NULL; + var.key = "pcsx_rearmed_nostalls"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { - if (strcmp(var.value, "disabled") == 0) - Config.RCntFix = 0; - else if (strcmp(var.value, "enabled") == 0) - Config.RCntFix = 1; + if (strcmp(var.value, "enabled") == 0) + Config.DisableStalls = 1; + else + Config.DisableStalls = 0; } - + var.value = NULL; var.key = "pcsx_rearmed_icache_emulation"; - if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "disabled") == 0) @@ -2020,15 +2043,35 @@ static void update_variables(bool in_flight) Config.icache_emulation = 1; } + psxCpu->ApplyConfig(); + + // end of CPU emu config + // + var.value = NULL; - var.key = "pcsx_rearmed_inuyasha_fix"; + var.key = "pcsx_rearmed_spu_reverb"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "disabled") == 0) - Config.VSyncWA = 0; + spu_config.iUseReverb = false; else if (strcmp(var.value, "enabled") == 0) - Config.VSyncWA = 1; + spu_config.iUseReverb = true; + } + + var.value = NULL; + var.key = "pcsx_rearmed_spu_interpolation"; + + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + { + if (strcmp(var.value, "simple") == 0) + spu_config.iUseInterpolation = 1; + else if (strcmp(var.value, "gaussian") == 0) + spu_config.iUseInterpolation = 2; + else if (strcmp(var.value, "cubic") == 0) + spu_config.iUseInterpolation = 3; + else if (strcmp(var.value, "off") == 0) + spu_config.iUseInterpolation = 0; } #ifndef _WIN32 @@ -2074,16 +2117,6 @@ static void update_variables(bool in_flight) Config.Cdda = 0; } - var.value = NULL; - var.key = "pcsx_rearmed_spuirq"; - if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) - { - if (strcmp(var.value, "disabled") == 0) - Config.SpuIrq = 0; - else - Config.SpuIrq = 1; - } - #ifdef THREAD_RENDERING var.key = "pcsx_rearmed_gpu_thread_rendering"; var.value = NULL; @@ -2267,67 +2300,6 @@ static void update_variables(bool in_flight) GunconAdjustRatioY = atof(var.value); } -#if !defined(DRC_DISABLE) && !defined(LIGHTREC) - 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; - } - - /* this probably is safe to change in real-time */ - var.value = NULL; - var.key = "pcsx_rearmed_psxclock"; - if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) - { - int psxclock = atoi(var.value); - cycle_multiplier = 10000 / psxclock; - } - - var.value = NULL; - var.key = "pcsx_rearmed_nocompathacks"; - if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) - { - if (strcmp(var.value, "enabled") == 0) - new_dynarec_hacks |= NDHACK_NO_COMPAT_HACKS; - else - new_dynarec_hacks &= ~NDHACK_NO_COMPAT_HACKS; - } -#endif /* !DRC_DISABLE && !LIGHTREC */ - - var.value = NULL; - var.key = "pcsx_rearmed_nostalls"; - if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) - { - if (strcmp(var.value, "enabled") == 0) - Config.DisableStalls = 1; - else - Config.DisableStalls = 0; - } - var.value = NULL; var.key = "pcsx_rearmed_input_sensitivity"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) @@ -3049,9 +3021,9 @@ void retro_init(void) /* Set how much slower PSX CPU runs * 100 (so that 200 is 2 times) * we have to do this because cache misses and some IO penalties * are not emulated. Warning: changing this may break compatibility. */ - cycle_multiplier = 175; + Config.cycle_multiplier = CYCLE_MULT_DEFAULT; #if defined(HAVE_PRE_ARMV7) && !defined(_3DS) - cycle_multiplier = 200; + Config.cycle_multiplier = 200; #endif pl_rearmed_cbs.gpu_peops.iUseDither = 1; pl_rearmed_cbs.gpu_peops.dwActFixes = GPU_PEOPS_OLD_FRAME_SKIP;