@@ -709,11 +709,33 @@ static int menu_displaylist_parse_core_info(
709709 if (core_info->firmware_count > 0)
710710 {
711711 core_info_ctx_firmware_t firmware_info;
712- bool update_missing_firmware = false;
713- bool set_missing_firmware = false;
712+ uint8_t flags = content_get_flags();
713+ bool update_missing_firmware = false;
714+ bool set_missing_firmware = false;
715+ bool systemfiles_in_content_dir = settings->bools.systemfiles_in_content_dir;
716+ bool content_is_inited = flags & CONTENT_ST_FLAG_IS_INITED;
717+ char tmp_path[PATH_MAX_LENGTH];
714718
715719 firmware_info.path = core_info->path;
716- firmware_info.directory.system = settings->paths.directory_system;
720+
721+ /* If 'System Files are in Content Directory' is enabled and content is inited,
722+ * adjust the path to check for firmware files */
723+ if (systemfiles_in_content_dir && content_is_inited)
724+ {
725+ size_t len;
726+
727+ strlcpy(tmp_path, path_get(RARCH_PATH_CONTENT), sizeof(tmp_path));
728+ path_basedir(tmp_path);
729+
730+ /* Removes trailing slash, doesn't really matter but it's more consistent with how
731+ * the path is stored and displayed without 'System Files are in Content Directory' */
732+ len = strlen(tmp_path);
733+ if (tmp_path[len - 1] == PATH_DEFAULT_SLASH_C())
734+ tmp_path[len - 1] = '\0';
735+ firmware_info.directory.system = tmp_path;
736+ }
737+ else
738+ firmware_info.directory.system = settings->paths.directory_system;
717739
718740 update_missing_firmware = core_info_list_update_missing_firmware(&firmware_info, &set_missing_firmware);
719741
@@ -740,6 +762,25 @@ static int menu_displaylist_parse_core_info(
740762 MENU_ENUM_LABEL_CORE_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE, 0, 0, NULL))
741763 count++;
742764
765+ /* If 'System Files are in Content Directory' is enabled, let's add a note about it. */
766+ if (systemfiles_in_content_dir)
767+ {
768+ len = strlcpy(tmp,
769+ msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_INFO_FIRMWARE_IN_CONTENT_DIRECTORY),
770+ sizeof(tmp));
771+ if (menu_entries_append(list, tmp, "",
772+ MENU_ENUM_LABEL_CORE_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE, 0, 0, NULL))
773+ count++;
774+ }
775+
776+ /* Show the path that was checked */
777+ len = snprintf(tmp, sizeof(tmp),
778+ msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_INFO_FIRMWARE_PATH),
779+ firmware_info.directory.system);
780+ if (menu_entries_append(list, tmp, "",
781+ MENU_ENUM_LABEL_CORE_INFO_ENTRY, MENU_SETTINGS_CORE_INFO_NONE, 0, 0, NULL))
782+ count++;
783+
743784 len = strlcpy(tmp, "(!) ", sizeof(tmp));
744785
745786 /* FIXME: This looks hacky and probably
0 commit comments