Welcome! Log In Create A New Profile

Advanced

ISFS_CreateFile error -102 /w wc24dl.vff under HBC data dir

Posted by yellowstar 
ISFS_CreateFile error -102 /w wc24dl.vff under HBC data dir
November 12, 2009 09:06PM
I tried to create wc24dl.vff under HBC(00010001-JODI) data dir, but I get -102 permission denied... Why? ES_GetTitleID was returning -1017 in another function with proper titleid alignment, so I'm not sure if HBC is identifying as something else for w/e reason...
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;
}
Sorry, only registered users may post in this forum.

Click here to login