/* libretro */
void retro_set_environment(retro_environment_t cb)
{
-#ifdef __ARM_NEON__
static const struct retro_variable vars[] = {
+ { "frameskip", "Frameskip; 0|1|2|3" },
+ { "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
+#endif
{ NULL, NULL },
};
environ_cb = cb;
cb(RETRO_ENVIRONMENT_SET_VARIABLES, (void*)vars);
-#else
- environ_cb = cb;
-#endif
}
void retro_set_video_refresh(retro_video_refresh_t cb) { video_cb = cb; }
static void update_variables(void)
{
-#ifdef __ARM_NEON__
struct retro_variable var;
+
var.value = NULL;
- var.key = "neon_enhancement_enable";
+ var.key = "frameskip";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+ pl_rearmed_cbs.frameskip = atoi(var.value);
+
+ var.value = NULL;
+ var.key = "region";
- if (!environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || !var.value)
- return;
+ 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, "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 (strcmp(var.value, "disabled") == 0)
- pl_rearmed_cbs.gpu_neon.enhancement_enable = 0;
- else if (strcmp(var.value, "enabled") == 0)
- pl_rearmed_cbs.gpu_neon.enhancement_enable = 1;
+#if 0
+ var.value = NULL;
+ var.key = "neon_enhancement_enable";
+
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+ {
+ if (strcmp(var.value, "disabled") == 0)
+ pl_rearmed_cbs.gpu_neon.enhancement_enable = 0;
+ else if (strcmp(var.value, "enabled") == 0)
+ pl_rearmed_cbs.gpu_neon.enhancement_enable = 1;
+ }
+#endif
#endif
}