mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-06-12 05:33:15 +00:00
SaveLib PR related fixes (#1011)
* Safety checks in all SFO readings * SaveData: log backup error and continue & fix possible concurrent file editing * SaveData: Fix issue with old firmwares
This commit is contained in:
parent
edde0a3e7e
commit
581ddfec4d
11 changed files with 163 additions and 74 deletions
|
@ -110,12 +110,16 @@ void PKGViewer::ProcessPKGInfo() {
|
|||
#endif
|
||||
package.Open(path);
|
||||
psf.Open(package.sfo);
|
||||
QString title_name = QString::fromStdString(std::string{*psf.GetString("TITLE")});
|
||||
QString title_id = QString::fromStdString(std::string{*psf.GetString("TITLE_ID")});
|
||||
QString app_type = game_list_util.GetAppType(*psf.GetInteger("APP_TYPE"));
|
||||
QString app_version = QString::fromStdString(std::string{*psf.GetString("APP_VER")});
|
||||
QString title_category = QString::fromStdString(std::string{*psf.GetString("CATEGORY")});
|
||||
QString pkg_size = game_list_util.FormatSize(package.GetPkgHeader().pkg_size);
|
||||
QString title_name =
|
||||
QString::fromStdString(std::string{psf.GetString("TITLE").value_or("Unknown")});
|
||||
QString title_id =
|
||||
QString::fromStdString(std::string{psf.GetString("TITLE_ID").value_or("Unknown")});
|
||||
QString app_type = GameListUtils::GetAppType(psf.GetInteger("APP_TYPE").value_or(0));
|
||||
QString app_version =
|
||||
QString::fromStdString(std::string{psf.GetString("APP_VER").value_or("Unknown")});
|
||||
QString title_category =
|
||||
QString::fromStdString(std::string{psf.GetString("CATEGORY").value_or("Unknown")});
|
||||
QString pkg_size = GameListUtils::FormatSize(package.GetPkgHeader().pkg_size);
|
||||
pkg_content_flag = package.GetPkgHeader().pkg_content_flags;
|
||||
QString flagss = "";
|
||||
for (const auto& flag : package.flagNames) {
|
||||
|
@ -126,11 +130,17 @@ void PKGViewer::ProcessPKGInfo() {
|
|||
}
|
||||
}
|
||||
|
||||
u32 fw_int = *psf.GetInteger("SYSTEM_VER");
|
||||
QString fw = QString::number(fw_int, 16);
|
||||
QString fw_ = fw.length() > 7 ? QString::number(fw_int, 16).left(3).insert(2, '.')
|
||||
QString fw_ = "Unknown";
|
||||
if (const auto fw_int_opt = psf.GetInteger("SYSTEM_VER"); fw_int_opt.has_value()) {
|
||||
const u32 fw_int = *fw_int_opt;
|
||||
if (fw_int == 0) {
|
||||
fw_ = "0.00";
|
||||
} else {
|
||||
QString fw = QString::number(fw_int, 16);
|
||||
fw_ = fw.length() > 7 ? QString::number(fw_int, 16).left(3).insert(2, '.')
|
||||
: fw.left(3).insert(1, '.');
|
||||
fw_ = (fw_int == 0) ? "0.00" : fw_;
|
||||
}
|
||||
}
|
||||
char region = package.GetPkgHeader().pkg_content_id[0];
|
||||
QString pkg_info = "";
|
||||
if (title_category == "gd" && !flagss.contains("PATCH")) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue