diff --git a/rpcs3/Emu/Cell/Modules/cellGame.cpp b/rpcs3/Emu/Cell/Modules/cellGame.cpp index 68f1e0a75f..29ad3c1558 100644 --- a/rpcs3/Emu/Cell/Modules/cellGame.cpp +++ b/rpcs3/Emu/Cell/Modules/cellGame.cpp @@ -398,14 +398,16 @@ error_code cellGameContentPermit(vm::ptr contentInfoPa return CELL_GAME_ERROR_FAILURE; } - if (prm->can_create && prm->temp.empty()) + const std::string dir = prm->dir.empty() ? "/dev_bdvd/PS3_GAME"s : "/dev_hdd0/game/" + prm->dir; + + if (prm->can_create && prm->temp.empty() && !fs::is_dir(vfs::get(dir))) { + strcpy_trunc(*contentInfoPath, ""); + strcpy_trunc(*usrdirPath, ""); verify(HERE), fxm::remove(); return CELL_OK; } - const std::string dir = prm->dir.empty() ? "/dev_bdvd/PS3_GAME"s : "/dev_hdd0/game/" + prm->dir; - if (!prm->temp.empty()) { // Make temporary directory persistent