Pass correct type for RETRO_ENVIRONMENT_SET_MESSAGE
[pcsx_rearmed.git] / frontend / libretro.c
index f212cdd..62f968a 100644 (file)
@@ -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);