| | |
| | |
| |
|
| | #pragma once |
| |
|
| | #include <memory> |
| | #include "common/common_types.h" |
| | #include "core/loader/loader.h" |
| |
|
| | namespace Core { |
| | class System; |
| | } |
| |
|
| | namespace FileSys { |
| | class NAX; |
| | } |
| |
|
| | namespace Loader { |
| |
|
| | class AppLoader_NCA; |
| |
|
| | |
| | class AppLoader_NAX final : public AppLoader { |
| | public: |
| | explicit AppLoader_NAX(FileSys::VirtualFile file_); |
| | ~AppLoader_NAX() override; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | static FileType IdentifyType(const FileSys::VirtualFile& nax_file); |
| |
|
| | FileType GetFileType() const override; |
| |
|
| | LoadResult Load(Kernel::KProcess& process, Core::System& system) 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::NAX> nax; |
| | std::unique_ptr<AppLoader_NCA> nca_loader; |
| | }; |
| |
|
| | } |
| |
|