mirror of
https://github.com/DarkStore-3DS/Project_CTR.git
synced 2026-07-02 16:59:03 +00:00
33 lines
898 B
C
33 lines
898 B
C
#include "lib.h"
|
|
#include "dir.h"
|
|
#include "ncch.h"
|
|
#include "romfs.h"
|
|
|
|
int PrepareImportRomFsBinaryFromFile(ncch_settings *ncchset, romfs_buildctx *ctx)
|
|
{
|
|
ctx->ImportRomfsBinary = true;
|
|
ctx->romfsSize = ncchset->componentFilePtrs.romfsSize;
|
|
ctx->romfsBinary = ncchset->componentFilePtrs.romfs;
|
|
|
|
ivfc_hdr *hdr = calloc(1,sizeof(ivfc_hdr));
|
|
|
|
ReadFile_64(hdr,sizeof(ivfc_hdr),0,ctx->romfsBinary);
|
|
if(memcmp(hdr->magic,"IVFC",4) != 0){
|
|
fprintf(stderr,"[ROMFS ERROR] Invalid RomFS Binary.\n");
|
|
return INVALID_ROMFS_FILE;
|
|
}
|
|
|
|
ctx->romfsHeaderSize = align(sizeof(ivfc_hdr),0x10) + (u64)u8_to_u32(hdr->masterHashSize,LE);
|
|
|
|
return 0;
|
|
}
|
|
|
|
int ImportRomFsBinaryFromFile(romfs_buildctx *ctx)
|
|
{
|
|
ReadFile_64(ctx->output,ctx->romfsSize,0,ctx->romfsBinary);
|
|
if(memcmp(ctx->output,"IVFC",4) != 0){
|
|
fprintf(stderr,"[ROMFS ERROR] Invalid RomFS Binary.\n");
|
|
return INVALID_ROMFS_FILE;
|
|
}
|
|
return 0;
|
|
} |