#define PORTS_NUMBER 8
+#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
-int rebootemu = 0;
+static int rebootemu = 0;
static retro_video_refresh_t video_cb;
static retro_input_poll_t input_poll_cb;
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)
{ "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" },
+ { "pcsx_rearmed_dithering", "Enable Dithering; enabled|disabled" },
#ifndef DRC_DISABLE
{ "pcsx_rearmed_drc", "Dynamic recompiler; enabled|disabled" },
#endif
{ "pcsx_rearmed_neon_enhancement_enable", "Enhanced resolution (slow); disabled|enabled" },
{ "pcsx_rearmed_neon_enhancement_no_main", "Enhanced resolution speed hack; disabled|enabled" },
#endif
- { "pcsx_rearmed_duping_enable", "Frame duping; on|off" },
- { "pcsx_rearmed_show_bios_bootlogo", "Show Bios Bootlogo; on|off" },
- { "pcsx_rearmed_spu_reverb", "Sound: Reverb; on|off" },
+ { "pcsx_rearmed_duping_enable", "Frame duping; enabled|disabled" },
+ { "pcsx_rearmed_show_bios_bootlogo", "Show Bios Bootlogo(Breaks some games); disabled|enabled" },
+ { "pcsx_rearmed_spu_reverb", "Sound: Reverb; enabled|disabled" },
{ "pcsx_rearmed_spu_interpolation", "Sound: Interpolation; simple|gaussian|cubic|off" },
{ "pcsx_rearmed_pe2_fix", "Parasite Eve 2/Vandal Hearts 1/2 Fix; disabled|enabled" },
{ "pcsx_rearmed_inuyasha_fix", "InuYasha Sengoku Battle Fix; disabled|enabled" },
// cheat funcs are destructive, need a copy..
strncpy(buf, code, sizeof(buf));
buf[sizeof(buf) - 1] = 0;
+
+ //Prepare buffered cheat for PCSX's AddCheat fucntion.
+ int cursor=0;
+ int nonhexdec=0;
+ while (buf[cursor]){
+ if (!(ISHEXDEC)){
+ if (++nonhexdec%2){
+ buf[cursor]=' ';
+ } else {
+ buf[cursor]='\n';
+ }
+ }
+ cursor++;
+ }
+
if (index < NumCheats)
ret = EditCheat(index, "", buf);
#define SLASH '/'
#endif
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
static char base_dir[PATH_MAX];
static bool read_m3u(const char *file)
bool retro_load_game(const struct retro_game_info *info)
{
- if (!info)
- return false;
-
size_t i;
bool is_m3u = (strcasestr(info->path, ".m3u") != NULL);
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;
+ }
+
+ 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";
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
{
- if (strcmp(var.value, "off") == 0)
+ if (strcmp(var.value, "disabled") == 0)
duping_enable = false;
- else if (strcmp(var.value, "on") == 0)
+ else if (strcmp(var.value, "enabled") == 0)
duping_enable = true;
}
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
{
- if (strcmp(var.value, "off") == 0)
+ if (strcmp(var.value, "disabled") == 0)
spu_config.iUseReverb = false;
- else if (strcmp(var.value, "on") == 0)
+ else if (strcmp(var.value, "enabled") == 0)
spu_config.iUseReverb = true;
}
var.key = "pcsx_rearmed_show_bios_bootlogo";
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
{
- if (strcmp(var.value, "on") == 0)
+ if (strcmp(var.value, "enabled") == 0)
rebootemu = 1;
}
}