X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Flibretro.c;h=ec034c2001523008104d1e7b1f29c16123b46890;hb=41294f4d869ce943b6144a1dd469105681d32ec1;hp=1e9929deba43a7db8045dd8397646b5083e677c1;hpb=805fe9bcd363fb6eb76dc82b8d8d72008156ef44;p=pcsx_rearmed.git diff --git a/frontend/libretro.c b/frontend/libretro.c index 1e9929de..ec034c20 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -243,9 +243,8 @@ void retro_set_environment(retro_environment_t cb) { "region", "Region; Auto|NTSC|PAL" }, #ifdef __ARM_NEON__ { "neon_interlace_enable", "Enable interlacing mode(s); disabled|enabled" }, -#if 0 { "neon_enhancement_enable", "Enhanced resolution (slow); disabled|enabled" }, -#endif + { "neon_enhancement_no_main", "Enhanced resolution speed hack; disabled|enabled" }, #endif { NULL, NULL }, }; @@ -592,6 +591,33 @@ static void extract_directory(char *buf, const char *path, size_t size) } } +#ifdef __QNX__ +/* Blackberry QNX doesn't have strcasestr */ + +/* + * Find the first occurrence of find in s, ignore case. + */ +char * +strcasestr(const char *s, const char*find) +{ + char c, sc; + size_t len; + + if ((c = *find++) != 0) { + c = tolower((unsigned char)c); + len = strlen(find); + do { + do { + if ((sc = *s++) == 0) + return (NULL); + } while ((char)tolower((unsigned char)sc) != c); + } while (strncasecmp(s, find, len) != 0); + s--; + } + return ((char *)s); +} +#endif + bool retro_load_game(const struct retro_game_info *info) { size_t i; @@ -652,6 +678,7 @@ bool retro_load_game(const struct retro_game_info *info) } plugin_call_rearmed_cbs(); + dfinput_activate(); Config.PsxAuto = 1; if (CheckCdrom() == -1) { @@ -769,7 +796,6 @@ static void update_variables(bool in_flight) pl_rearmed_cbs.gpu_neon.allow_interlace = 1; } -#if 0 var.value = NULL; var.key = "neon_enhancement_enable"; @@ -780,7 +806,17 @@ static void update_variables(bool in_flight) else if (strcmp(var.value, "enabled") == 0) pl_rearmed_cbs.gpu_neon.enhancement_enable = 1; } -#endif + + var.value = NULL; + var.key = "neon_enhancement_no_main"; + + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value) + { + if (strcmp(var.value, "disabled") == 0) + pl_rearmed_cbs.gpu_neon.enhancement_no_main = 0; + else if (strcmp(var.value, "enabled") == 0) + pl_rearmed_cbs.gpu_neon.enhancement_no_main = 1; + } #endif if (in_flight) { @@ -791,9 +827,9 @@ static void update_variables(bool in_flight) GPU_close(); GPU_open(&gpuDisp, "PCSX", NULL); } - } - dfinput_activate(); + dfinput_activate(); + } } void retro_run(void)