+ var.value = NULL;
+ var.key = "pcsx_rearmed_gpu_peops_ignore_brightness";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ gpu_peops_fix |= GPU_PEOPS_IGNORE_BRIGHTNESS;
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_gpu_peops_disable_coord_check";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ gpu_peops_fix |= GPU_PEOPS_DISABLE_COORD_CHECK;
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_gpu_peops_lazy_screen_update";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ gpu_peops_fix |= GPU_PEOPS_LAZY_SCREEN_UPDATE;
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_gpu_peops_repeated_triangles";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ gpu_peops_fix |= GPU_PEOPS_REPEATED_TRIANGLES;
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_gpu_peops_quads_with_triangles";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ gpu_peops_fix |= GPU_PEOPS_QUADS_WITH_TRIANGLES;
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_gpu_peops_fake_busy_state";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ gpu_peops_fix |= GPU_PEOPS_FAKE_BUSY_STATE;
+ }
+
+ if (pl_rearmed_cbs.gpu_peops.dwActFixes != gpu_peops_fix)
+ pl_rearmed_cbs.gpu_peops.dwActFixes = gpu_peops_fix;
+#endif
+
+#ifdef GPU_UNAI
+ /* Note: This used to be an option, but it only works
+ * (correctly) when running high resolution games
+ * (480i, 512i) and has been obsoleted by
+ * pcsx_rearmed_gpu_unai_scale_hires */
+ pl_rearmed_cbs.gpu_unai.ilace_force = 0;
+ /* Note: This used to be an option, but it has no
+ * discernable effect and has been obsoleted by
+ * pcsx_rearmed_gpu_unai_scale_hires */
+ pl_rearmed_cbs.gpu_unai.pixel_skip = 0;
+
+ var.key = "pcsx_rearmed_gpu_unai_lighting";
+ var.value = NULL;
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ if (strcmp(var.value, "disabled") == 0)
+ pl_rearmed_cbs.gpu_unai.lighting = 0;
+ else if (strcmp(var.value, "enabled") == 0)
+ pl_rearmed_cbs.gpu_unai.lighting = 1;
+ }
+
+ var.key = "pcsx_rearmed_gpu_unai_fast_lighting";
+ var.value = NULL;
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ if (strcmp(var.value, "disabled") == 0)
+ pl_rearmed_cbs.gpu_unai.fast_lighting = 0;
+ else if (strcmp(var.value, "enabled") == 0)
+ pl_rearmed_cbs.gpu_unai.fast_lighting = 1;
+ }
+
+ var.key = "pcsx_rearmed_gpu_unai_blending";
+ var.value = NULL;
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ if (strcmp(var.value, "disabled") == 0)
+ pl_rearmed_cbs.gpu_unai.blending = 0;
+ else if (strcmp(var.value, "enabled") == 0)
+ pl_rearmed_cbs.gpu_unai.blending = 1;
+ }
+
+ var.key = "pcsx_rearmed_gpu_unai_scale_hires";
+ var.value = NULL;
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ if (strcmp(var.value, "disabled") == 0)
+ pl_rearmed_cbs.gpu_unai.scale_hires = 0;
+ else if (strcmp(var.value, "enabled") == 0)
+ pl_rearmed_cbs.gpu_unai.scale_hires = 1;
+ }
+#endif // GPU_UNAI
+
+ //This adjustment process gives the user the ability to manually align the mouse up better
+ //with where the shots are in the emulator.
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_gunconadjustx";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ GunconAdjustX = atoi(var.value);
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_gunconadjusty";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ GunconAdjustY = atoi(var.value);
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_gunconadjustratiox";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ GunconAdjustRatioX = atof(var.value);
+ }
+
+ var.value = NULL;
+ var.key = "pcsx_rearmed_gunconadjustratioy";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ 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)
+ {
+ mouse_sensitivity = atof(var.value);
+ }
+
+ if (in_flight)
+ {
+ // inform core things about possible config changes
+ plugin_call_rearmed_cbs();
+
+ if (GPU_open != NULL && GPU_close != NULL)
+ {
+ GPU_close();
+ GPU_open(&gpuDisp, "PCSX", NULL);
+ }
+
+ /* Reinitialise frameskipping, if required */
+ if (((frameskip_type != prev_frameskip_type)))
+ retro_set_audio_buff_status_cb();
+
+ /* dfinput_activate(); */
+ }
+ else
+ {
+ //not yet running
+
+ //bootlogo display hack
+ if (found_bios)
+ {
+ var.value = NULL;
+ var.key = "pcsx_rearmed_show_bios_bootlogo";
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
+ {
+ Config.SlowBoot = 0;
+ rebootemu = 0;
+ if (strcmp(var.value, "enabled") == 0)
+ {
+ Config.SlowBoot = 1;
+ rebootemu = 1;
+ }
+ }
+ }
+ }
+
+ update_option_visibility();