|
|
|
@ -152,21 +152,26 @@ public:
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns the type of this file
|
|
|
|
|
*
|
|
|
|
|
* @return FileType corresponding to the loaded file
|
|
|
|
|
*/
|
|
|
|
|
virtual FileType GetFileType() const = 0;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Load the application and return the created Process instance
|
|
|
|
|
*
|
|
|
|
|
* @param process The newly created process.
|
|
|
|
|
* @param system The system that this process is being loaded under.
|
|
|
|
|
*
|
|
|
|
|
* @return The status result of the operation.
|
|
|
|
|
*/
|
|
|
|
|
virtual LoadResult Load(Kernel::Process& process, Core::System& system) = 0;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the code (typically .code section) of the application
|
|
|
|
|
* @param buffer Reference to buffer to store data
|
|
|
|
|
*
|
|
|
|
|
* @param[out] buffer Reference to buffer to store data
|
|
|
|
|
*
|
|
|
|
|
* @return ResultStatus result of function
|
|
|
|
|
*/
|
|
|
|
|
virtual ResultStatus ReadCode(std::vector<u8>& buffer) {
|
|
|
|
@ -175,7 +180,9 @@ public:
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the icon (typically icon section) of the application
|
|
|
|
|
* @param buffer Reference to buffer to store data
|
|
|
|
|
*
|
|
|
|
|
* @param[out] buffer Reference to buffer to store data
|
|
|
|
|
*
|
|
|
|
|
* @return ResultStatus result of function
|
|
|
|
|
*/
|
|
|
|
|
virtual ResultStatus ReadIcon(std::vector<u8>& buffer) {
|
|
|
|
@ -186,7 +193,9 @@ public:
|
|
|
|
|
* Get the banner (typically banner section) of the application
|
|
|
|
|
* In the context of NX, this is the animation that displays in the bottom right of the screen
|
|
|
|
|
* when a game boots. Stored in GIF format.
|
|
|
|
|
* @param buffer Reference to buffer to store data
|
|
|
|
|
*
|
|
|
|
|
* @param[out] buffer Reference to buffer to store data
|
|
|
|
|
*
|
|
|
|
|
* @return ResultStatus result of function
|
|
|
|
|
*/
|
|
|
|
|
virtual ResultStatus ReadBanner(std::vector<u8>& buffer) {
|
|
|
|
@ -197,7 +206,9 @@ public:
|
|
|
|
|
* Get the logo (typically logo section) of the application
|
|
|
|
|
* In the context of NX, this is the static image that displays in the top left of the screen
|
|
|
|
|
* when a game boots. Stored in JPEG format.
|
|
|
|
|
* @param buffer Reference to buffer to store data
|
|
|
|
|
*
|
|
|
|
|
* @param[out] buffer Reference to buffer to store data
|
|
|
|
|
*
|
|
|
|
|
* @return ResultStatus result of function
|
|
|
|
|
*/
|
|
|
|
|
virtual ResultStatus ReadLogo(std::vector<u8>& buffer) {
|
|
|
|
@ -206,7 +217,9 @@ public:
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the program id of the application
|
|
|
|
|
* @param out_program_id Reference to store program id into
|
|
|
|
|
*
|
|
|
|
|
* @param[out] out_program_id Reference to store program id into
|
|
|
|
|
*
|
|
|
|
|
* @return ResultStatus result of function
|
|
|
|
|
*/
|
|
|
|
|
virtual ResultStatus ReadProgramId(u64& out_program_id) {
|
|
|
|
@ -216,19 +229,23 @@ public:
|
|
|
|
|
/**
|
|
|
|
|
* Get the RomFS of the application
|
|
|
|
|
* Since the RomFS can be huge, we return a file reference instead of copying to a buffer
|
|
|
|
|
* @param file The directory containing the RomFS
|
|
|
|
|
*
|
|
|
|
|
* @param[out] out_file The directory containing the RomFS
|
|
|
|
|
*
|
|
|
|
|
* @return ResultStatus result of function
|
|
|
|
|
*/
|
|
|
|
|
virtual ResultStatus ReadRomFS(FileSys::VirtualFile& file) {
|
|
|
|
|
virtual ResultStatus ReadRomFS(FileSys::VirtualFile& out_file) {
|
|
|
|
|
return ResultStatus::ErrorNotImplemented;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the raw update of the application, should it come packed with one
|
|
|
|
|
* @param file The raw update NCA file (Program-type
|
|
|
|
|
*
|
|
|
|
|
* @param[out] out_file The raw update NCA file (Program-type)
|
|
|
|
|
*
|
|
|
|
|
* @return ResultStatus result of function
|
|
|
|
|
*/
|
|
|
|
|
virtual ResultStatus ReadUpdateRaw(FileSys::VirtualFile& file) {
|
|
|
|
|
virtual ResultStatus ReadUpdateRaw(FileSys::VirtualFile& out_file) {
|
|
|
|
|
return ResultStatus::ErrorNotImplemented;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -236,7 +253,8 @@ public:
|
|
|
|
|
* Get whether or not updates can be applied to the RomFS.
|
|
|
|
|
* By default, this is true, however for formats where it cannot be guaranteed that the RomFS is
|
|
|
|
|
* the base game it should be set to false.
|
|
|
|
|
* @return bool whether or not updatable.
|
|
|
|
|
*
|
|
|
|
|
* @return bool indicating whether or not the RomFS is updatable.
|
|
|
|
|
*/
|
|
|
|
|
virtual bool IsRomFSUpdatable() const {
|
|
|
|
|
return true;
|
|
|
|
@ -244,8 +262,9 @@ public:
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Gets the difference between the start of the IVFC header and the start of level 6 (RomFS)
|
|
|
|
|
* data. Needed for bktr patching.
|
|
|
|
|
* @return IVFC offset for romfs.
|
|
|
|
|
* data. Needed for BKTR patching.
|
|
|
|
|
*
|
|
|
|
|
* @return IVFC offset for RomFS.
|
|
|
|
|
*/
|
|
|
|
|
virtual u64 ReadRomFSIVFCOffset() const {
|
|
|
|
|
return 0;
|
|
|
|
@ -253,7 +272,9 @@ public:
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the title of the application
|
|
|
|
|
* @param title Reference to store the application title into
|
|
|
|
|
*
|
|
|
|
|
* @param[out] title Reference to store the application title into
|
|
|
|
|
*
|
|
|
|
|
* @return ResultStatus result of function
|
|
|
|
|
*/
|
|
|
|
|
virtual ResultStatus ReadTitle(std::string& title) {
|
|
|
|
@ -262,7 +283,9 @@ public:
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the control data (CNMT) of the application
|
|
|
|
|
* @param control Reference to store the application control data into
|
|
|
|
|
*
|
|
|
|
|
* @param[out] control Reference to store the application control data into
|
|
|
|
|
*
|
|
|
|
|
* @return ResultStatus result of function
|
|
|
|
|
*/
|
|
|
|
|
virtual ResultStatus ReadControlData(FileSys::NACP& control) {
|
|
|
|
@ -271,10 +294,12 @@ public:
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the RomFS of the manual of the application
|
|
|
|
|
* @param file The raw manual RomFS of the game
|
|
|
|
|
*
|
|
|
|
|
* @param[out] out_file The raw manual RomFS of the game
|
|
|
|
|
*
|
|
|
|
|
* @return ResultStatus result of function
|
|
|
|
|
*/
|
|
|
|
|
virtual ResultStatus ReadManualRomFS(FileSys::VirtualFile& file) {
|
|
|
|
|
virtual ResultStatus ReadManualRomFS(FileSys::VirtualFile& out_file) {
|
|
|
|
|
return ResultStatus::ErrorNotImplemented;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|