aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authormeepingsnesroms2017-04-07 09:12:17 -0700
committerGitHub2017-04-07 09:12:17 -0700
commitf69f94c063891f2bfc95f35f524037f30b5bcc64 (patch)
tree4af761aba62b81d1e0b36809d2a8d7a8beed86aa /frontend
parent726da67c8bd8163a9b5a67f36c7e715f021df7df (diff)
parentd9e770393ef9f049a40e34c06b12f0e3435dce46 (diff)
downloadpcsx_rearmed-f69f94c063891f2bfc95f35f524037f30b5bcc64.tar.gz
pcsx_rearmed-f69f94c063891f2bfc95f35f524037f30b5bcc64.tar.bz2
pcsx_rearmed-f69f94c063891f2bfc95f35f524037f30b5bcc64.zip
Merge pull request #1 from libretro/master
update from master
Diffstat (limited to 'frontend')
-rw-r--r--frontend/3ds/sys/mman.h2
-rw-r--r--frontend/libretro.c54
-rw-r--r--frontend/main.c2
3 files changed, 48 insertions, 10 deletions
diff --git a/frontend/3ds/sys/mman.h b/frontend/3ds/sys/mman.h
index e295b89..61dde6c 100644
--- a/frontend/3ds/sys/mman.h
+++ b/frontend/3ds/sys/mman.h
@@ -32,7 +32,7 @@ static inline void* mmap(void *addr, size_t len, int prot, int flags, int fd, of
void* addr_out;
if((prot == (PROT_READ | PROT_WRITE | PROT_EXEC)) &&
- (flags == (MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS)))
+ (flags == (MAP_PRIVATE | MAP_ANONYMOUS)))
{
if(__ctr_svchax)
{
diff --git a/frontend/libretro.c b/frontend/libretro.c
index 06043e9..4d56356 100644
--- a/frontend/libretro.c
+++ b/frontend/libretro.c
@@ -39,8 +39,10 @@
#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;
@@ -55,6 +57,7 @@ static int vout_width, vout_height;
static int vout_doffs_old, vout_fb_dirty;
static bool vout_can_dupe;
static bool duping_enable;
+static bool found_bios;
static int plugins_opened;
static int is_pal_mode;
@@ -457,8 +460,9 @@ void retro_set_environment(retro_environment_t cb)
{ "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_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" },
@@ -774,6 +778,21 @@ void retro_cheat_set(unsigned index, bool enabled, const char *code)
// 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);
@@ -913,6 +932,10 @@ static struct retro_disk_control_callback disk_control = {
#define SLASH '/'
#endif
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
static char base_dir[PATH_MAX];
static bool read_m3u(const char *file)
@@ -1378,9 +1401,9 @@ static void update_variables(bool in_flight)
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;
}
@@ -1416,9 +1439,9 @@ static void update_variables(bool in_flight)
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;
}
@@ -1470,6 +1493,20 @@ static void update_variables(bool in_flight)
dfinput_activate();
}
+ else{
+ //not yet running
+
+ //bootlogo display hack
+ if (found_bios) {
+ var.value = "NULL";
+ var.key = "pcsx_rearmed_show_bios_bootlogo";
+ if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value)
+ {
+ if (strcmp(var.value, "enabled") == 0)
+ rebootemu = 1;
+ }
+ }
+ }
}
static int min(int a, int b)
@@ -1588,7 +1625,8 @@ void retro_init(void)
const char *dir;
char path[256];
int i, ret;
- bool found_bios = false;
+
+ found_bios = false;
#ifdef __MACH__
// magic sauce to make the dynarec work on iOS
diff --git a/frontend/main.c b/frontend/main.c
index 89e96e4..6887dd1 100644
--- a/frontend/main.c
+++ b/frontend/main.c
@@ -772,7 +772,7 @@ int emu_save_state(int slot)
return ret;
ret = SaveState(fname);
-#ifdef HAVE_PRE_ARMV7 /* XXX GPH hack */
+#if defined(HAVE_PRE_ARMV7) && !defined(_3DS) /* XXX GPH hack */
sync();
#endif
SysPrintf("* %s \"%s\" [%d]\n",