libretro, add FM unit setting
authorkub <derkub@gmail.com>
Tue, 26 Oct 2021 21:36:38 +0000 (23:36 +0200)
committerkub <derkub@gmail.com>
Tue, 26 Oct 2021 21:36:38 +0000 (23:36 +0200)
platform/libretro/libretro.c
platform/libretro/libretro_core_options.h

index 4a12c68..cd2e91c 100644 (file)
@@ -1474,6 +1474,15 @@ static void update_variables(bool first_run)
          PicoIn.hwSelect = PHWS_SMS;
    }
 
+   var.value = NULL;
+   var.key = "picodrive_smsfm";
+   if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) {
+      if (strcmp(var.value, "on") == 0)
+         PicoIn.opt |= POPT_EN_YM2413;
+      else
+         PicoIn.opt &= ~POPT_EN_YM2413;
+   }
+
    OldPicoRegionOverride = PicoIn.regionOverride;
    var.value = NULL;
    var.key = "picodrive_region";
@@ -1819,9 +1828,10 @@ void retro_init(void)
 #endif
 
    PicoIn.opt = POPT_EN_STEREO|POPT_EN_FM
-      | POPT_EN_PSG|POPT_EN_Z80|POPT_EN_YM2413|POPT_EN_GG_LCD
+      | POPT_EN_PSG|POPT_EN_Z80|POPT_EN_GG_LCD
       | POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_MCD_GFX
       | POPT_EN_32X|POPT_EN_PWM
+//|POPT_DIS_IDLE_DET
       | POPT_ACC_SPRITES|POPT_DIS_32C_BORDER;
 #ifdef __arm__
 #ifdef _3DS
index 5d6911e..be23cd7 100644 (file)
@@ -85,16 +85,15 @@ struct retro_core_option_definition option_defs_us[] = {
       "disabled"
    },
    {
-      "picodrive_smstype",
-      "Master System type",
-      "Choose which type of system the core should emulate for Master system",
+      "picodrive_smsfm",
+      "Master System FM sound unit",
+      "Enable the FM Sound Unit emulation. Some MS games produce much better sound, but non-Japanese titles might possibly not run.",
       {
-         { "Auto", NULL },
-         { "Game Gear",  NULL },
-         { "Master System",  NULL },
+         { "off", NULL },
+         { "on",  NULL },
          { NULL, NULL },
       },
-      "disabled"
+      "off"
    },
    {
       "picodrive_region",