summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/registered_cache.cpp
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2018-08-12 21:55:44 +0200
committerZach Hilman <zachhilman@gmail.com>2018-08-12 21:55:44 +0200
commit35e4a47be0c4ef25f860d51851d2c02c02dff53d (patch)
treee1ef42bdd5e4e2bdfc7bd3a0abf0e35cbc912dbd /src/core/file_sys/registered_cache.cpp
parentregistration: Add support for force overwrite of installed (diff)
downloadyuzu-35e4a47be0c4ef25f860d51851d2c02c02dff53d.tar
yuzu-35e4a47be0c4ef25f860d51851d2c02c02dff53d.tar.gz
yuzu-35e4a47be0c4ef25f860d51851d2c02c02dff53d.tar.bz2
yuzu-35e4a47be0c4ef25f860d51851d2c02c02dff53d.tar.lz
yuzu-35e4a47be0c4ef25f860d51851d2c02c02dff53d.tar.xz
yuzu-35e4a47be0c4ef25f860d51851d2c02c02dff53d.tar.zst
yuzu-35e4a47be0c4ef25f860d51851d2c02c02dff53d.zip
Diffstat (limited to 'src/core/file_sys/registered_cache.cpp')
-rw-r--r--src/core/file_sys/registered_cache.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/core/file_sys/registered_cache.cpp b/src/core/file_sys/registered_cache.cpp
index e916d5610..a5e935f64 100644
--- a/src/core/file_sys/registered_cache.cpp
+++ b/src/core/file_sys/registered_cache.cpp
@@ -29,8 +29,8 @@ static bool FollowsTwoDigitDirFormat(std::string_view name) {
}
static bool FollowsNcaIdFormat(std::string_view name) {
- static const std::regex nca_id_regex("[0-9A-F]{32}.nca", std::regex_constants::ECMAScript |
- std::regex_constants::icase);
+ static const std::regex nca_id_regex("[0-9A-F]{32}\\.nca", std::regex_constants::ECMAScript |
+ std::regex_constants::icase);
return name.size() == 36 && std::regex_match(name.begin(), name.end(), nca_id_regex);
}
@@ -59,8 +59,10 @@ static std::string GetCNMTName(TitleType type, u64 title_id) {
auto index = static_cast<size_t>(type);
// If the index is after the jump in TitleType, subtract it out.
- if (index >= static_cast<size_t>(TitleType::Application))
- index -= 0x7B;
+ if (index >= static_cast<size_t>(TitleType::Application)) {
+ index -= static_cast<size_t>(TitleType::Application) -
+ static_cast<size_t>(TitleType::FirmwarePackageB);
+ }
return fmt::format("{}_{:016x}.cnmt", TITLE_TYPE_NAMES[index], title_id);
}
@@ -96,7 +98,8 @@ VirtualFile RegisteredCache::OpenFileOrDirectoryConcat(const VirtualDir& dir,
file = files[0];
} else {
std::vector<VirtualFile> concat;
- for (u8 i = 0; i < 0x10; ++i) {
+ // Since the files are a two-digit hex number, max is FF.
+ for (size_t i = 0; i < 0x100; ++i) {
auto next = nca_dir->GetFile(fmt::format("{:02X}", i));
if (next != nullptr) {
concat.push_back(std::move(next));