citra-emu
/
citra-canary
Archived
1
0
Fork 0

loader: Implement ReadProgramId

This commit is contained in:
MerryMage 2016-12-15 09:54:25 +00:00
parent 40b0ea1086
commit 351b5d23f4
3 changed files with 28 additions and 0 deletions

View File

@ -143,6 +143,15 @@ public:
return ResultStatus::ErrorNotImplemented;
}
/**
* Get the program id of the application
* @param out_program_id Reference to store program id into
* @return ResultStatus result of function
*/
virtual ResultStatus ReadProgramId(u64& out_program_id) {
return ResultStatus::ErrorNotImplemented;
}
/**
* Get the RomFS of the application
* Since the RomFS can be huge, we return a file reference instead of copying to a buffer

View File

@ -344,6 +344,18 @@ ResultStatus AppLoader_NCCH::ReadLogo(std::vector<u8>& buffer) {
return LoadSectionExeFS("logo", buffer);
}
ResultStatus AppLoader_NCCH::ReadProgramId(u64& out_program_id) {
if (!file.IsOpen())
return ResultStatus::Error;
ResultStatus result = LoadExeFS();
if (result != ResultStatus::Success)
return result;
out_program_id = ncch_header.program_id;
return ResultStatus::Success;
}
ResultStatus AppLoader_NCCH::ReadRomFS(std::shared_ptr<FileUtil::IOFile>& romfs_file, u64& offset,
u64& size) {
if (!file.IsOpen())

View File

@ -219,6 +219,13 @@ public:
*/
ResultStatus ReadLogo(std::vector<u8>& buffer) override;
/**
* Get the program id of the application
* @param out_program_id Reference to store program id into
* @return ResultStatus result of function
*/
ResultStatus ReadProgramId(u64& out_program_id) override;
/**
* Get the RomFS of the application
* @param romfs_file Reference to buffer to store data