X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Flibretro.c;h=62f968a855b9a8d3d6b99b6b6a460a98bcddc396;hp=f212cdd8d0b519d733d35da4bf347dc25ac761f3;hb=69823a60b04945462d035403d688a9ebf9019b7d;hpb=7d68d030b6a2c294ab6f18892f61e1861ecdd40f diff --git a/frontend/libretro.c b/frontend/libretro.c index f212cdd8..62f968a8 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -39,8 +39,6 @@ static int samples_sent, samples_to_send; static int plugins_opened; static int is_pal_mode; -extern int soft_filter; - /* memory card data */ extern char Mcd1Data[MCD_SIZE]; extern char McdDisable[2]; @@ -236,9 +234,12 @@ void retro_set_environment(retro_environment_t cb) { static const struct retro_variable vars[] = { { "frameskip", "Frameskip; 0|1|2|3" }, + { "region", "Region; Auto|NTSC|PAL" }, #ifdef __ARM_NEON__ - { "soft_filter", "Software filter; none|scale2x|eagle2x" }, + { "neon_interlace_enable", "Enable interlacing mode(s); disabled|enabled" }, +#if 0 { "neon_enhancement_enable", "Enhanced resolution (slow); disabled|enabled" }, +#endif #endif { NULL, NULL }, }; @@ -736,20 +737,33 @@ static void update_variables(void) if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value) pl_rearmed_cbs.frameskip = atoi(var.value); -#ifdef __ARM_NEON__ + var.value = NULL; - var.key = "soft_filter"; + var.key = "region"; + + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value) + { + Config.PsxAuto = 0; + if (strcmp(var.value, "Automatic") == 0) + Config.PsxAuto = 1; + else if (strcmp(var.value, "NTSC") == 0) + Config.PsxType = 0; + else if (strcmp(var.value, "PAL") == 0) + Config.PsxType = 1; + } +#ifdef __ARM_NEON__ + var.value = "NULL"; + var.key = "neon_interlace_enable"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value) { - if (strcmp(var.value, "none")) - soft_filter = 0; - else if (strcmp(var.value, "scale2x")) - soft_filter = 1; - else if (strcmp(var.value, "eagle2x")) - soft_filter = 2; + if (strcmp(var.value, "disabled") == 0) + pl_rearmed_cbs.gpu_neon.allow_interlace = 0; + else if (strcmp(var.value, "enabled") == 0) + pl_rearmed_cbs.gpu_neon.allow_interlace = 1; } +#if 0 var.value = NULL; var.key = "neon_enhancement_enable"; @@ -761,6 +775,7 @@ static void update_variables(void) pl_rearmed_cbs.gpu_neon.enhancement_enable = 1; } #endif +#endif } void retro_run(void) @@ -827,7 +842,15 @@ void retro_init(void) fclose(f); } else + { SysPrintf("no BIOS files found.\n"); + struct retro_message msg = + { + "no BIOS found, expect bugs!", + 180 + }; + environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, (void*)&msg); + } level = 1; environ_cb(RETRO_ENVIRONMENT_SET_PERFORMANCE_LEVEL, &level);