From da0a293f38165f29d83c763e5f98cdbc52f57bf9 Mon Sep 17 00:00:00 2001 From: Adubbz Date: Sat, 10 Aug 2019 17:01:24 +1000 Subject: [PATCH] Fixed 1.0.0 booting --- .../ncm/source/impl/ncm_content_manager.cpp | 56 +++++++++++-------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/stratosphere/ncm/source/impl/ncm_content_manager.cpp b/stratosphere/ncm/source/impl/ncm_content_manager.cpp index a9af78d63..bce0f1f5a 100644 --- a/stratosphere/ncm/source/impl/ncm_content_manager.cpp +++ b/stratosphere/ncm/source/impl/ncm_content_manager.cpp @@ -347,21 +347,27 @@ namespace sts::ncm::impl { auto content_storage = entry->content_storage; if (!content_storage) { - switch (storage_id) { - case StorageId::GameCard: - return ResultNcmGameCardContentStorageNotActive; + /* 1.0.0 activates content storages as soon as they are opened. */ + if (GetRuntimeFirmwareVersion() == FirmwareVersion_100) { + R_TRY(ActivateContentStorage(storage_id)); + content_storage = entry->content_storage; + } else { + switch (storage_id) { + case StorageId::GameCard: + return ResultNcmGameCardContentStorageNotActive; - case StorageId::NandSystem: - return ResultNcmNandSystemContentStorageNotActive; + case StorageId::NandSystem: + return ResultNcmNandSystemContentStorageNotActive; - case StorageId::NandUser: - return ResultNcmNandUserContentStorageNotActive; + case StorageId::NandUser: + return ResultNcmNandUserContentStorageNotActive; - case StorageId::SdCard: - return ResultNcmSdCardContentStorageNotActive; + case StorageId::SdCard: + return ResultNcmSdCardContentStorageNotActive; - default: - return ResultNcmUnknownContentStorageNotActive; + default: + return ResultNcmUnknownContentStorageNotActive; + } } } @@ -563,21 +569,27 @@ namespace sts::ncm::impl { std::shared_ptr content_meta_db = entry->content_meta_database; if (!content_meta_db) { - switch (storage_id) { - case StorageId::GameCard: - return ResultNcmGameCardContentMetaDatabaseNotActive; + /* 1.0.0 activates content meta dbs as soon as they are opened. */ + if (GetRuntimeFirmwareVersion() == FirmwareVersion_100) { + R_TRY(ActivateContentMetaDatabase(storage_id)); + content_meta_db = entry->content_meta_database; + } else { + switch (storage_id) { + case StorageId::GameCard: + return ResultNcmGameCardContentMetaDatabaseNotActive; - case StorageId::NandSystem: - return ResultNcmNandSystemContentMetaDatabaseNotActive; + case StorageId::NandSystem: + return ResultNcmNandSystemContentMetaDatabaseNotActive; - case StorageId::NandUser: - return ResultNcmNandUserContentMetaDatabaseNotActive; + case StorageId::NandUser: + return ResultNcmNandUserContentMetaDatabaseNotActive; - case StorageId::SdCard: - return ResultNcmSdCardContentMetaDatabaseNotActive; + case StorageId::SdCard: + return ResultNcmSdCardContentMetaDatabaseNotActive; - default: - return ResultNcmUnknownContentMetaDatabaseNotActive; + default: + return ResultNcmUnknownContentMetaDatabaseNotActive; + } } }