From 3107f37864c87d5ec517079688d915c798cc491c Mon Sep 17 00:00:00 2001 From: Nekotekina Date: Sat, 10 Apr 2021 00:43:08 +0300 Subject: [PATCH] Fix psf::load error for error::stream --- rpcs3/Emu/Cell/Modules/cellGame.cpp | 4 ++-- rpcs3/Loader/PSF.cpp | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/rpcs3/Emu/Cell/Modules/cellGame.cpp b/rpcs3/Emu/Cell/Modules/cellGame.cpp index 3dec56f7c5..1d06177a34 100644 --- a/rpcs3/Emu/Cell/Modules/cellGame.cpp +++ b/rpcs3/Emu/Cell/Modules/cellGame.cpp @@ -602,7 +602,7 @@ error_code cellGameDataCheck(u32 type, vm::cptr dirName, vm::ptr dirName) if (psf::get_string(sfo, "CATEGORY") != "GD" && psf_error != psf::error::stream) { - return CELL_GAME_ERROR_NOTSUPPORTED; + return {CELL_GAME_ERROR_NOTSUPPORTED, psf_error}; } if (sfo.empty()) diff --git a/rpcs3/Loader/PSF.cpp b/rpcs3/Loader/PSF.cpp index 5cfd1e9961..cd8943479e 100644 --- a/rpcs3/Loader/PSF.cpp +++ b/rpcs3/Loader/PSF.cpp @@ -122,9 +122,11 @@ namespace psf load_result_t load(const fs::file& stream) { -#define PSF_CHECK(cond, err) if (!static_cast(cond)) { if (error::err != error::stream) psf_log.error("Error loading PSF: %s%s", (errc = error::err), \ +#define PSF_CHECK(cond, err) if (!static_cast(cond)) { if (error::err != error::stream) psf_log.error("Error loading PSF: %s%s", error::err, \ src_loc{__builtin_LINE(), __builtin_COLUMN(), __builtin_FILE(), __builtin_FUNCTION()}); \ - return result.clear(), pair; } + result.clear(); \ + errc = error::err; \ + return pair; } load_result_t pair{}; auto& [result, errc] = pair;