diff --git a/lang/en-gb.xml b/lang/en-gb.xml index 375378628..f693c6246 100644 --- a/lang/en-gb.xml +++ b/lang/en-gb.xml @@ -203,14 +203,14 @@ depending on its size and your hardware. - Unknown - Nothing - Bootable - Intro - Menu - Ingame - - Ingame + - Playable + Unknown + Nothing + Bootable + Intro + Menu + Ingame - + Ingame + + Playable diff --git a/lang/en.xml b/lang/en.xml index 375378628..f693c6246 100644 --- a/lang/en.xml +++ b/lang/en.xml @@ -203,14 +203,14 @@ depending on its size and your hardware. - Unknown - Nothing - Bootable - Intro - Menu - Ingame - - Ingame + - Playable + Unknown + Nothing + Bootable + Intro + Menu + Ingame - + Ingame + + Playable diff --git a/lang/fr.xml b/lang/fr.xml index 08e71f492..7db12c98e 100644 --- a/lang/fr.xml +++ b/lang/fr.xml @@ -203,14 +203,14 @@ depending on its size and your hardware. - Inconnue - Rien - Amorçable - Intro - Menu - En jeu - - En jeu + - Jouable + Inconnue + Rien + Amorçable + Intro + Menu + En jeu - + En jeu + + Jouable diff --git a/lang/it.xml b/lang/it.xml index a1f96ebcc..022bf9b2a 100644 --- a/lang/it.xml +++ b/lang/it.xml @@ -203,14 +203,14 @@ depending on its size and your hardware. - Unknown - Niente - Avviabile - Intro - Menu - In Gioco - - In Gioco + - Giocabile + Unknown + Niente + Avviabile + Intro + Menu + In Gioco - + In Gioco + + Giocabile diff --git a/lang/ja.xml b/lang/ja.xml index b5539d190..d78a19efd 100644 --- a/lang/ja.xml +++ b/lang/ja.xml @@ -203,14 +203,14 @@ - Unknown - プレイ不可能 - 起動可能 - イントロ - メニュー - プレイ開始 - - プレイ開始 + - プレイ可能 + Unknown + プレイ不可能 + 起動可能 + イントロ + メニュー + プレイ開始 - + プレイ開始 + + プレイ可能 diff --git a/lang/ko.xml b/lang/ko.xml index 79ab844fc..4511f403a 100644 --- a/lang/ko.xml +++ b/lang/ko.xml @@ -203,14 +203,14 @@ depending on its size and your hardware. - Unknown - Nothing - Bootable - Intro - Menu - Ingame - - Ingame + - Playable + Unknown + Nothing + Bootable + Intro + Menu + Ingame - + Ingame + + Playable diff --git a/lang/nl.xml b/lang/nl.xml index 72543e184..d1f4cec93 100644 --- a/lang/nl.xml +++ b/lang/nl.xml @@ -203,14 +203,14 @@ depending on its size and your hardware. - Unknown - Niente - Avviabile - Intro - Menu - In Gioco - - In Gioco + - Giocabile + Unknown + Niente + Avviabile + Intro + Menu + In Gioco - + In Gioco + + Giocabile diff --git a/lang/pl.xml b/lang/pl.xml index 76ab13e51..a4f29a1aa 100644 --- a/lang/pl.xml +++ b/lang/pl.xml @@ -191,14 +191,14 @@ depending on its size and your hardware. - Unknown - Nic - Bootowalny - Intro - Menu - W grze - - W grze + - Grywalne + Unknown + Nic + Bootowalny + Intro + Menu + W grze - + W grze + + Grywalne diff --git a/lang/pt-br.xml b/lang/pt-br.xml index 0518bac78..44cc31358 100644 --- a/lang/pt-br.xml +++ b/lang/pt-br.xml @@ -203,14 +203,14 @@ depending on its size and your hardware. - Unknown - Nada - Inicializável - Intro - Menu - No jogo - - No jogo + - Jogável + Unknown + Nada + Inicializável + Intro + Menu + No jogo - + No jogo + + Jogável diff --git a/lang/ru.xml b/lang/ru.xml index a3e3e32b7..e70aa79f2 100644 --- a/lang/ru.xml +++ b/lang/ru.xml @@ -203,14 +203,14 @@ depending on its size and your hardware. - Unknown - Бесполезно - Загружается - Интро - Меню - В игре - - В игре + - Играбельно + Unknown + Бесполезно + Загружается + Интро + Меню + В игре - + В игре + + Играбельно diff --git a/lang/zh-s.xml b/lang/zh-s.xml index acb7a97bc..ab3e77c54 100644 --- a/lang/zh-s.xml +++ b/lang/zh-s.xml @@ -203,14 +203,14 @@ - 未知 - 无法启动 - 可引导 - 有图像 - 可进入菜单 - 可进入游戏 - - 可进入游戏 + - 完全可玩 + 未知 + 无法启动 + 可引导 + 有图像 + 可进入菜单 + 可进入游戏 - + 可进入游戏 + + 完全可玩 diff --git a/lang/zh-t.xml b/lang/zh-t.xml index 0460db921..77e25575a 100644 --- a/lang/zh-t.xml +++ b/lang/zh-t.xml @@ -203,14 +203,14 @@ - 未知 - 无法啓動 - 可引導 - 有圖像 - 可進入菜單 - 可進入遊戲 - - 可進入遊戲 + - 完全可玩 + 未知 + 无法啓動 + 可引導 + 有圖像 + 可進入菜單 + 可進入遊戲 - + 可進入遊戲 + + 完全可玩 diff --git a/vita3k/compat/src/compat.cpp b/vita3k/compat/src/compat.cpp index 4a760d2e1..7d2ba038b 100644 --- a/vita3k/compat/src/compat.cpp +++ b/vita3k/compat/src/compat.cpp @@ -96,6 +96,10 @@ bool load_compat_app_db(GuiState &gui, EmuEnvState &emuenv) { gui.compat.app_compat_db[title_id] = { issue_id, state, updated_at }; } + // Update compatibility status of all user apps + for (auto &app : gui.app_selector.user_apps) + app.compat = gui.compat.app_compat_db.contains(app.title_id) ? gui.compat.app_compat_db[app.title_id].state : Unknown; + return !gui.compat.app_compat_db.empty(); } @@ -157,7 +161,7 @@ bool update_compat_app_db(GuiState &gui, EmuEnvState &emuenv) { // Check if database is up to date if (db_updated_at == updated_at) { LOG_INFO("Applications compatibility database is up to date."); - return true; + return false; } const auto compat_db_exist = fs::exists(compat_db_path); diff --git a/vita3k/gui/include/gui/functions.h b/vita3k/gui/include/gui/functions.h index 64c1abc0c..16ca72bd3 100644 --- a/vita3k/gui/include/gui/functions.h +++ b/vita3k/gui/include/gui/functions.h @@ -76,6 +76,7 @@ void init_user_app(GuiState &gui, EmuEnvState &emuenv, const std::string app_pat void init_user_apps(GuiState &gui, EmuEnvState &emuenv); bool init_user_background(GuiState &gui, EmuEnvState &emuenv, const std::string &user_id, const std::string &background_path); bool init_user_start_background(GuiState &gui, const std::string &image_path); +void load_and_update_compat_user_apps(GuiState &gui, EmuEnvState &emuenv); void open_live_area(GuiState &gui, EmuEnvState &emuenv, const std::string app_path); void open_manual(GuiState &gui, EmuEnvState &emuenv, const std::string app_path); void open_path(const std::string &path); diff --git a/vita3k/gui/src/app_context_menu.cpp b/vita3k/gui/src/app_context_menu.cpp index b2b61ba75..452067b47 100644 --- a/vita3k/gui/src/app_context_menu.cpp +++ b/vita3k/gui/src/app_context_menu.cpp @@ -17,7 +17,6 @@ #include "private.h" -#include #include #include #include @@ -191,20 +190,8 @@ void update_last_time_app_used(GuiState &gui, EmuEnvState &emuenv, const std::st gui.time_apps[emuenv.io.user_id].push_back({ app, std::time(nullptr), 0 }); get_app_index(gui, app)->last_time = std::time(nullptr); - if (gui.users[emuenv.io.user_id].sort_apps_type == LAST_TIME) { - const auto sorted = gui.app_selector.app_list_sorted[LAST_TIME]; - std::sort(gui.app_selector.user_apps.begin(), gui.app_selector.user_apps.end(), [&sorted](const App &lhs, const App &rhs) { - switch (sorted) { - case ASCENDANT: - return lhs.last_time > rhs.last_time; - case DESCENDANT: - return lhs.last_time < rhs.last_time; - default: break; - } - - return false; - }); - } + if (gui.users[emuenv.io.user_id].sort_apps_type == LAST_TIME) + gui.app_selector.is_app_list_sorted = false; save_time_apps(gui, emuenv); } @@ -382,7 +369,7 @@ void draw_app_context_menu(GuiState &gui, EmuEnvState &emuenv, const std::string } } if (ImGui::MenuItem(lang["update_database"].c_str())) - compat::update_compat_app_db(gui, emuenv); + load_and_update_compat_user_apps(gui, emuenv); ImGui::EndMenu(); } diff --git a/vita3k/gui/src/gui.cpp b/vita3k/gui/src/gui.cpp index 6dfafd7ab..5a7c443a6 100644 --- a/vita3k/gui/src/gui.cpp +++ b/vita3k/gui/src/gui.cpp @@ -23,7 +23,6 @@ #include #include -#include #include #include #include @@ -437,6 +436,7 @@ static bool get_user_apps(GuiState &gui, EmuEnvState &emuenv) { } init_apps_icon(gui, emuenv, gui.app_selector.user_apps); + load_and_update_compat_user_apps(gui, emuenv); } return !gui.app_selector.user_apps.empty(); @@ -491,13 +491,8 @@ void init_home(GuiState &gui, EmuEnvState &emuenv) { init_user_apps(gui, emuenv); } - // Init compatibilty in user apps list - if (gui.compat.compat_db_loaded) { - for (auto &app : gui.app_selector.user_apps) - app.compat = gui.compat.app_compat_db.contains(app.title_id) ? gui.compat.app_compat_db[app.title_id].state : Unknown; - } - init_app_background(gui, emuenv, "NPXS10015"); + const auto is_cmd = emuenv.cfg.run_app_path || emuenv.cfg.content_path; if (!gui.users.empty() && (gui.users.find(emuenv.cfg.user_id) != gui.users.end()) && (is_cmd || emuenv.cfg.auto_user_login)) { init_user(gui, emuenv, emuenv.cfg.user_id); @@ -691,12 +686,6 @@ void init(GuiState &gui, EmuEnvState &emuenv) { update_vita3k_thread.detach(); #endif - std::thread load_and_update_compat_db_thread([&gui, &emuenv]() { - gui.compat.compat_db_loaded = compat::load_compat_app_db(gui, emuenv); - compat::update_compat_app_db(gui, emuenv); - }); - load_and_update_compat_db_thread.detach(); - get_modules_list(gui, emuenv); get_notice_list(emuenv); get_users_list(gui, emuenv); diff --git a/vita3k/gui/src/home_screen.cpp b/vita3k/gui/src/home_screen.cpp index fd5bad991..5a0d828eb 100644 --- a/vita3k/gui/src/home_screen.cpp +++ b/vita3k/gui/src/home_screen.cpp @@ -19,6 +19,7 @@ #include +#include #include #include #include @@ -55,6 +56,7 @@ void init_user_apps(GuiState &gui, EmuEnvState &emuenv) { gui.app_selector.is_app_list_sorted = false; init_last_time_apps(gui, emuenv); + load_and_update_compat_user_apps(gui, emuenv); init_apps_icon(gui, emuenv, gui.app_selector.user_apps); @@ -91,6 +93,16 @@ void init_last_time_apps(GuiState &gui, EmuEnvState &emuenv) { gui.app_selector.is_app_list_sorted = false; } +void load_and_update_compat_user_apps(GuiState &gui, EmuEnvState &emuenv) { + std::thread load_and_update_compat_user_apps_thread([&gui, &emuenv]() { + if (!gui.compat.compat_db_loaded) + gui.compat.compat_db_loaded = compat::load_compat_app_db(gui, emuenv); + if (compat::update_compat_app_db(gui, emuenv) && gui.users[emuenv.io.user_id].sort_apps_type == COMPAT) + gui.app_selector.is_app_list_sorted = false; + }); + load_and_update_compat_user_apps_thread.detach(); +} + std::vector::iterator get_app_open_list_index(GuiState &gui, const std::string app_path) { return std::find(gui.apps_list_opened.begin(), gui.apps_list_opened.end(), app_path); } diff --git a/vita3k/lang/src/lang.cpp b/vita3k/lang/src/lang.cpp index 7e9920ab3..8b04a85a3 100644 --- a/vita3k/lang/src/lang.cpp +++ b/vita3k/lang/src/lang.cpp @@ -157,7 +157,7 @@ void init_lang(LangState &lang, EmuEnvState &emuenv) { const auto states = compatibility_child.child("states"); if (!states.empty()) { for (const auto state : states) { - const auto id = static_cast(state.attribute("id").as_uint()); + const auto id = static_cast(state.attribute("id").as_int()); lang_compatibility.states[id] = state.text().as_string(); } } diff --git a/vita3k/modules/SceCommonDialog/SceCommonDialog.cpp b/vita3k/modules/SceCommonDialog/SceCommonDialog.cpp index ef87cb50d..d6ddc25ec 100644 --- a/vita3k/modules/SceCommonDialog/SceCommonDialog.cpp +++ b/vita3k/modules/SceCommonDialog/SceCommonDialog.cpp @@ -1334,7 +1334,7 @@ EXPORT(int, sceSaveDataDialogInit, const Ptr param) { handle_sys_message(sys_message, emuenv); break; case SCE_SAVEDATA_DIALOG_MODE_PROGRESS_BAR: - // Stub using continue code + // Stub using continue code emuenv.common_dialog.savedata.btn_num = 0; progress_bar = p->progressBarParam.get(emuenv.mem); emuenv.common_dialog.savedata.slot_id[emuenv.common_dialog.savedata.selected_save] = progress_bar->targetSlot.id;