PARAM.SFO loader improvement

This commit is contained in:
Eladash 2022-04-09 13:13:08 +03:00 committed by Megamouse
parent f8ea50caae
commit c35da0085f
3 changed files with 24 additions and 13 deletions

View file

@ -189,7 +189,7 @@ error_code cellHddGameCheck(ppu_thread& ppu, u32 version, vm::cptr<char> dirName
if (!new_data)
{
const auto cat = psf::get_string(sfo, "CATEGORY", "");
if (cat != "HG"sv && cat != "AM"sv && cat != "AP"sv && cat != "AT"sv && cat != "AV"sv && cat != "BV"sv && cat != "WT"sv)
if (!psf::is_cat_hdd(cat))
{
return { CELL_GAMEDATA_ERROR_BROKEN, fmt::format("CATEGORY='%s'", cat) };
}
@ -594,7 +594,7 @@ error_code cellGameDataCheck(u32 type, vm::cptr<char> dirName, vm::ptr<CellGameC
{
switch (type)
{
case CELL_GAME_GAMETYPE_HDD: return cat != "HG"sv && cat != "AM"sv && cat != "AP"sv && cat != "AT"sv && cat != "AV"sv && cat != "BV"sv && cat != "WT"sv;
case CELL_GAME_GAMETYPE_HDD: return !psf::is_cat_hdd(cat);
case CELL_GAME_GAMETYPE_GAMEDATA: return cat != "GD"sv;
case CELL_GAME_GAMETYPE_DISC: return cat != "DG"sv;
default: fmt::throw_exception("Unreachable");