makerom: exefs

corrected max exefs sections to 8
This commit is contained in:
applestash
2014-09-07 22:39:02 +10:00
parent 475cda33ed
commit 7113ade91d
2 changed files with 7 additions and 8 deletions
+5 -6
View File
@@ -65,19 +65,18 @@ u32 PredictExeFS_Size(exefs_buildctx *ctx)
int GenerateExeFS_Header(exefs_buildctx *ctx, u8 *outbuff) int GenerateExeFS_Header(exefs_buildctx *ctx, u8 *outbuff)
{ {
exefs_hdr *exefs = (exefs_hdr*)outbuff;
for(int i = 0; i < ctx->fileCount; i++){ for(int i = 0; i < ctx->fileCount; i++){
if(i == 0) if(i == 0)
ctx->fileOffset[i] = 0; ctx->fileOffset[i] = 0;
else else
ctx->fileOffset[i] = align((ctx->fileOffset[i-1]+ctx->fileSize[i-1]),ctx->blockSize); ctx->fileOffset[i] = align((ctx->fileOffset[i-1]+ctx->fileSize[i-1]),ctx->blockSize);
memcpy(ctx->fileHdr[i].name,ctx->fileName[i],8); memcpy(exefs->fileHdr[i].name,ctx->fileName[i],8);
u32_to_u8(ctx->fileHdr[i].offset,ctx->fileOffset[i],LE); u32_to_u8(exefs->fileHdr[i].offset,ctx->fileOffset[i],LE);
u32_to_u8(ctx->fileHdr[i].size,ctx->fileSize[i],LE); u32_to_u8(exefs->fileHdr[i].size,ctx->fileSize[i],LE);
ctr_sha(ctx->file[i],ctx->fileSize[i],ctx->fileHashes[9-i],CTR_SHA_256); ctr_sha(ctx->file[i],ctx->fileSize[i],exefs->fileHashes[MAX_EXEFS_SECTIONS-1-i],CTR_SHA_256);
} }
memcpy(outbuff,ctx->fileHdr,sizeof(exefs_filehdr)*10);
memcpy(outbuff+0xc0,ctx->fileHashes,0x20*10);
return 0; return 0;
} }
+2 -2
View File
@@ -1,6 +1,6 @@
#pragma once #pragma once
#define MAX_EXEFS_SECTIONS 10 // DO NOT CHANGE #define MAX_EXEFS_SECTIONS 8
typedef struct typedef struct
{ {
@@ -12,6 +12,6 @@ typedef struct
typedef struct typedef struct
{ {
exefs_filehdr fileHdr[MAX_EXEFS_SECTIONS]; exefs_filehdr fileHdr[MAX_EXEFS_SECTIONS];
u8 reserved[0x20]; u8 reserved[0x80];
u8 fileHashes[MAX_EXEFS_SECTIONS][0x20]; u8 fileHashes[MAX_EXEFS_SECTIONS][0x20];
} exefs_hdr; } exefs_hdr;