gpu_neon: make enh. res. texturing hack optional
[pcsx_rearmed.git] / frontend / libretro_core_options.h
index 935c6f9..02f65c7 100644 (file)
@@ -203,9 +203,6 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       "PSX CPU Clock Speed",
       NULL,
       "Overclock or under-clock the PSX CPU. Try adjusting this if the game is too slow, too fast or hangs."
-#if defined(LIGHTREC)
-      " Currently doesn't work with Lightrec dynarec."
-#endif
 #if defined(HAVE_PRE_ARMV7) && !defined(_3DS)
       " Default is 50."
 #else
@@ -312,20 +309,6 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       "enabled",
 #endif
    },
-   {
-      "pcsx_rearmed_duping_enable",
-      "Frame Duping (Speedup)",
-      NULL,
-      "When enabled and supported by the libretro frontend, provides a small performance increase by directing the frontend to repeat the previous frame if the core has nothing new to display.",
-      NULL,
-      "video",
-      {
-         { "disabled", NULL },
-         { "enabled",  NULL },
-         { NULL, NULL },
-      },
-      "enabled",
-   },
 #ifdef THREAD_RENDERING
    {
       "pcsx_rearmed_gpu_thread_rendering",
@@ -438,25 +421,71 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       },
       "auto",
    },
+   {
+      "pcsx_rearmed_screen_centering",
+      "(GPU) Screen centering",
+      NULL,
+      "The PSX has a feature allowing it to shift the image position on screen. Some (mostly PAL) games used this feature in a strange way making the image miscentered and causing uneven borders to appear. With 'Auto' the emulator tries to correct this miscentering automatically. 'Game-controlled' uses the settings supplied by the game. 'Manual' allows to override those values with the settings below.",
+      NULL,
+      "video",
+      {
+         { "auto", "Auto" },
+         { "game", "Game-controlled" },
+         { "borderless", "Borderless" },
+         { "manual", "Manual" },
+         { NULL, NULL },
+      },
+      "auto",
+   },
+#define V(x) { #x, NULL }
+   {
+      "pcsx_rearmed_screen_centering_x",
+      "(GPU) Manual screen centering X",
+      NULL,
+      "X offset of the frame buffer. Only effective when 'Screen centering' is set to 'Manual'.",
+      NULL,
+      "video",
+      {
+         V(-16), V(-14), V(-12), V(-10), V(-8), V(-6), V(-4), V(-2), V(0), V(2), V(4), V(6), V(8), V(10), V(12), V(14), V(16),
+         { NULL, NULL },
+      },
+      "0",
+   },
+   {
+      "pcsx_rearmed_screen_centering_y",
+      "(GPU) Manual screen centering Y",
+      NULL,
+      "Y offset of the frame buffer. Only effective when 'Screen centering' is set to 'Manual'.",
+      NULL,
+      "video",
+      {
+         V(-16), V(-15), V(-14), V(-13), V(-12), V(-11), V(-10), V(-9), V(-8), V(-7), V(-6), V(-5), V(-4), V(-3), V(-2), V(-1),
+        V(0), V(1), V(2), V(3), V(4), V(5), V(6), V(7), V(8), V(9), V(10), V(11), V(12), V(13), V(14), V(15), V(16),
+         { NULL, NULL },
+      },
+      "0",
+   },
+#undef V
 #ifdef GPU_NEON
    {
-      "pcsx_rearmed_neon_interlace_enable",
+      "pcsx_rearmed_neon_interlace_enable_v2",
       "(GPU) Show Interlaced Video",
       "Show Interlaced Video",
-      "When enabled, games that run in high resolution video modes (480i, 512i) will produced interlaced video output. While this displays correctly on CRT televisions, it will produce artifacts on modern displays. When disabled, all video is output in progressive format.",
+      "When enabled, games that run in high resolution video modes (480i, 512i) will produced interlaced video output. While this displays correctly on CRT televisions, it will produce artifacts on modern displays. When disabled, all video is output in progressive format. Note: there are games that will glitch is this is off.",
       NULL,
       "gpu_neon",
       {
+         { "auto", NULL },
          { "disabled", NULL },
          { "enabled",  NULL },
          { NULL, NULL },
       },
-      "disabled",
+      "auto",
    },
    {
       "pcsx_rearmed_neon_enhancement_enable",
-      "(GPU) Enhanced Resolution (Slow)",
-      "Enhanced Resolution (Slow)",
+      "(GPU) Enhanced Resolution",
+      "Enhanced Resolution",
       "Render games that do not already run in high resolution video modes (480i, 512i) at twice the native internal resolution. Improves the fidelity of 3D models at the expense of increased performance requirements. 2D elements are generally unaffected by this setting.",
       NULL,
       "gpu_neon",
@@ -471,7 +500,21 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       "pcsx_rearmed_neon_enhancement_no_main",
       "(GPU) Enhanced Resolution Speed Hack",
       "Enhanced Resolution Speed Hack",
-      "Improves performance when 'Enhanced Resolution (Slow)' is enabled, but reduces compatibility and may cause rendering errors.",
+      "Improves performance when 'Enhanced Resolution' is enabled, but reduces compatibility and may cause rendering errors.",
+      NULL,
+      "gpu_neon",
+      {
+         { "disabled", NULL },
+         { "enabled",  NULL },
+         { NULL, NULL },
+      },
+      "disabled",
+   },
+   {
+      "pcsx_rearmed_neon_enhancement_tex_adj",
+      "(GPU) Enhanced Resolution Texture Adjustment",
+      "Enhanced Resolution Texture Adjustment",
+      "(Hack) Attempts to solve some texturing issues is some games, but causes new ones in others.",
       NULL,
       "gpu_neon",
       {
@@ -752,6 +795,22 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       },
       "enabled",
    },
+#if P_HAVE_PTHREAD
+   {
+      "pcsx_rearmed_spu_thread",
+      "Threaded SPU",
+      NULL,
+      "Emulates the PSX SPU on another CPU thread. May cause audio glitches in some games.",
+      NULL,
+      "audio",
+      {
+         { "disabled", NULL },
+         { "enabled",  NULL },
+         { NULL, NULL },
+      },
+      "disabled",
+   },
+#endif // P_HAVE_PTHREAD
    {
       "pcsx_rearmed_show_input_settings",
       "Show Input Settings",
@@ -794,11 +853,29 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       },
       "enabled",
    },
+   {
+      "pcsx_rearmed_analog_combo",
+      "DualShock Analog Mode Toggle Key Combo",
+      NULL,
+      "When the input device type is DualShock, this option allows the emulated DualShock to be toggled between DIGITAL and ANALOG mode like original hardware. You can select the button combination for this.",
+      NULL,
+      "input",
+      {
+         { "disabled", NULL },
+         { "l1+r1+select",             "L1 + R1 + Select" },
+         { "l1+r1+start",              "L1 + R1 + Start" },
+         { "l1+r1+l3",                 "L1 + R1 + L3" },
+         { "l1+r1+r3",                 "L1 + R1 + R3" },
+         { "l3+r3",                    "L3 + R3" },
+         { NULL, NULL },
+      },
+      "l1+r1+select"
+   },
    {
       "pcsx_rearmed_multitap",
-      "Multitap Mode (Restart)",
+      "Multitap Mode",
       NULL,
-      "Connect a virtual PSX Multitap peripheral to either controller 'Port 1' or controller 'Port 2' for 5 player simultaneous input, or to both 'Ports 1 and 2' for 8 player input. Mutlitap usage requires compatible games. To avoid input defects, option should be disabled when running games that have no support for Multitap features.",
+      "Connect a virtual PSX Multitap peripheral to either controller 'Port 1' or controller 'Port 2' for 5 player simultaneous input, or to both 'Ports 1 and 2' for 8 player input. Mutlitap usage requires compatible games.",
       NULL,
       "input",
       {
@@ -901,6 +978,226 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       },
       "1.00",
    },
+   {
+      "pcsx_rearmed_crosshair1",
+      "Player 1 Lightgun Crosshair",
+      NULL,
+      "Toggle player 1's crosshair for the Guncon or Konami Gun",
+      NULL,
+      "input",
+      {
+         { "disabled", NULL },
+         { "blue",  NULL },
+         { "green",  NULL },
+         { "red",  NULL },
+         { "white",  NULL },
+         { NULL, NULL },
+      },
+      "disabled",
+   },
+   {
+      "pcsx_rearmed_crosshair2",
+      "Player 2 Lightgun Crosshair",
+      NULL,
+      "Toggle player 2's crosshair for the Guncon or Konami Gun",
+      NULL,
+      "input",
+      {
+         { "disabled", NULL },
+         { "blue",  NULL },
+         { "green",  NULL },
+         { "red",  NULL },
+         { "white",  NULL },
+         { NULL, NULL },
+      },
+      "disabled",
+   },
+   {
+      "pcsx_rearmed_konamigunadjustx",
+      "Konami Gun X Axis Offset",
+      NULL,
+      "Apply an X axis offset to light gun input when emulating a Konami Gun (Hyper Blaster / Justifier) device. Can be used to correct aiming misalignments.",
+      NULL,
+      "input",
+      {
+         { "-40", NULL },
+         { "-39", NULL },
+         { "-38", NULL },
+         { "-37", NULL },
+         { "-36", NULL },
+         { "-35", NULL },
+         { "-34", NULL },
+         { "-33", NULL },
+         { "-32", NULL },
+         { "-31", NULL },
+         { "-30", NULL },
+         { "-29", NULL },
+         { "-28", NULL },
+         { "-27", NULL },
+         { "-26", NULL },
+         { "-25", NULL },
+         { "-24", NULL },
+         { "-23", NULL },
+         { "-22", NULL },
+         { "-21", NULL },
+         { "-20", NULL },
+         { "-19", NULL },
+         { "-18", NULL },
+         { "-17", NULL },
+         { "-16", NULL },
+         { "-15", NULL },
+         { "-14", NULL },
+         { "-13", NULL },
+         { "-12", NULL },
+         { "-11", NULL },
+         { "-10", NULL },
+         { "-9",  NULL },
+         { "-8",  NULL },
+         { "-7",  NULL },
+         { "-6",  NULL },
+         { "-5",  NULL },
+         { "-4",  NULL },
+         { "-3",  NULL },
+         { "-2",  NULL },
+         { "-1",  NULL },
+         { "0",   NULL },
+         { "1",   NULL },
+         { "2",   NULL },
+         { "3",   NULL },
+         { "4",   NULL },
+         { "5",   NULL },
+         { "6",   NULL },
+         { "7",   NULL },
+         { "8",   NULL },
+         { "9",   NULL },
+         { "10",  NULL },
+         { "11",  NULL },
+         { "12",  NULL },
+         { "13",  NULL },
+         { "14",  NULL },
+         { "15",  NULL },
+         { "16",  NULL },
+         { "17",  NULL },
+         { "18",  NULL },
+         { "19",  NULL },
+         { "20",  NULL },
+         { "21",  NULL },
+         { "22",  NULL },
+         { "23",  NULL },
+         { "24",  NULL },
+         { "25",  NULL },
+         { "26",  NULL },
+         { "27",  NULL },
+         { "28",  NULL },
+         { "29",  NULL },
+         { "30",  NULL },
+         { "31",  NULL },
+         { "32",  NULL },
+         { "33",  NULL },
+         { "34",  NULL },
+         { "35",  NULL },
+         { "36",  NULL },
+         { "37",  NULL },
+         { "38",  NULL },
+         { "39",  NULL },
+         { "40",  NULL },
+         { NULL, NULL },
+      },
+      "0",
+   },
+   {
+      "pcsx_rearmed_konamigunadjusty",
+      "Konami Gun Y Axis Offset",
+      NULL,
+      "Apply a Y axis offset to light gun input when emulating a Konami Gun (Hyper Blaster / Justifier) device. Can be used to correct aiming misalignments.",
+      NULL,
+      "input",
+      {
+         { "-40", NULL },
+         { "-39", NULL },
+         { "-38", NULL },
+         { "-37", NULL },
+         { "-36", NULL },
+         { "-35", NULL },
+         { "-34", NULL },
+         { "-33", NULL },
+         { "-32", NULL },
+         { "-31", NULL },
+         { "-30", NULL },
+         { "-29", NULL },
+         { "-28", NULL },
+         { "-27", NULL },
+         { "-26", NULL },
+         { "-25", NULL },
+         { "-24", NULL },
+         { "-23", NULL },
+         { "-22", NULL },
+         { "-21", NULL },
+         { "-20", NULL },
+         { "-19", NULL },
+         { "-18", NULL },
+         { "-17", NULL },
+         { "-16", NULL },
+         { "-15", NULL },
+         { "-14", NULL },
+         { "-13", NULL },
+         { "-12", NULL },
+         { "-11", NULL },
+         { "-10", NULL },
+         { "-9",  NULL },
+         { "-8",  NULL },
+         { "-7",  NULL },
+         { "-6",  NULL },
+         { "-5",  NULL },
+         { "-4",  NULL },
+         { "-3",  NULL },
+         { "-2",  NULL },
+         { "-1",  NULL },
+         { "0",   NULL },
+         { "1",   NULL },
+         { "2",   NULL },
+         { "3",   NULL },
+         { "4",   NULL },
+         { "5",   NULL },
+         { "6",   NULL },
+         { "7",   NULL },
+         { "8",   NULL },
+         { "9",   NULL },
+         { "10",  NULL },
+         { "11",  NULL },
+         { "12",  NULL },
+         { "13",  NULL },
+         { "14",  NULL },
+         { "15",  NULL },
+         { "16",  NULL },
+         { "17",  NULL },
+         { "18",  NULL },
+         { "19",  NULL },
+         { "20",  NULL },
+         { "21",  NULL },
+         { "22",  NULL },
+         { "23",  NULL },
+         { "24",  NULL },
+         { "25",  NULL },
+         { "26",  NULL },
+         { "27",  NULL },
+         { "28",  NULL },
+         { "29",  NULL },
+         { "30",  NULL },
+         { "31",  NULL },
+         { "32",  NULL },
+         { "33",  NULL },
+         { "34",  NULL },
+         { "35",  NULL },
+         { "36",  NULL },
+         { "37",  NULL },
+         { "38",  NULL },
+         { "39",  NULL },
+         { "40",  NULL },
+         { NULL, NULL },
+      },
+      "0",
+   },
    {
       "pcsx_rearmed_gunconadjustx",
       "Guncon X Axis Offset",
@@ -909,6 +1206,21 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       NULL,
       "input",
       {
+         { "-40", NULL },
+         { "-39", NULL },
+         { "-38", NULL },
+         { "-37", NULL },
+         { "-36", NULL },
+         { "-35", NULL },
+         { "-34", NULL },
+         { "-33", NULL },
+         { "-32", NULL },
+         { "-31", NULL },
+         { "-30", NULL },
+         { "-29", NULL },
+         { "-28", NULL },
+         { "-27", NULL },
+         { "-26", NULL },
          { "-25", NULL },
          { "-24", NULL },
          { "-23", NULL },
@@ -960,6 +1272,21 @@ struct retro_core_option_v2_definition option_defs_us[] = {
          { "23",  NULL },
          { "24",  NULL },
          { "25",  NULL },
+         { "26",  NULL },
+         { "27",  NULL },
+         { "28",  NULL },
+         { "29",  NULL },
+         { "30",  NULL },
+         { "31",  NULL },
+         { "32",  NULL },
+         { "33",  NULL },
+         { "34",  NULL },
+         { "35",  NULL },
+         { "36",  NULL },
+         { "37",  NULL },
+         { "38",  NULL },
+         { "39",  NULL },
+         { "40",  NULL },
          { NULL, NULL },
       },
       "0",
@@ -972,6 +1299,21 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       NULL,
       "input",
       {
+         { "-40", NULL },
+         { "-39", NULL },
+         { "-38", NULL },
+         { "-37", NULL },
+         { "-36", NULL },
+         { "-35", NULL },
+         { "-34", NULL },
+         { "-33", NULL },
+         { "-32", NULL },
+         { "-31", NULL },
+         { "-30", NULL },
+         { "-29", NULL },
+         { "-28", NULL },
+         { "-27", NULL },
+         { "-26", NULL },
          { "-25", NULL },
          { "-24", NULL },
          { "-23", NULL },
@@ -1023,6 +1365,21 @@ struct retro_core_option_v2_definition option_defs_us[] = {
          { "23",  NULL },
          { "24",  NULL },
          { "25",  NULL },
+         { "26",  NULL },
+         { "27",  NULL },
+         { "28",  NULL },
+         { "29",  NULL },
+         { "30",  NULL },
+         { "31",  NULL },
+         { "32",  NULL },
+         { "33",  NULL },
+         { "34",  NULL },
+         { "35",  NULL },
+         { "36",  NULL },
+         { "37",  NULL },
+         { "38",  NULL },
+         { "39",  NULL },
+         { "40",  NULL },
          { NULL, NULL },
       },
       "0",
@@ -1157,7 +1514,21 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       "pcsx_rearmed_icache_emulation",
       "Instruction Cache Emulation",
       NULL,
-      "Enable emulation of the PSX CPU instruction cache. Improves accuracy at the expense of increased performance overheads. Required for Formula One 2001, Formula One Arcade and Formula One 99. [Interpreter only and partial on lightrec, unsupported when using ARMv7 backend]",
+      "Enable emulation of the PSX CPU instruction cache. Improves accuracy at the expense of increased performance overheads. Required for Formula One 2001, Formula One Arcade and Formula One 99. [Interpreter only; partial on lightrec and ARM dynarecs]",
+      NULL,
+      "compat_hack",
+      {
+         { "enabled",  NULL },
+         { "disabled", NULL },
+         { NULL, NULL },
+      },
+      "enabled",
+   },
+   {
+      "pcsx_rearmed_exception_emulation",
+      "Exception and Breakpoint Emulation",
+      NULL,
+      "Enable emulation of some almost never used PSX's debug features. This causes a performance hit, is not useful for games and is intended for PSX homebrew and romhack developers only. Only enable if you know what you are doing. [Interpreter only]",
       NULL,
       "compat_hack",
       {
@@ -1224,13 +1595,18 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       },
       "disabled",
    },
+#endif /* !DRC_DISABLE && !LIGHTREC */
    {
       "pcsx_rearmed_nostalls",
-      "(Speed Hack) Disable CPU/GTE Stalls",
       "Disable CPU/GTE Stalls",
-      "Will cause some games to run too quickly.",
       NULL,
-      "speed_hack",
+      "Will cause some games to run too quickly."
+#if defined(LIGHTREC)
+      " Interpreter only."
+#endif
+      ,
+      NULL,
+      "compat_hack",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
@@ -1238,7 +1614,6 @@ struct retro_core_option_v2_definition option_defs_us[] = {
       },
       "disabled",
    },
-#endif /* !DRC_DISABLE && !LIGHTREC */
    { NULL, NULL, NULL, NULL, NULL, NULL, {{0}}, NULL },
 };