mirror of
https://github.com/CTCaer/RetroArch.git
synced 2024-12-23 03:10:14 +00:00
Merge pull request #4105 from fr500/master
Firmware checking improvements
This commit is contained in:
commit
2ea6c6bcfe
@ -437,7 +437,7 @@ static const bool load_dummy_on_core_shutdown = false;
|
||||
#else
|
||||
static const bool load_dummy_on_core_shutdown = true;
|
||||
#endif
|
||||
|
||||
static const bool check_firmware_before_loading = true;
|
||||
/* Forcibly disable composition.
|
||||
* Only valid on Windows Vista/7/8 for now. */
|
||||
static const bool disable_composition = false;
|
||||
|
@ -699,6 +699,7 @@ static int populate_settings_bool(settings_t *settings, struct config_bool_setti
|
||||
SETTING_BOOL("input_descriptor_label_show", &settings->input.input_descriptor_label_show, true, input_descriptor_label_show, false);
|
||||
SETTING_BOOL("input_descriptor_hide_unbound", &settings->input.input_descriptor_hide_unbound, true, input_descriptor_hide_unbound, false);
|
||||
SETTING_BOOL("load_dummy_on_core_shutdown", &settings->load_dummy_on_core_shutdown, true, load_dummy_on_core_shutdown, false);
|
||||
SETTING_BOOL("check_firmware_before_loading", &settings->check_firmware_before_loading, true, check_firmware_before_loading, false);
|
||||
SETTING_BOOL("builtin_mediaplayer_enable", &settings->multimedia.builtin_mediaplayer_enable, false, false /* TODO */, false);
|
||||
SETTING_BOOL("builtin_imageviewer_enable", &settings->multimedia.builtin_imageviewer_enable, true, true, false);
|
||||
SETTING_BOOL("fps_show", &settings->fps_show, true, false, false);
|
||||
|
@ -440,6 +440,7 @@ typedef struct settings
|
||||
#endif
|
||||
bool fps_show;
|
||||
bool load_dummy_on_core_shutdown;
|
||||
bool check_firmware_before_loading;
|
||||
|
||||
bool game_specific_options;
|
||||
bool auto_overrides_enable;
|
||||
|
@ -346,6 +346,16 @@ int menu_hash_get_help_chs_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
"inside the menu and RetroArch won't \n"
|
||||
"shutdown.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE:
|
||||
snprintf(s, len,
|
||||
"Some cores might need \n"
|
||||
"firmware or bios files. \n"
|
||||
" \n"
|
||||
"If this option is disabled, \n"
|
||||
"it will try to load even if such \n"
|
||||
"firmware is missing. \n"
|
||||
"down. \n");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_PARENT_DIRECTORY:
|
||||
snprintf(s, len,
|
||||
"回到上级目录。");
|
||||
|
@ -2152,6 +2152,10 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_DUMMY_ON_CORE_SHUTDOWN,
|
||||
"Some cores might have a shutdown feature. If enabled, it will prevent the core from shutting RetroArch down. Instead, it loads a dummy core."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHECK_FOR_MISSING_FIRMWARE,
|
||||
"Check if all the required firmware is present before attempting to load content."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE,
|
||||
"Vertical refresh rate of your monitor. Used to calculate a suitable audio input rate. NOTE: This will be ignored if 'Threaded Video' is enabled."
|
||||
|
@ -2118,6 +2118,10 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_DUMMY_ON_CORE_SHUTDOWN,
|
||||
"Some cores might have a shutdown feature. If enabled, it will prevent the core from shutting RetroArch down. Instead, it loads a dummy core."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHECK_FOR_MISSING_FIRMWARE,
|
||||
"Check if all the required firmware is present before attempting to load content."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE,
|
||||
"Vertical refresh rate of your monitor. Used to calculate a suitable audio input rate. NOTE: This will be ignored if 'Threaded Video' is enabled."
|
||||
|
@ -354,6 +354,16 @@ int menu_hash_get_help_jp_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
"inside the menu and RetroArch won't \n"
|
||||
"shutdown.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE:
|
||||
snprintf(s, len,
|
||||
"Some cores might need \n"
|
||||
"firmware or bios files. \n"
|
||||
" \n"
|
||||
"If this option is disabled, \n"
|
||||
"it will try to load even if such \n"
|
||||
"firmware is missing. \n"
|
||||
"down. \n");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_PARENT_DIRECTORY:
|
||||
snprintf(s, len,
|
||||
"Go back to the parent directory.");
|
||||
|
@ -2144,6 +2144,10 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_DUMMY_ON_CORE_SHUTDOWN,
|
||||
"Some cores might have a shutdown feature. If enabled, it will prevent the core from shutting RetroArch down. Instead, it loads a dummy core."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHECK_FOR_MISSING_FIRMWARE,
|
||||
"Check if all the required firmware is present before attempting to load content."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE,
|
||||
"Vertical refresh rate of your monitor. Used to calculate a suitable audio input rate. NOTE: This will be ignored if 'Threaded Video' is enabled."
|
||||
|
@ -328,6 +328,8 @@ MSG_HASH(MENU_ENUM_LABEL_DPI_OVERRIDE_VALUE,
|
||||
"dpi_override_value")
|
||||
MSG_HASH(MENU_ENUM_LABEL_DRIVER_SETTINGS,
|
||||
"driver_settings")
|
||||
MSG_HASH(MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE,
|
||||
"check_for_missing_firmware")
|
||||
MSG_HASH(MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN,
|
||||
"dummy_on_core_shutdown")
|
||||
MSG_HASH(MENU_ENUM_LABEL_DYNAMIC_WALLPAPER,
|
||||
|
@ -2152,6 +2152,10 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_DUMMY_ON_CORE_SHUTDOWN,
|
||||
"Some cores might have a shutdown feature. If enabled, it will prevent the core from shutting RetroArch down. Instead, it loads a dummy core."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHECK_FOR_MISSING_FIRMWARE,
|
||||
"Check if all the required firmware is present before attempting to load content."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE,
|
||||
"Vertical refresh rate of your monitor. Used to calculate a suitable audio input rate. NOTE: This will be ignored if 'Threaded Video' is enabled."
|
||||
|
@ -2146,6 +2146,10 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_DUMMY_ON_CORE_SHUTDOWN,
|
||||
"Some cores might have a shutdown feature. If enabled, it will prevent the core from shutting RetroArch down. Instead, it loads a dummy core."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHECK_FOR_MISSING_FIRMWARE,
|
||||
"Check if all the required firmware is present before attempting to load content."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE,
|
||||
"Vertical refresh rate of your monitor. Used to calculate a suitable audio input rate. NOTE: This will be ignored if 'Threaded Video' is enabled."
|
||||
|
@ -355,6 +355,16 @@ int menu_hash_get_help_us_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
"inside the menu and RetroArch won't \n"
|
||||
"shutdown.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE:
|
||||
snprintf(s, len,
|
||||
"Some cores might need \n"
|
||||
"firmware or bios files. \n"
|
||||
" \n"
|
||||
"If this option is disabled, \n"
|
||||
"it will try to load even if such \n"
|
||||
"firmware is missing. \n"
|
||||
"down. \n");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_PARENT_DIRECTORY:
|
||||
snprintf(s, len,
|
||||
"Go back to the parent directory.");
|
||||
|
@ -522,6 +522,8 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_DRIVER_SETTINGS,
|
||||
"Driver")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN,
|
||||
"Load Dummy on Core Shutdown")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_CHECK_FOR_MISSING_FIRMWARE,
|
||||
"Check for Missing Firmware Before Loading")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_DYNAMIC_WALLPAPER,
|
||||
"Dynamic Wallpaper")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_DYNAMIC_WALLPAPERS_DIRECTORY,
|
||||
@ -2152,6 +2154,10 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_DUMMY_ON_CORE_SHUTDOWN,
|
||||
"Some cores might have a shutdown feature. If enabled, it will prevent the core from shutting RetroArch down. Instead, it loads a dummy core."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHECK_FOR_MISSING_FIRMWARE,
|
||||
"Check if all the required firmware is present before attempting to load content."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE,
|
||||
"Vertical refresh rate of your monitor. Used to calculate a suitable audio input rate. NOTE: This will be ignored if 'Threaded Video' is enabled."
|
||||
|
@ -355,6 +355,16 @@ int menu_hash_get_help_vn_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
"inside the menu and RetroArch won't \n"
|
||||
"shutdown.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE:
|
||||
snprintf(s, len,
|
||||
"Some cores might need \n"
|
||||
"firmware or bios files. \n"
|
||||
" \n"
|
||||
"If this option is disabled, \n"
|
||||
"it will try to load even if such \n"
|
||||
"firmware is missing. \n"
|
||||
"down. \n");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_PARENT_DIRECTORY:
|
||||
snprintf(s, len,
|
||||
"Go back to the parent thư mục.");
|
||||
|
@ -101,6 +101,7 @@ default_sublabel_macro(action_bind_sublabel_input_duty_cycle, MENU_
|
||||
default_sublabel_macro(action_bind_sublabel_video_vertical_sync, MENU_ENUM_SUBLABEL_VIDEO_VSYNC)
|
||||
default_sublabel_macro(action_bind_sublabel_core_allow_rotate, MENU_ENUM_SUBLABEL_VIDEO_ALLOW_ROTATE)
|
||||
default_sublabel_macro(action_bind_sublabel_dummy_on_core_shutdown, MENU_ENUM_SUBLABEL_DUMMY_ON_CORE_SHUTDOWN)
|
||||
default_sublabel_macro(action_bind_sublabel_dummy_check_missing_firmware, MENU_ENUM_SUBLABEL_CHECK_FOR_MISSING_FIRMWARE)
|
||||
default_sublabel_macro(action_bind_sublabel_video_refresh_rate, MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE)
|
||||
default_sublabel_macro(action_bind_sublabel_audio_enable, MENU_ENUM_SUBLABEL_AUDIO_ENABLE)
|
||||
default_sublabel_macro(action_bind_sublabel_audio_max_timing_skew, MENU_ENUM_SUBLABEL_AUDIO_MAX_TIMING_SKEW)
|
||||
@ -157,6 +158,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_dummy_on_core_shutdown);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_dummy_check_missing_firmware);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_core_allow_rotate);
|
||||
break;
|
||||
|
@ -5243,6 +5243,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
|
@ -2712,7 +2712,7 @@ static bool setting_append_list(
|
||||
case SETTINGS_LIST_CORE:
|
||||
{
|
||||
unsigned i;
|
||||
struct bool_entry bool_entries[4];
|
||||
struct bool_entry bool_entries[5];
|
||||
|
||||
START_GROUP(list, list_info, &group_info,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_SETTINGS), parent_group);
|
||||
@ -2743,12 +2743,18 @@ static bool setting_append_list(
|
||||
bool_entries[2].default_value = true;
|
||||
bool_entries[2].flags = SD_FLAG_ADVANCED;
|
||||
|
||||
bool_entries[3].target = &settings->video.allow_rotate;
|
||||
bool_entries[3].name_enum_idx = MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE;
|
||||
bool_entries[3].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_VIDEO_ALLOW_ROTATE;
|
||||
bool_entries[3].default_value = allow_rotate;
|
||||
bool_entries[3].target = &settings->check_firmware_before_loading;
|
||||
bool_entries[3].name_enum_idx = MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE;
|
||||
bool_entries[3].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_CHECK_FOR_MISSING_FIRMWARE;
|
||||
bool_entries[3].default_value = true;
|
||||
bool_entries[3].flags = SD_FLAG_ADVANCED;
|
||||
|
||||
bool_entries[4].target = &settings->video.allow_rotate;
|
||||
bool_entries[4].name_enum_idx = MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE;
|
||||
bool_entries[4].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_VIDEO_ALLOW_ROTATE;
|
||||
bool_entries[4].default_value = allow_rotate;
|
||||
bool_entries[4].flags = SD_FLAG_ADVANCED;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(bool_entries); i++)
|
||||
{
|
||||
CONFIG_BOOL(
|
||||
|
@ -1144,6 +1144,7 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_NETWORK_REMOTE_USER_LAST_ENABLE = MENU_ENUM_LABEL_NETWORK_REMOTE_USER_1_ENABLE + MAX_USERS,
|
||||
|
||||
MENU_LABEL(DUMMY_ON_CORE_SHUTDOWN),
|
||||
MENU_LABEL(CHECK_FOR_MISSING_FIRMWARE),
|
||||
|
||||
MENU_LABEL(DETECT_CORE_LIST_OK),
|
||||
MENU_LABEL(DETECT_CORE_LIST),
|
||||
|
@ -1037,6 +1037,7 @@ bool task_push_content_load_default(
|
||||
void *user_data)
|
||||
{
|
||||
bool loading_from_menu = false;
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!content_info)
|
||||
return false;
|
||||
@ -1220,11 +1221,13 @@ bool task_push_content_load_default(
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/* Load content */
|
||||
switch (mode)
|
||||
{
|
||||
case CONTENT_MODE_LOAD_NOTHING_WITH_DUMMY_CORE:
|
||||
if (!task_load_content(content_info, loading_from_menu, mode))
|
||||
goto error;
|
||||
break;
|
||||
case CONTENT_MODE_LOAD_FROM_CLI:
|
||||
#if defined(HAVE_NETWORKING) && defined(HAVE_NETWORKGAMEPAD)
|
||||
case CONTENT_MODE_LOAD_NOTHING_WITH_NET_RETROPAD_CORE_FROM_MENU:
|
||||
@ -1242,8 +1245,10 @@ bool task_push_content_load_default(
|
||||
case CONTENT_MODE_LOAD_CONTENT_WITH_FFMPEG_CORE_FROM_MENU:
|
||||
case CONTENT_MODE_LOAD_CONTENT_WITH_IMAGEVIEWER_CORE_FROM_MENU:
|
||||
update_firmware_status();
|
||||
if(runloop_ctl(RUNLOOP_CTL_IS_MISSING_BIOS, NULL))
|
||||
goto skip;
|
||||
if(runloop_ctl(RUNLOOP_CTL_IS_MISSING_BIOS, NULL) &&
|
||||
settings->check_firmware_before_loading)
|
||||
goto skip;
|
||||
|
||||
if (!task_load_content(content_info, loading_from_menu, mode))
|
||||
goto error;
|
||||
break;
|
||||
@ -1295,7 +1300,7 @@ error:
|
||||
|
||||
skip:
|
||||
runloop_msg_queue_push(msg_hash_to_str(MSG_FIRMWARE), 100, 500, true);
|
||||
RARCH_LOG(msg_hash_to_str(MSG_FIRMWARE));
|
||||
RARCH_LOG("Load content blocked. Reason: %s\n", msg_hash_to_str(MSG_FIRMWARE));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user