notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
misc: accept a path without slash
[pcsx_rearmed.git]
/
frontend
/
libretro.c
diff --git
a/frontend/libretro.c
b/frontend/libretro.c
index
329c5bc
..
3fc594b
100644
(file)
--- a/
frontend/libretro.c
+++ b/
frontend/libretro.c
@@
-870,7
+870,7
@@
void retro_get_system_info(struct retro_system_info *info)
memset(info, 0, sizeof(*info));
info->library_name = "PCSX-ReARMed";
info->library_version = "r23l" GIT_VERSION;
memset(info, 0, sizeof(*info));
info->library_name = "PCSX-ReARMed";
info->library_version = "r23l" GIT_VERSION;
- info->valid_extensions = "bin|cue|img|mdf|pbp|toc|cbn|m3u|chd";
+ info->valid_extensions = "bin|cue|img|mdf|pbp|toc|cbn|m3u|chd
|iso|exe
";
info->need_fullpath = true;
}
info->need_fullpath = true;
}
@@
-1471,6
+1471,8
@@
bool retro_load_game(const struct retro_game_info *info)
size_t i;
unsigned int cd_index = 0;
bool is_m3u = (strcasestr(info->path, ".m3u") != NULL);
size_t i;
unsigned int cd_index = 0;
bool is_m3u = (strcasestr(info->path, ".m3u") != NULL);
+ bool is_exe = (strcasestr(info->path, ".exe") != NULL);
+ int ret;
struct retro_input_descriptor desc[] = {
#define JOYP(port) \
struct retro_input_descriptor desc[] = {
#define JOYP(port) \
@@
-1664,7
+1666,7
@@
bool retro_load_game(const struct retro_game_info *info)
plugin_call_rearmed_cbs();
/* dfinput_activate(); */
plugin_call_rearmed_cbs();
/* dfinput_activate(); */
- if (CheckCdrom() == -1)
+ if (
!is_exe &&
CheckCdrom() == -1)
{
log_cb(RETRO_LOG_INFO, "unsupported/invalid CD image: %s\n", info->path);
return false;
{
log_cb(RETRO_LOG_INFO, "unsupported/invalid CD image: %s\n", info->path);
return false;
@@
-1672,9
+1674,13
@@
bool retro_load_game(const struct retro_game_info *info)
SysReset();
SysReset();
- if (LoadCdrom() == -1)
+ if (is_exe)
+ ret = Load(info->path);
+ else
+ ret = LoadCdrom();
+ if (ret != 0)
{
{
- log_cb(RETRO_LOG_INFO, "could not load
CD\n"
);
+ log_cb(RETRO_LOG_INFO, "could not load
%s (%d)\n", is_exe ? "exe" : "CD", ret
);
return false;
}
emu_on_new_cd(0);
return false;
}
emu_on_new_cd(0);
@@
-2098,7
+2104,7
@@
static void update_variables(bool in_flight)
spu_config.iUseThread = 0;
}
spu_config.iUseThread = 0;
}
- if (HAVE_PTHREAD) {
+ if (
P_
HAVE_PTHREAD) {
var.value = NULL;
var.key = "pcsx_rearmed_async_cd";
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
var.value = NULL;
var.key = "pcsx_rearmed_async_cd";
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
@@
-2819,7
+2825,7
@@
static bool try_use_bios(const char *path)
static bool find_any_bios(const char *dirpath, char *path, size_t path_size)
{
static bool find_any_bios(const char *dirpath, char *path, size_t path_size)
{
- static const char *substrings[] = { "scph", "ps
x
", "openbios" };
+ static const char *substrings[] = { "scph", "ps", "openbios" };
DIR *dir;
struct dirent *ent;
bool ret = false;
DIR *dir;
struct dirent *ent;
bool ret = false;
@@
-3039,7
+3045,7
@@
void retro_init(void)
#ifdef _3DS
vout_buf = linearMemAlign(VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2, 0x80);
#ifdef _3DS
vout_buf = linearMemAlign(VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2, 0x80);
-#elif defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) && HAVE_POSIX_MEMALIGN
+#elif defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L) &&
P_
HAVE_POSIX_MEMALIGN
if (posix_memalign(&vout_buf, 16, VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2) != 0)
vout_buf = (void *) 0;
#else
if (posix_memalign(&vout_buf, 16, VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2) != 0)
vout_buf = (void *) 0;
#else