GPU unai update
[pcsx_rearmed.git] / frontend / libretro.c
index a5ec2c2..c4d6133 100644 (file)
@@ -500,6 +500,7 @@ void retro_set_environment(retro_environment_t cb)
       { "pcsx_rearmed_show_bios_bootlogo", "Show Bios Bootlogo(Breaks some games); disabled|enabled" },
       { "pcsx_rearmed_spu_reverb", "Sound: Reverb; enabled|disabled" },
       { "pcsx_rearmed_spu_interpolation", "Sound: Interpolation; simple|gaussian|cubic|off" },
+      { "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 },
@@ -1296,10 +1297,7 @@ bool retro_load_game(const struct retro_game_info *info)
                return false;
        }
 
-       /* TODO: Calling SysReset() outside retro_run for some system
-        * causes RetroArch to freeze, e.g Ludo */
-       //SysReset();
-       rebootemu = 1;
+       SysReset();
 
        if (LoadCdrom() == -1) {
                log_cb(RETRO_LOG_INFO, "could not load CD\n");
@@ -1557,6 +1555,17 @@ static void update_variables(bool in_flight)
          Config.RCntFix = 1;
    }
 
+   var.value = "NULL";
+   var.key = "pcsx_rearmed_idiablofix";
+
+   if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+   {
+      if (strcmp(var.value, "disabled") == 0)
+         spu_config.idiablofix = 0;
+      else if (strcmp(var.value, "enabled") == 0)
+         spu_config.idiablofix = 1;
+   }
+
    var.value = "NULL";
    var.key = "pcsx_rearmed_inuyasha_fix";