diff --git a/core_impl.c b/core_impl.c index feeb47b185..6a163c3759 100644 --- a/core_impl.c +++ b/core_impl.c @@ -36,6 +36,7 @@ #endif #include "core.h" +#include "content.h" #include "dynamic.h" #include "msg_hash.h" #include "managers/state_manager.h" @@ -285,8 +286,10 @@ bool core_load_game(retro_ctx_load_content_info_t *load_info) load_info->special->id, load_info->info, load_info->content->size); else if (load_info && !string_is_empty(load_info->content->elems[0].data)) core_game_loaded = core.retro_load_game(load_info->info); - else + else if (content_does_not_need_content()) core_game_loaded = core.retro_load_game(NULL); + else + core_game_loaded = false; return core_game_loaded; } diff --git a/retroarch.c b/retroarch.c index 4c4da02cfb..6d6614a1e8 100644 --- a/retroarch.c +++ b/retroarch.c @@ -886,8 +886,6 @@ static void retroarch_parse_input(int argc, char *argv[]) retroarch_set_current_core_type(CORE_TYPE_PLAIN, false); path_set_special(argv + optind, argc - optind); } - else - content_set_does_not_need_content(); /* Copy SRM/state dirs used, so they can be reused on reentrancy. */ if (retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_SAVE_PATH, NULL) && diff --git a/tasks/task_content.c b/tasks/task_content.c index f7083965fa..98d1b3cec3 100644 --- a/tasks/task_content.c +++ b/tasks/task_content.c @@ -919,6 +919,7 @@ error: *error_string = strdup(msg); } } + if (string_is_empty(name)) *error_string = strdup("This core requires a content file.\n"); return false; } @@ -1276,6 +1277,7 @@ error: if (error_string) { runloop_msg_queue_push(error_string, 2, 90, true); + RARCH_ERR(error_string); free(error_string); }