mirror of
https://github.com/libretro/RetroArch
synced 2025-02-26 15:39:55 +00:00
change code to match old info file structure to avoid crashes with old info files
if firmware is numbered from 1, one entry will be missing
This commit is contained in:
parent
08fadaaf8c
commit
dea3f1ca1f
@ -57,6 +57,8 @@ static void core_info_list_resolve_all_firmware(core_info_list_t *core_info_list
|
||||
{
|
||||
size_t i;
|
||||
unsigned c;
|
||||
|
||||
|
||||
for (i = 0; i < core_info_list->count; i++)
|
||||
{
|
||||
core_info_t *info = &core_info_list->list[i];
|
||||
@ -71,7 +73,8 @@ static void core_info_list_resolve_all_firmware(core_info_list_t *core_info_list
|
||||
info->firmware = (core_info_firmware_t*)calloc(count, sizeof(*info->firmware));
|
||||
if (!info->firmware)
|
||||
continue;
|
||||
|
||||
|
||||
|
||||
for (c = 0; c < count; c++)
|
||||
{
|
||||
char path_key[64], desc_key[64];
|
||||
@ -81,6 +84,7 @@ static void core_info_list_resolve_all_firmware(core_info_list_t *core_info_list
|
||||
config_get_string(info->data, path_key, &info->firmware[c].path);
|
||||
config_get_string(info->data, desc_key, &info->firmware[c].desc);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -359,18 +363,17 @@ void core_info_list_update_missing_firmware(core_info_list_t *core_info_list,
|
||||
size_t i;
|
||||
char path[PATH_MAX];
|
||||
|
||||
core_info_firmware_t *firmware = NULL;
|
||||
|
||||
core_info_t *info = find_core_info(core_info_list, core);
|
||||
if (!info)
|
||||
return;
|
||||
|
||||
firmware = info->firmware;
|
||||
|
||||
for (i = 0; i < info->firmware_count; i++)
|
||||
{
|
||||
fill_pathname_join(path, systemdir, info->firmware[i].path, sizeof(path));
|
||||
info->firmware[i].missing = !path_file_exists(path);
|
||||
if(info->firmware[i].path)
|
||||
{
|
||||
fill_pathname_join(path, systemdir, info->firmware[i].path, sizeof(path));
|
||||
info->firmware[i].missing = !path_file_exists(path);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -391,7 +394,7 @@ void core_info_list_get_missing_firmware(core_info_list_t *core_info_list,
|
||||
|
||||
*firmware = info->firmware;
|
||||
|
||||
for (i = 0; i < info->firmware_count; i++)
|
||||
for (i = 1; i < info->firmware_count; i++)
|
||||
{
|
||||
fill_pathname_join(path, systemdir, info->firmware[i].path, sizeof(path));
|
||||
info->firmware[i].missing = !path_file_exists(path);
|
||||
|
@ -1949,8 +1949,11 @@ void menu_populate_entries(void *data, unsigned menu_type)
|
||||
file_list_push(rgui->selection_buf, "Required firmware:", RGUI_SETTINGS_CORE_INFO_NONE, 0);
|
||||
for(i=0;i<rgui->core_info_current.firmware_count;i++)
|
||||
{
|
||||
snprintf(tmp, sizeof(tmp), " Name: %s, %s", rgui->core_info_current.firmware[i].desc ? rgui->core_info_current.firmware[i].desc : "",rgui->core_info_current.firmware[i].missing ? "missing" : "present");
|
||||
file_list_push(rgui->selection_buf, tmp, RGUI_SETTINGS_CORE_INFO_NONE, 0);
|
||||
if(rgui->core_info_current.firmware[i].desc)
|
||||
{
|
||||
snprintf(tmp, sizeof(tmp), " Name: %s, %s", rgui->core_info_current.firmware[i].desc ? rgui->core_info_current.firmware[i].desc : "",rgui->core_info_current.firmware[i].missing ? "missing" : "present");
|
||||
file_list_push(rgui->selection_buf, tmp, RGUI_SETTINGS_CORE_INFO_NONE, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(rgui->core_info_current.notes)
|
||||
|
Loading…
x
Reference in New Issue
Block a user