diff options
Diffstat (limited to 'src/core/hle')
-rw-r--r-- | src/core/hle/service/fs/archive.cpp | 8 | ||||
-rw-r--r-- | src/core/hle/service/fs/fs_user.cpp | 7 |
2 files changed, 6 insertions, 9 deletions
diff --git a/src/core/hle/service/fs/archive.cpp b/src/core/hle/service/fs/archive.cpp index 632712f2c..6d1a49d92 100644 --- a/src/core/hle/service/fs/archive.cpp +++ b/src/core/hle/service/fs/archive.cpp @@ -257,11 +257,9 @@ ResultVal<ArchiveHandle> OpenArchive(ArchiveIdCode id_code, FileSys::Path& archi LOG_TRACE(Service_FS, "Opening archive with id code 0x%08X", id_code); auto itr = id_code_map.find(id_code); - if (itr == id_code_map.end()) { - // TODO: Verify error against hardware - return ResultCode(ErrorDescription::NotFound, ErrorModule::FS, ErrorSummary::NotFound, - ErrorLevel::Permanent); - } + if (itr == id_code_map.end()) + return ResultCode(ErrorDescription::FS_NotFound, ErrorModule::FS, ErrorSummary::NotFound, + ErrorLevel::Status); CASCADE_RESULT(std::unique_ptr<ArchiveBackend> res, itr->second->Open(archive_path)); diff --git a/src/core/hle/service/fs/fs_user.cpp b/src/core/hle/service/fs/fs_user.cpp index 5a4437123..0538ffc9c 100644 --- a/src/core/hle/service/fs/fs_user.cpp +++ b/src/core/hle/service/fs/fs_user.cpp @@ -133,12 +133,11 @@ static void OpenFileDirectly(Service::Interface* self) { LOG_ERROR(Service_FS, "failed to get a handle for archive archive_id=0x%08X archive_path=%s", static_cast<u32>(archive_id), archive_path.DebugStr().c_str()); - if (static_cast<u32>(archive_id) == 0x2345678A) { - Core::System::GetInstance().SetStatus(Core::System::ResultStatus::ErrorSystemFiles); - return; - } cmd_buff[1] = archive_handle.Code().raw; cmd_buff[3] = 0; + if (static_cast<FS::ArchiveIdCode>(archive_id) == ArchiveIdCode::NCCH) { + Core::System::GetInstance().SetStatus(Core::System::ResultStatus::ErrorSystemFiles); + } return; } SCOPE_EXIT({ CloseArchive(*archive_handle); }); |