| | |
| | |
| |
|
| | #pragma once |
| |
|
| | #include "common/common_types.h" |
| | #include "core/loader/loader.h" |
| |
|
| | namespace Core { |
| | class System; |
| | } |
| |
|
| | namespace FileSys { |
| | class NCA; |
| | } |
| |
|
| | namespace Loader { |
| |
|
| | class AppLoader_DeconstructedRomDirectory; |
| |
|
| | |
| | class AppLoader_NCA final : public AppLoader { |
| | public: |
| | explicit AppLoader_NCA(FileSys::VirtualFile file_); |
| | ~AppLoader_NCA() override; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | static FileType IdentifyType(const FileSys::VirtualFile& nca_file); |
| |
|
| | FileType GetFileType() const override { |
| | return IdentifyType(file); |
| | } |
| |
|
| | LoadResult Load(Kernel::KProcess& process, Core::System& system) override; |
| |
|
| | ResultStatus VerifyIntegrity(std::function<bool(size_t, size_t)> progress_callback) override; |
| |
|
| | ResultStatus ReadRomFS(FileSys::VirtualFile& dir) override; |
| | ResultStatus ReadProgramId(u64& out_program_id) override; |
| |
|
| | ResultStatus ReadBanner(std::vector<u8>& buffer) override; |
| | ResultStatus ReadLogo(std::vector<u8>& buffer) override; |
| |
|
| | ResultStatus ReadNSOModules(Modules& modules) override; |
| |
|
| | private: |
| | std::unique_ptr<FileSys::NCA> nca; |
| | std::unique_ptr<AppLoader_DeconstructedRomDirectory> directory_loader; |
| | }; |
| |
|
| | } |
| |
|