X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Flibretro.c;h=f94bcc68769b33c19adceb4dddc2a2361b2cf031;hb=4ee722a52cb0fb56260ccd3962537e5c772800e0;hp=e18b190c47a021a7ddb73f40357af702902fb1b2;hpb=96b0d7854b486457c3af6180ebf5560c94df9158;p=pcsx_rearmed.git diff --git a/frontend/libretro.c b/frontend/libretro.c index e18b190c..f94bcc68 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -39,6 +39,7 @@ #include "revision.h" #include +#include #include "libretro_core_options.h" #ifdef _3DS @@ -589,11 +590,11 @@ static void update_multitap(void) multitap1 = 1; else if (strcmp(var.value, "disabled") == 0) multitap1 = 0; - else // 'auto' case + else if (strcmp(var.value, "automatic") == 0) auto_case = 1; } else - auto_case = 1; + multitap1 = 0; if (auto_case) { @@ -612,11 +613,11 @@ static void update_multitap(void) multitap2 = 1; else if (strcmp(var.value, "disabled") == 0) multitap2 = 0; - else // 'auto' case + else if (strcmp(var.value, "automatic") == 0) auto_case = 1; } else - auto_case = 1; + multitap2 = 0; if (auto_case) { @@ -1112,7 +1113,7 @@ static bool read_m3u(const char *file) { char line[1024]; char name[PATH_MAX]; - FILE *f = fopen(file, "r"); + FILE *f = fopen_utf8(file, "r"); if (!f) return false; @@ -1744,9 +1745,20 @@ static void update_variables(bool in_flight) if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (strcmp(var.value, "async") == 0) + { Config.AsyncCD = 1; - else + Config.CHD_Precache = 0; + } + else if (strcmp(var.value, "sync") == 0) + { + Config.AsyncCD = 0; + Config.CHD_Precache = 0; + } + else if (strcmp(var.value, "precache") == 0) + { Config.AsyncCD = 0; + Config.CHD_Precache = 1; + } } #endif @@ -2121,8 +2133,6 @@ static void update_variables(bool in_flight) unsigned i; struct retro_core_option_display option_display; char gpu_peops_option[][50] = { - "pcsx_rearmed_multitap1", - "pcsx_rearmed_multitap2", "pcsx_rearmed_negcon_deadzone", "pcsx_rearmed_negcon_response", "pcsx_rearmed_analog_axis_modifier", @@ -2563,7 +2573,7 @@ static bool try_use_bios(const char *path) long size; const char *name; - f = fopen(path, "rb"); + f = fopen_utf8(path, "rb"); if (f == NULL) return false; @@ -2671,6 +2681,7 @@ static void loadPSXBios(void) unsigned useHLE = 0; const char *bios[] = { + "PS1_ROM", "ps1_rom", "PSXONPSP660", "psxonpsp660", "SCPH101", "scph101", "SCPH5501", "scph5501", @@ -2715,11 +2726,19 @@ static void loadPSXBios(void) } } - if (useHLE || !found_bios) + if (!found_bios) { - const char *msg_str = "No PlayStation BIOS file found - add for better compatibility"; - - SysPrintf("no BIOS files found.\n"); + const char *msg_str; + if (useHLE) + { + msg_str = "BIOS set to \'hle\' in core options - real BIOS will be ignored"; + SysPrintf("Using HLE BIOS.\n"); + } + else + { + msg_str = "No PlayStation BIOS file found - add for better compatibility"; + SysPrintf("No BIOS files found.\n"); + } if (msg_interface_version >= 1) { @@ -2754,7 +2773,7 @@ void retro_init(void) msg_interface_version = 0; environ_cb(RETRO_ENVIRONMENT_GET_MESSAGE_INTERFACE_VERSION, &msg_interface_version); -#ifdef __MACH__ +#if defined(__MACH__) && !defined(TVOS) // magic sauce to make the dynarec work on iOS syscall(SYS_ptrace, 0 /*PTRACE_TRACEME*/, 0, 0, 0); #endif