ISFS_CreateFile error -102 /w wc24dl.vff under HBC data dir November 12, 2009 09:06PM | Registered: 14 years ago Posts: 188 |
s32 WC24_CreateVFF(char *path, u32 filesize) { s32 retval, fd; vff_header *header = (vff_header*)memalign(32, sizeof(vff_header)); header->magic = VFF_MAGIC; header->byteorder = 0xfeff; header->version = 1; header->unk7 = 0; header->filesize = filesize; header->header_size = 0x20; memset(header->reserved, 0, 0x12); retval = ISFS_CreateFile (path, 0, 3, 3, 3); if(retval<0) { free(header); return retval; } fd = retval; retval = ISFS_Seek(fd, 0, SEEK_SET); if(retval<0) { free(header); return retval; } retval = ISFS_Write(fd, header, sizeof(vff_header)); free(header); if(retval<0) { return retval; } u16 *buf = (u16*)memalign(32, 32); memset(buf, 0, 32); buf[0] = 0xf0ff; buf[1] = 0xffff; buf[2] = 0x0f00; retval = ISFS_Seek(fd, 0x20, SEEK_SET); if(retval<0) { free(buf); return retval; } retval = ISFS_Write(fd, buf, 32); free(buf); if(retval<0) { return retval; } retval = ISFS_Close(fd); if(retval<0) { return retval; } return 0; } s32 WC24_CreateWC24DlVFF(u32 filesize) { u64 titleid = 0; s32 retval; char *filename = (char*)memalign(32, 256); memset(filename, 0, 256); //retval = ES_GetTitleID(&titleid); //if(retval<0)return retval; printf("ES_GetDataDir...\n"); titleid = 0x000100014a4f4449LL;//Hard coded instead of using ES_GetTitleID because ES_GetTitleID was returning -1017.(Even in another function with 32 byte alignment for titleid.) retval = ES_GetDataDir(titleid, filename); if(retval<0) { free(filename); return retval; } strcat(filename, "/wc24dl.vff"); printf("%s\n", filename); retval = WC24_CreateVFF(filename, filesize); free(filename); return retval; }