aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys/registered_cache.cpp
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2021-05-16 00:24:06 -0400
committerMorph <39850852+Morph1984@users.noreply.github.com>2021-05-16 04:13:57 -0400
commitc3bb08ad31a8d3b86c344fce3a1e870034c96e8c (patch)
tree596ef9793d37514343f23f73662327a00a4d002e /src/core/file_sys/registered_cache.cpp
parenta13ffd5201b8c83fd02c4749d32bac573a6fdcc8 (diff)
main: Prevent installing base titles into NAND
Many users have been installing their base titles into NAND instead of adding them into the games list. This prevents users from installing any base titles and warns the user about the action.
Diffstat (limited to 'src/core/file_sys/registered_cache.cpp')
-rw-r--r--src/core/file_sys/registered_cache.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/file_sys/registered_cache.cpp b/src/core/file_sys/registered_cache.cpp
index 1fb66874e4..b0cb659525 100644
--- a/src/core/file_sys/registered_cache.cpp
+++ b/src/core/file_sys/registered_cache.cpp
@@ -12,6 +12,7 @@
#include "common/logging/log.h"
#include "core/crypto/key_manager.h"
#include "core/file_sys/card_image.h"
+#include "core/file_sys/common_funcs.h"
#include "core/file_sys/content_archive.h"
#include "core/file_sys/nca_metadata.h"
#include "core/file_sys/registered_cache.h"
@@ -592,6 +593,12 @@ InstallResult RegisteredCache::InstallEntry(const NSP& nsp, bool overwrite_if_ex
const CNMT cnmt(cnmt_file);
const auto title_id = cnmt.GetTitleID();
+ const auto version = cnmt.GetTitleVersion();
+
+ if (title_id == GetBaseTitleID(title_id) && version == 0) {
+ return InstallResult::ErrorBaseInstall;
+ }
+
const auto result = RemoveExistingEntry(title_id);
// Install Metadata File