diff --git a/rpcs3/Emu/Cell/Modules/cellGame.cpp b/rpcs3/Emu/Cell/Modules/cellGame.cpp index 6568de7f8a..9c867eb830 100644 --- a/rpcs3/Emu/Cell/Modules/cellGame.cpp +++ b/rpcs3/Emu/Cell/Modules/cellGame.cpp @@ -93,9 +93,17 @@ struct content_permission final ~content_permission() { - if (is_temporary) + try { - fs::remove_all(vfs::get("/dev_hdd1/game/" + dir)); + if (is_temporary) + { + fs::remove_all(vfs::get("/dev_hdd1/game/" + dir)); + } + } + catch (...) + { + cellGame.fatal("Failed to clean directory '/dev_hdd1/game/%s'", dir); + catch_all_exceptions(); } } }; @@ -345,7 +353,7 @@ error_code cellGameContentPermit(vm::ptr contentInfoPa return CELL_GAME_ERROR_PARAM; } - const auto prm = fxm::withdraw(); + const auto prm = fxm::get(); if (!prm) { @@ -382,6 +390,7 @@ error_code cellGameContentPermit(vm::ptr contentInfoPa strcpy_trunc(*contentInfoPath, dir); strcpy_trunc(*usrdirPath, dir + "/USRDIR"); + verify(HERE), fxm::remove(); return CELL_OK; } diff --git a/rpcs3/Emu/Cell/lv2/sys_fs.cpp b/rpcs3/Emu/Cell/lv2/sys_fs.cpp index e283e974fd..f9a47f7a95 100644 --- a/rpcs3/Emu/Cell/lv2/sys_fs.cpp +++ b/rpcs3/Emu/Cell/lv2/sys_fs.cpp @@ -254,6 +254,7 @@ error_code sys_fs_opendir(vm::cptr path, vm::ptr fd) } *fd = _dir->id; + sys_fs.notice("sys_fs_opendir(%s) -> lv2_fs_id %d", path, _dir->id); return CELL_OK; } @@ -288,7 +289,7 @@ error_code sys_fs_readdir(u32 fd, vm::ptr dir, vm::ptr nread) error_code sys_fs_closedir(u32 fd) { - sys_fs.trace("sys_fs_closedir(fd=%d)", fd); + sys_fs.warning("sys_fs_closedir(fd=%d)", fd); const auto directory = idm::get(fd);