#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
#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
static retro_environment_t environ_cb;
static retro_audio_sample_batch_t audio_batch_cb;
static struct retro_rumble_interface rumble;
static retro_environment_t environ_cb;
static retro_audio_sample_batch_t audio_batch_cb;
static struct retro_rumble_interface rumble;
- {
- vout_buf_ptr = (uint16_t*)fb.data;
- }
+ vout_buf_ptr = (uint16_t*)fb.data;
+ else
+ vout_buf_ptr = vout_buf;
+}
+
+static void vout_set_mode(int w, int h, int raw_w, int raw_h, int bpp)
+{
+ vout_width = w;
+ vout_height = h;
{
static const struct retro_variable vars[] = {
{ "pcsx_rearmed_frameskip", "Frameskip; 0|1|2|3" },
{
static const struct retro_variable vars[] = {
{ "pcsx_rearmed_frameskip", "Frameskip; 0|1|2|3" },
{ "pcsx_rearmed_pad1type", "Pad 1 Type; default|none|standard|analog|negcon" },
{ "pcsx_rearmed_pad2type", "Pad 2 Type; default|none|standard|analog|negcon" },
{ "pcsx_rearmed_pad3type", "Pad 3 Type; default|none|standard|analog|negcon" },
{ "pcsx_rearmed_pad1type", "Pad 1 Type; default|none|standard|analog|negcon" },
{ "pcsx_rearmed_pad2type", "Pad 2 Type; default|none|standard|analog|negcon" },
{ "pcsx_rearmed_pad3type", "Pad 3 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" },
{ "pcsx_rearmed_multitap1", "Multitap 1; auto|disabled|enabled" },
{ "pcsx_rearmed_multitap2", "Multitap 2; auto|disabled|enabled" },
{ "pcsx_rearmed_vibration", "Enable Vibration; enabled|disabled" },
+ 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
+ }
+ }
+
- 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);
video_cb((vout_fb_dirty || !vout_can_dupe || !duping_enable) ? vout_buf_ptr : NULL,
vout_width, vout_height, vout_width * 2);
vout_fb_dirty = 0;
video_cb((vout_fb_dirty || !vout_can_dupe || !duping_enable) ? vout_buf_ptr : NULL,
vout_width, vout_height, vout_width * 2);
vout_fb_dirty = 0;
- snprintf(path, path_size, "%s/%s", dirpath, ent->d_name);
+ snprintf(path, path_size, "%s%c%s", dirpath, SLASH, ent->d_name);
- const char *bios[] = { "scph1001", "scph5501", "scph7001" };
+ const char *bios[] = {
+ "SCPH101", "SCPH7001", "SCPH5501", "SCPH1001",
+ "scph101", "scph7001", "scph5501", "scph1001"
+ };
snprintf(Config.BiosDir, sizeof(Config.BiosDir), "%s", dir);
for (i = 0; i < sizeof(bios) / sizeof(bios[0]); i++) {
snprintf(Config.BiosDir, sizeof(Config.BiosDir), "%s", dir);
for (i = 0; i < sizeof(bios) / sizeof(bios[0]); i++) {
- snprintf(path, sizeof(path), "%s/%s.bin", dir, bios[i]);
+ snprintf(path, sizeof(path), "%s%c%s.bin", dir, SLASH, bios[i]);