X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Flibretro.c;h=8252e15b62ed6a892ff887d54183805ac3ec079f;hb=ebed7428a3e7e817bb4befe7fdfc1f5681577e50;hp=59e986e7e22c66448c2f0bc8302f619a09d43c11;hpb=3918505613cb814f8f5e0e8e0471f7b2a2cd8464;p=pcsx_rearmed.git diff --git a/frontend/libretro.c b/frontend/libretro.c index 59e986e7..8252e15b 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -1337,14 +1337,12 @@ bool retro_load_game(const struct retro_game_info *info) for (i = 0; i < sizeof(disks) / sizeof(disks[0]) && i < cdrIsoMultidiskCount; i++) { - char disk_name[PATH_MAX]; - char disk_label[PATH_MAX]; - disk_name[0] = '\0'; - disk_label[0] = '\0'; + char disk_name[PATH_MAX - 16] = { 0 }; + char disk_label[PATH_MAX] = { 0 }; disks[i].fname = strdup(info->path); - get_disk_label(disk_name, info->path, PATH_MAX); + get_disk_label(disk_name, info->path, sizeof(disk_name)); snprintf(disk_label, sizeof(disk_label), "%s #%u", disk_name, (unsigned)i + 1); disks[i].flabel = strdup(disk_label); @@ -1630,7 +1628,7 @@ static void update_variables(bool in_flight) display_internal_fps = true; } -#if defined(LIGHTREC) || defined(NEW_DYNAREC) +#ifndef DRC_DISABLE var.value = NULL; var.key = "pcsx_rearmed_drc"; @@ -1663,7 +1661,8 @@ static void update_variables(bool in_flight) psxCpu->Reset(); // not really a reset.. } } -#endif /* LIGHTREC || NEW_DYNAREC */ +#endif /* !DRC_DISABLE */ + psxCpu->ApplyConfig(); var.value = NULL; var.key = "pcsx_rearmed_spu_reverb"; @@ -1701,16 +1700,16 @@ static void update_variables(bool in_flight) else if (strcmp(var.value, "enabled") == 0) Config.RCntFix = 1; } - + var.value = NULL; - var.key = "pcsx_rearmed_idiablofix"; + var.key = "pcsx_rearmed_icache_emulation"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "disabled") == 0) - spu_config.idiablofix = 0; + Config.icache_emulation = 0; else if (strcmp(var.value, "enabled") == 0) - spu_config.idiablofix = 1; + Config.icache_emulation = 1; } var.value = NULL; @@ -2054,7 +2053,7 @@ static void update_variables(bool in_flight) GunconAdjustRatioY = atof(var.value); } -#ifdef NEW_DYNAREC +#if !defined(DRC_DISABLE) && !defined(LIGHTREC) var.value = NULL; var.key = "pcsx_rearmed_nosmccheck"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) @@ -2093,7 +2092,27 @@ static void update_variables(bool in_flight) int psxclock = atoi(var.value); cycle_multiplier = 10000 / psxclock; } -#endif /* NEW_DYNAREC */ + + 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"; @@ -2651,7 +2670,6 @@ static void loadPSXBios(void) unsigned useHLE = 0; const char *bios[] = { - "PS1_ROM", "ps1_rom", "PSXONPSP660", "psxonpsp660", "SCPH101", "scph101", "SCPH5501", "scph5501", @@ -2776,7 +2794,8 @@ void retro_init(void) #ifdef _3DS vout_buf = linearMemAlign(VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2, 0x80); #elif defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) && !defined(VITA) && !defined(__SWITCH__) - posix_memalign(&vout_buf, 16, VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2); + if (posix_memalign(&vout_buf, 16, VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2) != 0) + vout_buf = (void *) 0; #else vout_buf = malloc(VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2); #endif