diff options
| author | lat9nq <22451773+lat9nq@users.noreply.github.com> | 2021-06-14 21:41:25 -0400 |
|---|---|---|
| committer | Morph <39850852+Morph1984@users.noreply.github.com> | 2021-06-28 10:08:07 -0400 |
| commit | 1664c74a6c5a02640bb5f2204b661f94e825d906 (patch) | |
| tree | 76e64c8defb6dc833a1e419aacc7f04370f5354d /src/core/file_sys/sdmc_factory.cpp | |
| parent | bfecd395d49581a575d8cf1d8a22a5305a49a45a (diff) | |
core: Support LayeredFS mod from SDMC directory
Enables loading a mod directly from `[yuzu data
directory]/sdmc/atmosphere/contents/[title_id]`. For use with some
homebrew mod managers.
Diffstat (limited to 'src/core/file_sys/sdmc_factory.cpp')
| -rw-r--r-- | src/core/file_sys/sdmc_factory.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/file_sys/sdmc_factory.cpp b/src/core/file_sys/sdmc_factory.cpp index cb56d8f2d..f4dba8f16 100644 --- a/src/core/file_sys/sdmc_factory.cpp +++ b/src/core/file_sys/sdmc_factory.cpp @@ -27,6 +27,13 @@ ResultVal<VirtualDir> SDMCFactory::Open() const { return MakeResult<VirtualDir>(dir); } +VirtualDir SDMCFactory::GetSDMCModificationLoadRoot(u64 title_id) const { + // LayeredFS doesn't work on updates and title id-less homebrew + if (title_id == 0 || (title_id & 0xFFF) == 0x800) + return nullptr; + return GetOrCreateDirectoryRelative(dir, fmt::format("/atmosphere/contents/{:016X}", title_id)); +} + VirtualDir SDMCFactory::GetSDMCContentDirectory() const { return GetOrCreateDirectoryRelative(dir, "/Nintendo/Contents"); } |
