diff --git a/src/yuzu/game_list_worker.cpp b/src/yuzu/game_list_worker.cpp
index 1edc60df753517780aa0d28896481864694fb12b..9fd074223b19af23c7d0018f2ce6340c6c16fa5b 100644
--- a/src/yuzu/game_list_worker.cpp
+++ b/src/yuzu/game_list_worker.cpp
@@ -86,6 +86,35 @@ QString FormatPatchNameVersions(const FileSys::PatchManager& patch_manager,
     out.chop(1);
     return out;
 }
+
+QList<QStandardItem*> MakeGameListEntry(const std::string& path, const std::string& name,
+                                        const std::vector<u8>& icon, Loader::AppLoader& loader,
+                                        u64 program_id, const CompatibilityList& compatibility_list,
+                                        const FileSys::PatchManager& patch) {
+    const auto it = FindMatchingCompatibilityEntry(compatibility_list, program_id);
+
+    // The game list uses this as compatibility number for untested games
+    QString compatibility{"99"};
+    if (it != compatibility_list.end()) {
+        compatibility = it->second.first;
+    }
+
+    QList<QStandardItem*> list{
+        new GameListItemPath(
+            FormatGameName(path), icon, QString::fromStdString(name),
+            QString::fromStdString(Loader::GetFileTypeString(loader.GetFileType())), program_id),
+        new GameListItemCompat(compatibility),
+        new GameListItem(QString::fromStdString(Loader::GetFileTypeString(loader.GetFileType()))),
+        new GameListItemSize(FileUtil::GetSize(path)),
+    };
+
+    if (UISettings::values.show_add_ons) {
+        list.insert(
+            2, new GameListItem(FormatPatchNameVersions(patch, loader, loader.IsRomFSUpdatable())));
+    }
+
+    return list;
+}
 } // Anonymous namespace
 
 GameListWorker::GameListWorker(FileSys::VirtualFilesystem vfs, QString dir_path, bool deep_scan,
@@ -116,29 +145,8 @@ void GameListWorker::AddInstalledTitlesToGameList() {
         if (control != nullptr)
             GetMetadataFromControlNCA(patch, *control, icon, name);
 
-        auto it = FindMatchingCompatibilityEntry(compatibility_list, program_id);
-
-        // The game list uses this as compatibility number for untested games
-        QString compatibility("99");
-        if (it != compatibility_list.end())
-            compatibility = it->second.first;
-
-        QList<QStandardItem*> list{
-            new GameListItemPath(
-                FormatGameName(file->GetFullPath()), icon, QString::fromStdString(name),
-                QString::fromStdString(Loader::GetFileTypeString(loader->GetFileType())),
-                program_id),
-            new GameListItemCompat(compatibility),
-            new GameListItem(
-                QString::fromStdString(Loader::GetFileTypeString(loader->GetFileType()))),
-            new GameListItemSize(file->GetSize()),
-        };
-
-        if (UISettings::values.show_add_ons) {
-            list.insert(2, new GameListItem(FormatPatchNameVersions(patch, *loader)));
-        }
-
-        emit EntryReady(list);
+        emit EntryReady(MakeGameListEntry(file->GetFullPath(), name, icon, *loader, program_id,
+                                          compatibility_list, patch));
     }
 
     const auto control_data = cache.ListEntriesFilter(FileSys::TitleType::Application,
@@ -155,14 +163,14 @@ void GameListWorker::AddInstalledTitlesToGameList() {
 void GameListWorker::FillControlMap(const std::string& dir_path) {
     const auto nca_control_callback = [this](u64* num_entries_out, const std::string& directory,
                                              const std::string& virtual_name) -> bool {
-        std::string physical_name = directory + DIR_SEP + virtual_name;
-
-        if (stop_processing)
-            return false; // Breaks the callback loop.
+        if (stop_processing) {
+            // Breaks the callback loop
+            return false;
+        }
 
-        bool is_dir = FileUtil::IsDirectory(physical_name);
-        QFileInfo file_info(physical_name.c_str());
-        if (!is_dir && file_info.suffix().toStdString() == "nca") {
+        const std::string physical_name = directory + DIR_SEP + virtual_name;
+        const QFileInfo file_info(QString::fromStdString(physical_name));
+        if (!file_info.isDir() && file_info.suffix() == QStringLiteral("nca")) {
             auto nca =
                 std::make_unique<FileSys::NCA>(vfs->OpenFile(physical_name, FileSys::Mode::Read));
             if (nca->GetType() == FileSys::NCAContentType::Control) {
@@ -179,12 +187,13 @@ void GameListWorker::FillControlMap(const std::string& dir_path) {
 void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, unsigned int recursion) {
     const auto callback = [this, recursion](u64* num_entries_out, const std::string& directory,
                                             const std::string& virtual_name) -> bool {
-        std::string physical_name = directory + DIR_SEP + virtual_name;
-
-        if (stop_processing)
-            return false; // Breaks the callback loop.
+        if (stop_processing) {
+            // Breaks the callback loop.
+            return false;
+        }
 
-        bool is_dir = FileUtil::IsDirectory(physical_name);
+        const std::string physical_name = directory + DIR_SEP + virtual_name;
+        const bool is_dir = FileUtil::IsDirectory(physical_name);
         if (!is_dir &&
             (HasSupportedFileExtension(physical_name) || IsExtractedNCAMain(physical_name))) {
             std::unique_ptr<Loader::AppLoader> loader =
@@ -214,30 +223,8 @@ void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, unsign
                 }
             }
 
-            auto it = FindMatchingCompatibilityEntry(compatibility_list, program_id);
-
-            // The game list uses this as compatibility number for untested games
-            QString compatibility("99");
-            if (it != compatibility_list.end())
-                compatibility = it->second.first;
-
-            QList<QStandardItem*> list{
-                new GameListItemPath(
-                    FormatGameName(physical_name), icon, QString::fromStdString(name),
-                    QString::fromStdString(Loader::GetFileTypeString(loader->GetFileType())),
-                    program_id),
-                new GameListItemCompat(compatibility),
-                new GameListItem(
-                    QString::fromStdString(Loader::GetFileTypeString(loader->GetFileType()))),
-                new GameListItemSize(FileUtil::GetSize(physical_name)),
-            };
-
-            if (UISettings::values.show_add_ons) {
-                list.insert(2, new GameListItem(FormatPatchNameVersions(
-                                   patch, *loader, loader->IsRomFSUpdatable())));
-            }
-
-            emit EntryReady(std::move(list));
+            emit EntryReady(MakeGameListEntry(physical_name, name, icon, *loader, program_id,
+                                              compatibility_list, patch));
         } else if (is_dir && recursion > 0) {
             watch_list.append(QString::fromStdString(physical_name));
             AddFstEntriesToGameList(physical_name, recursion - 1);