Untitled diff

Created Diff never expires
15 removals
24 lines
10 additions
19 lines
/* reads ARM9 payload from a given path.
/* reads ARM9 payload from a given path.
filename: full path of payload
filename: full path of payload
returns: 0 on failure, 1 on success */
returns: 0 on failure, 1 on success */
s32 load_arm9_payload (char *filename) {
s32 load_arm9_payload (char *filename) { //CHANGE reads payload from RAM instead of SDMC
s32 result = 0;
s32 result = 0;
u32 fsize = 0;
u32 fsize = 0;


if (!filename)
fsize = payload_bin_size;
return result;
g_ext_arm9_size = payload_bin_size;

FILE *f = fopen(filename, "rb");
if (f) {
fseek(f , 0, SEEK_END);
fsize = ftell(f);
g_ext_arm9_size = fsize;
rewind(f);
if (fsize >= 8 && (fsize <= ARM9_PAYLOAD_MAX_SIZE)) {
if (fsize >= 8 && (fsize <= ARM9_PAYLOAD_MAX_SIZE)) {
u32 bytes_read = fread(g_ext_arm9_buf, 1, fsize, f);
memcpy(g_ext_arm9_buf,payload_bin,fsize);
u32 bytes_read = fsize;
result = (g_ext_arm9_loaded = (bytes_read == fsize));
result = (g_ext_arm9_loaded = (bytes_read == fsize));
}
}
fclose(f);
}

return result;
return result;
}
}