Merge pull request #4105 from fr500/master

Firmware checking improvements
This commit is contained in:
Andrés Suárez 2016-11-30 00:31:43 -05:00 committed by GitHub
commit 2ea6c6bcfe
19 changed files with 99 additions and 10 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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,
"回到上级目录。");

View File

@ -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."

View File

@ -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."

View File

@ -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.");

View File

@ -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."

View File

@ -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,

View File

@ -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."

View File

@ -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."

View File

@ -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.");

View File

@ -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."

View File

@ -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.");

View File

@ -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;

View File

@ -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);

View File

@ -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(

View File

@ -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),

View File

@ -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;
}