Merge pull request #631 from neonloop/autoframeskip
[pcsx_rearmed.git] / frontend / libretro_core_options.h
index 813e30a..d8b37df 100644 (file)
@@ -51,17 +51,61 @@ extern "C" {
 
 struct retro_core_option_definition option_defs_us[] = {
    {
-      "pcsx_rearmed_frameskip",
+      "pcsx_rearmed_frameskip_type",
       "Frameskip",
-      "Choose how much frames should be skipped to improve performance at the expense of visual smoothness.",
+      "Skip frames to avoid audio buffer under-run (crackling). Improves performance at the expense of visual smoothness. 'Auto' skips frames when advised by the frontend. 'Auto (Threshold)' utilises the 'Frameskip Threshold (%)' setting. 'Fixed Interval' utilises the 'Frameskip Interval' setting.",
       {
-         { "0", NULL },
-         { "1", NULL },
-         { "2", NULL },
-         { "3", NULL },
+         { "disabled",       NULL },
+         { "auto",           "Auto" },
+         { "auto_threshold", "Auto (Threshold)" },
+         { "fixed_interval", "Fixed Interval" },
          { NULL, NULL },
       },
-      "0",
+      "disabled"
+   },
+   {
+      "pcsx_rearmed_frameskip_threshold",
+      "Frameskip Threshold (%)",
+      "When 'Frameskip' is set to 'Auto (Threshold)', specifies the audio buffer occupancy threshold (percentage) below which frames will be skipped. Higher values reduce the risk of crackling by causing frames to be dropped more frequently.",
+      {
+         { "15", NULL },
+         { "18", NULL },
+         { "21", NULL },
+         { "24", NULL },
+         { "27", NULL },
+         { "30", NULL },
+         { "33", NULL },
+         { "36", NULL },
+         { "39", NULL },
+         { "42", NULL },
+         { "45", NULL },
+         { "48", NULL },
+         { "51", NULL },
+         { "54", NULL },
+         { "57", NULL },
+         { "60", NULL },
+         { NULL, NULL },
+      },
+      "33"
+   },
+   {
+      "pcsx_rearmed_frameskip",
+      "Frameskip Interval",
+      "Specifies the maximum number of frames that can be skipped before a new frame is rendered.",
+      {
+         { "1",  NULL },
+         { "2",  NULL },
+         { "3",  NULL },
+         { "4",  NULL },
+         { "5",  NULL },
+         { "6",  NULL },
+         { "7",  NULL },
+         { "8",  NULL },
+         { "9",  NULL },
+         { "10", NULL },
+         { NULL, NULL },
+      },
+      "1"
    },
    {
       "pcsx_rearmed_bios",
@@ -479,7 +523,7 @@ struct retro_core_option_definition option_defs_us[] = {
 #endif
    },
 
-#if defined(LIGHTREC) || defined(NEW_DYNAREC)
+#ifndef DRC_DISABLE
    {
       "pcsx_rearmed_drc",
       "Dynamic Recompiler",
@@ -491,9 +535,9 @@ struct retro_core_option_definition option_defs_us[] = {
       },
       "enabled",
    },
-#endif /* LIGHTREC || NEW_DYNAREC */
+#endif
 
-#ifdef NEW_DYNAREC
+#if !defined(DRC_DISABLE) && !defined(LIGHTREC)
    {
       "pcsx_rearmed_psxclock",
       "PSX CPU Clock",
@@ -582,7 +626,7 @@ struct retro_core_option_definition option_defs_us[] = {
       "57",
 #endif
    },
-#endif /* NEW_DYNAREC */
+#endif /* !DRC_DISABLE && !LIGHTREC */
 
 #ifdef GPU_NEON
    {
@@ -834,7 +878,11 @@ struct retro_core_option_definition option_defs_us[] = {
          { "enabled",  NULL },
          { NULL, NULL},
       },
+#ifdef _MIYOO
+      "enabled",
+#else
       "disabled",
+#endif
    },
 #endif /* GPU UNAI Advanced Settings */
 #ifdef THREAD_RENDERING
@@ -872,7 +920,11 @@ struct retro_core_option_definition option_defs_us[] = {
          { "enabled",  NULL },
          { NULL, NULL },
       },
+#ifdef HAVE_PRE_ARMV7
+      "disabled",
+#else
       "enabled",
+#endif
    },
    {
       "pcsx_rearmed_spu_interpolation",
@@ -885,11 +937,15 @@ struct retro_core_option_definition option_defs_us[] = {
          { "off",      "disabled" },
          { NULL, NULL },
       },
+#ifdef HAVE_PRE_ARMV7
+      "off",
+#else
       "simple",
+#endif
    },
    {
-      "pcsx_rearmed_idiablofix",
-      "Diablo Music Fix",
+      "pcsx_rearmed_pe2_fix",
+      "Parasite Eve 2/Vandal Hearts 1/2 Fix",
       NULL,
       {
          { "disabled", NULL },
@@ -899,9 +955,9 @@ struct retro_core_option_definition option_defs_us[] = {
       "disabled",
    },
    {
-      "pcsx_rearmed_pe2_fix",
-      "Parasite Eve 2/Vandal Hearts 1/2 Fix",
-      NULL,
+      "pcsx_rearmed_icache_emulation",
+      "Instruction Cache emulation",
+      "Enables or disables instruction cache emulation. Slower, but more accurate. Fails to run Spyro 2 PAL. This allows you to run F1 2001, Formula One Arcade, F1 99 and other games that may need instruction cache emulation. Interpreter only and partial on lightrec, does nothing on the ARMv7 backend.",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
@@ -969,7 +1025,7 @@ struct retro_core_option_definition option_defs_us[] = {
       "disabled",
    },
 
-#ifdef NEW_DYNAREC
+#if !defined(DRC_DISABLE) && !defined(LIGHTREC)
    {
       "pcsx_rearmed_nosmccheck",
       "(Speed Hack) Disable SMC Checks",
@@ -1003,7 +1059,29 @@ struct retro_core_option_definition option_defs_us[] = {
       },
       "disabled",
    },
-#endif /* NEW_DYNAREC */
+   {
+      "pcsx_rearmed_nostalls",
+      "Disable CPU/GTE stalls",
+      "Will cause some games to run too fast.",
+      {
+         { "disabled", NULL },
+         { "enabled",  NULL },
+         { NULL, NULL },
+      },
+      "disabled",
+   },
+   {
+      "pcsx_rearmed_nocompathacks",
+      "Disable compat hacks",
+      "Disables game-specific compatibility hacks.",
+      {
+         { "disabled", NULL },
+         { "enabled",  NULL },
+         { NULL, NULL },
+      },
+      "disabled",
+   },
+#endif /* !DRC_DISABLE && !LIGHTREC */
 
    { NULL, NULL, NULL, {{0}}, NULL },
 };