X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Flibretro.c;h=807e683f4c1ed01d1bebbc105a715c5be55e9097;hb=0cae7d24abf2c13dead4295067785d3ba961faa4;hp=98eea829f012f1783e3dcde31e38de5f4e331a27;hpb=6b6e764749041a6b39c195445f53c131fe54dbc3;p=pcsx_rearmed.git diff --git a/frontend/libretro.c b/frontend/libretro.c index 98eea829..807e683f 100644 --- 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; - 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; } @@ -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); + bool is_exe = (strcasestr(info->path, ".exe") != NULL); + int ret; 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(); */ - if (CheckCdrom() == -1) + if (!is_exe && CheckCdrom() == -1) { 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(); - 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);