From 70fb8fe72ff0ff6356e78be861355075bf8fb4fe Mon Sep 17 00:00:00 2001 From: pjft Date: Fri, 7 Apr 2017 12:19:05 +0100 Subject: Adding "Enable Vibration" Core Option to LibRetro --- frontend/libretro.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'frontend') diff --git a/frontend/libretro.c b/frontend/libretro.c index 4d56356..c078494 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -398,8 +398,11 @@ void pl_timing_prepare(int is_pal) void plat_trigger_vibrate(int pad, int low, int high) { - rumble.set_rumble_state(pad, RETRO_RUMBLE_STRONG, high << 8); - rumble.set_rumble_state(pad, RETRO_RUMBLE_WEAK, low ? 0xffff : 0x0); + if(in_enable_vibration) + { + rumble.set_rumble_state(pad, RETRO_RUMBLE_STRONG, high << 8); + rumble.set_rumble_state(pad, RETRO_RUMBLE_WEAK, low ? 0xffff : 0x0); + } } void pl_update_gun(int *xn, int *yn, int *xres, int *yres, int *in) @@ -452,6 +455,7 @@ void retro_set_environment(retro_environment_t cb) { "pcsx_rearmed_pad8type", "Pad 8 Type; default|none|standard|analog|negcon" }, { "pcsx_rearmed_multitap1", "Multitap 1; auto|disabled|enabled" }, { "pcsx_rearmed_multitap2", "Multitap 2; auto|disabled|enabled" }, + { "pcsx_rearmed_vibration", "Enable Vibration; enabled|disabled" }, #ifndef DRC_DISABLE { "pcsx_rearmed_drc", "Dynamic recompiler; enabled|disabled" }, #endif @@ -1361,6 +1365,17 @@ static void update_variables(bool in_flight) update_multitap(); + var.value = NULL; + var.key = "pcsx_rearmed_vibration"; + + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value) + { + if (strcmp(var.value, "disabled") == 0) + in_enable_vibration = 0; + else if (strcmp(var.value, "enabled") == 0) + in_enable_vibration = 1; + } + #ifdef __ARM_NEON__ var.value = "NULL"; var.key = "pcsx_rearmed_neon_interlace_enable"; -- cgit v1.2.3 From a9bb0712e8b70bf8f3c4a0025606c70a81594ab9 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 9 Apr 2017 15:49:52 +0200 Subject: Turn min into macro --- frontend/libretro.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'frontend') diff --git a/frontend/libretro.c b/frontend/libretro.c index ee29a9b..7fd20b1 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -39,6 +39,10 @@ #define PORTS_NUMBER 8 +#ifndef MIN +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#endif + #define ISHEXDEC ((buf[cursor]>='0') && (buf[cursor]<='9')) || ((buf[cursor]>='a') && (buf[cursor]<='f')) || ((buf[cursor]>='A') && (buf[cursor]<='F')) //hack to prevent retroarch freezing when reseting in the menu but not while running with the hot key @@ -1502,11 +1506,6 @@ static void update_variables(bool in_flight) } } -static int min(int a, int b) -{ - return a < b ? a : b; -} - void retro_run(void) { int i; @@ -1537,10 +1536,10 @@ void retro_run(void) if (in_type[i] == PSE_PAD_TYPE_ANALOGPAD) { - in_analog_left[i][0] = min((input_state_cb(i, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_X) / 255) + 128, 255); - in_analog_left[i][1] = min((input_state_cb(i, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_Y) / 255) + 128, 255); - in_analog_right[i][0] = min((input_state_cb(i, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X) / 255) + 128, 255); - in_analog_right[i][1] = min((input_state_cb(i, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y) / 255) + 128, 255); + in_analog_left[i][0] = MIN((input_state_cb(i, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_X) / 255) + 128, 255); + in_analog_left[i][1] = MIN((input_state_cb(i, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_Y) / 255) + 128, 255); + in_analog_right[i][0] = MIN((input_state_cb(i, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X) / 255) + 128, 255); + in_analog_right[i][1] = MIN((input_state_cb(i, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y) / 255) + 128, 255); } } -- cgit v1.2.3 From f330c38cdb00a4443caecd5e9e522cc774f4f2d3 Mon Sep 17 00:00:00 2001 From: Bryan Barnes Date: Mon, 24 Apr 2017 19:51:57 -0400 Subject: More clear HLE BIOS error message --- frontend/libretro.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'frontend') diff --git a/frontend/libretro.c b/frontend/libretro.c index 7fd20b1..98c0dee 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -1680,7 +1680,7 @@ void retro_init(void) SysPrintf("no BIOS files found.\n"); struct retro_message msg = { - "no BIOS found, expect bugs!", + "No BIOS file found - add for better compatibility", 180 }; environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, (void*)&msg); -- cgit v1.2.3 From d2cb52e5247d52cbc2d1c6f299ee4b21a85d462b Mon Sep 17 00:00:00 2001 From: LEGOAnimal22 Date: Wed, 26 Apr 2017 16:52:47 -0600 Subject: Search for the newest version of the BIOS first --- frontend/libretro.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'frontend') diff --git a/frontend/libretro.c b/frontend/libretro.c index 98c0dee..35e37a0 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -1613,7 +1613,7 @@ static void check_system_specs(void) void retro_init(void) { - const char *bios[] = { "scph1001", "scph5501", "scph7001" }; + const char *bios[] = { "SCPH101", "SCPH7001", "SCPH5501", "SCPH1001" }; const char *dir; char path[256]; int i, ret; -- cgit v1.2.3 From 5c1cbedc034c59caba3955c663868c74e9631731 Mon Sep 17 00:00:00 2001 From: pjft Date: Sat, 6 May 2017 21:51:55 +0100 Subject: Adding enable/disable dithering core option with support for Neon GPU --- frontend/libretro.c | 22 ++++++++++++++++++++++ frontend/plugin_lib.h | 1 + 2 files changed, 23 insertions(+) (limited to 'frontend') diff --git a/frontend/libretro.c b/frontend/libretro.c index c078494..3013a7f 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -456,6 +456,7 @@ void retro_set_environment(retro_environment_t cb) { "pcsx_rearmed_multitap1", "Multitap 1; auto|disabled|enabled" }, { "pcsx_rearmed_multitap2", "Multitap 2; auto|disabled|enabled" }, { "pcsx_rearmed_vibration", "Enable Vibration; enabled|disabled" }, + { "pcsx_rearmed_dithering", "Enable Dithering; enabled|disabled" }, #ifndef DRC_DISABLE { "pcsx_rearmed_drc", "Dynamic recompiler; enabled|disabled" }, #endif @@ -1376,6 +1377,27 @@ static void update_variables(bool in_flight) in_enable_vibration = 1; } + var.value = NULL; + var.key = "pcsx_rearmed_dithering"; + + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value) + { + if (strcmp(var.value, "disabled") == 0) { + pl_rearmed_cbs.gpu_peops.iUseDither = 0; + pl_rearmed_cbs.gpu_peopsgl.bDrawDither = 0; +#ifdef __ARM_NEON__ + pl_rearmed_cbs.gpu_neon.allow_dithering = 0; +#endif + } + else if (strcmp(var.value, "enabled") == 0) { + pl_rearmed_cbs.gpu_peops.iUseDither = 1; + pl_rearmed_cbs.gpu_peopsgl.bDrawDither = 1; +#ifdef __ARM_NEON__ + pl_rearmed_cbs.gpu_neon.allow_dithering = 1; +#endif + } + } + #ifdef __ARM_NEON__ var.value = "NULL"; var.key = "pcsx_rearmed_neon_interlace_enable"; diff --git a/frontend/plugin_lib.h b/frontend/plugin_lib.h index 83b2774..92e62e9 100644 --- a/frontend/plugin_lib.h +++ b/frontend/plugin_lib.h @@ -71,6 +71,7 @@ struct rearmed_cbs { int allow_interlace; // 0 off, 1 on, 2 guess int enhancement_enable; int enhancement_no_main; + int allow_dithering; } gpu_neon; struct { int iUseDither; -- cgit v1.2.3 From d019fef12f559a8cc5db4df8d975e9ab92f52582 Mon Sep 17 00:00:00 2001 From: Bryan Barnes Date: Sun, 7 May 2017 18:46:33 -0400 Subject: Update libretro.c --- frontend/libretro.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'frontend') diff --git a/frontend/libretro.c b/frontend/libretro.c index 090e10b..4527f86 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -1702,7 +1702,7 @@ void retro_init(void) SysPrintf("no BIOS files found.\n"); struct retro_message msg = { - "No BIOS file found - add for better compatibility", + "No PlayStation BIOS file found - add for better compatibility", 180 }; environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, (void*)&msg); -- cgit v1.2.3