|
|
@ -4,11 +4,12 @@ |
|
|
|
|
|
|
|
|
#include "core/file_sys/bis_factory.h"
|
|
|
#include "core/file_sys/bis_factory.h"
|
|
|
#include "core/file_sys/registered_cache.h"
|
|
|
#include "core/file_sys/registered_cache.h"
|
|
|
|
|
|
#include "fmt/format.h"
|
|
|
|
|
|
|
|
|
namespace FileSys { |
|
|
namespace FileSys { |
|
|
|
|
|
|
|
|
BISFactory::BISFactory(VirtualDir nand_root_) |
|
|
|
|
|
: nand_root(std::move(nand_root_)), |
|
|
|
|
|
|
|
|
BISFactory::BISFactory(VirtualDir nand_root_, VirtualDir load_root_) |
|
|
|
|
|
: nand_root(std::move(nand_root_)), load_root(std::move(load_root_)), |
|
|
sysnand_cache(std::make_shared<RegisteredCache>( |
|
|
sysnand_cache(std::make_shared<RegisteredCache>( |
|
|
GetOrCreateDirectoryRelative(nand_root, "/system/Contents/registered"))), |
|
|
GetOrCreateDirectoryRelative(nand_root, "/system/Contents/registered"))), |
|
|
usrnand_cache(std::make_shared<RegisteredCache>( |
|
|
usrnand_cache(std::make_shared<RegisteredCache>( |
|
|
@ -24,4 +25,11 @@ std::shared_ptr<RegisteredCache> BISFactory::GetUserNANDContents() const { |
|
|
return usrnand_cache; |
|
|
return usrnand_cache; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
VirtualDir BISFactory::GetModificationLoadRoot(u64 title_id) const { |
|
|
|
|
|
// LayeredFS doesn't work on updates and title id-less homebrew
|
|
|
|
|
|
if (title_id == 0 || (title_id & 0x800) > 0) |
|
|
|
|
|
return nullptr; |
|
|
|
|
|
return GetOrCreateDirectoryRelative(load_root, fmt::format("/{:016X}", title_id)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} // namespace FileSys
|
|
|
} // namespace FileSys
|