mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 13:20:30 +00:00
It should now properly show supported roms again when no
core info file is found and we have already loaded a core
This commit is contained in:
parent
b303283ac3
commit
8f32801292
@ -695,13 +695,57 @@ static int general_push(menu_displaylist_info_t *info,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PUSH_DETECT_CORE_LIST:
|
case PUSH_DETECT_CORE_LIST:
|
||||||
if (list && !string_is_empty(list->all_ext))
|
|
||||||
strlcpy(info->exts, list->all_ext, sizeof(info->exts));
|
|
||||||
else if (system_menu->valid_extensions)
|
|
||||||
{
|
{
|
||||||
if (!string_is_empty(system_menu->valid_extensions))
|
char newstring[PATH_MAX_LENGTH];
|
||||||
strlcpy(info->exts, system_menu->valid_extensions,
|
union string_list_elem_attr attr;
|
||||||
sizeof(info->exts));
|
struct string_list *str_list2 = string_list_new();
|
||||||
|
|
||||||
|
newstring[0] = '\0';
|
||||||
|
attr.i = 0;
|
||||||
|
|
||||||
|
if (system_menu->valid_extensions)
|
||||||
|
{
|
||||||
|
if (!string_is_empty(system_menu->valid_extensions))
|
||||||
|
{
|
||||||
|
unsigned x;
|
||||||
|
struct string_list *str_list = string_split(system_menu->valid_extensions, "|");
|
||||||
|
|
||||||
|
for (x = 0; x < str_list->size; x++)
|
||||||
|
{
|
||||||
|
const char *elem = str_list->elems[x].data;
|
||||||
|
string_list_append(str_list2, elem, attr);
|
||||||
|
}
|
||||||
|
|
||||||
|
string_list_free(str_list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (menu_entries_current_core_is_no_core())
|
||||||
|
{
|
||||||
|
if (list && !string_is_empty(list->all_ext))
|
||||||
|
{
|
||||||
|
unsigned x;
|
||||||
|
struct string_list *str_list = string_split(list->all_ext, "|");
|
||||||
|
|
||||||
|
for (x = 0; x < str_list->size; x++)
|
||||||
|
{
|
||||||
|
if (!string_list_find_elem(str_list2, str_list->elems[x].data))
|
||||||
|
{
|
||||||
|
const char *elem = str_list->elems[x].data;
|
||||||
|
string_list_append(str_list2, elem, attr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string_list_free(str_list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
string_list_join_concat(newstring, sizeof(newstring),
|
||||||
|
str_list2, "|");
|
||||||
|
|
||||||
|
strlcpy(info->exts, newstring, sizeof(info->exts));
|
||||||
|
|
||||||
|
string_list_free(str_list2);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -258,6 +258,41 @@ int menu_entries_get_title(char *s, size_t len)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int menu_entries_get_core_name(char *s, size_t len)
|
||||||
|
{
|
||||||
|
struct retro_system_info *system = NULL;
|
||||||
|
rarch_system_info_t *info = NULL;
|
||||||
|
const char *core_name = NULL;
|
||||||
|
|
||||||
|
menu_driver_ctl(RARCH_MENU_CTL_SYSTEM_INFO_GET,
|
||||||
|
&system);
|
||||||
|
|
||||||
|
core_name = system->library_name;
|
||||||
|
info = runloop_get_system_info();
|
||||||
|
|
||||||
|
if (string_is_empty(core_name) && info)
|
||||||
|
core_name = info->info.library_name;
|
||||||
|
if (string_is_empty(core_name))
|
||||||
|
core_name = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_CORE);
|
||||||
|
|
||||||
|
snprintf(s, len, "%s", core_name);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool menu_entries_current_core_is_no_core(void)
|
||||||
|
{
|
||||||
|
char corename[255];
|
||||||
|
const char *no_core_str = NULL;
|
||||||
|
|
||||||
|
corename[0] = '\0';
|
||||||
|
|
||||||
|
menu_entries_get_core_name(corename, sizeof(corename));
|
||||||
|
|
||||||
|
no_core_str = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_CORE);
|
||||||
|
|
||||||
|
return string_is_equal(corename, no_core_str);
|
||||||
|
}
|
||||||
|
|
||||||
/* Sets 's' to the name of the current core
|
/* Sets 's' to the name of the current core
|
||||||
* (shown at the top of the UI). */
|
* (shown at the top of the UI). */
|
||||||
|
@ -136,8 +136,12 @@ void menu_entries_get(size_t i, void *data_entry);
|
|||||||
|
|
||||||
int menu_entries_get_title(char *title, size_t title_len);
|
int menu_entries_get_title(char *title, size_t title_len);
|
||||||
|
|
||||||
|
bool menu_entries_current_core_is_no_core(void);
|
||||||
|
|
||||||
int menu_entries_get_core_title(char *title_msg, size_t title_msg_len);
|
int menu_entries_get_core_title(char *title_msg, size_t title_msg_len);
|
||||||
|
|
||||||
|
int menu_entries_get_core_name(char *s, size_t len);
|
||||||
|
|
||||||
file_list_t *menu_entries_get_selection_buf_ptr(size_t idx);
|
file_list_t *menu_entries_get_selection_buf_ptr(size_t idx);
|
||||||
|
|
||||||
file_list_t *menu_entries_get_menu_stack_ptr(size_t idx);
|
file_list_t *menu_entries_get_menu_stack_ptr(size_t idx);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user