mirror of
https://github.com/d0k3/GodMode9.git
synced 2025-06-26 13:42:47 +00:00
Show sizes for virtual drives
This commit is contained in:
parent
ae2adbceea
commit
74ff158c93
@ -194,7 +194,8 @@ uint64_t GetFreeSpace(const char* path)
|
||||
uint64_t GetTotalSpace(const char* path)
|
||||
{
|
||||
FATFS* fsobj = GetMountedFSObject(path);
|
||||
return (fsobj) ? ((uint64_t) (fsobj->n_fatent - 2) * fsobj->csize * _MAX_SS) : 0;
|
||||
return (fsobj) ? ((uint64_t) (fsobj->n_fatent - 2) * fsobj->csize * _MAX_SS) :
|
||||
GetVirtualDriveSize(path);
|
||||
}
|
||||
|
||||
uint64_t GetPartitionOffsetSector(const char* path)
|
||||
|
@ -44,3 +44,7 @@ int ReadVCartFile(const VirtualFile* vfile, u8* buffer, u32 offset, u32 count) {
|
||||
return ReadCartPrivateHeader(buffer, offset, count, cdata);
|
||||
else return ReadCartBytes(buffer, offset, count, cdata);
|
||||
}
|
||||
|
||||
u64 GetVCartDriveSize(void) {
|
||||
return cart_init ? cdata->cart_size : 0;
|
||||
}
|
||||
|
@ -7,3 +7,4 @@ u32 InitVCartDrive(void);
|
||||
bool ReadVCartDir(VirtualFile* vfile, VirtualDir* vdir);
|
||||
int ReadVCartFile(const VirtualFile* vfile, u8* buffer, u32 offset, u32 count);
|
||||
// int WriteVCartFile(const VirtualFile* vfile, const u8* buffer, u32 offset, u32 count); // no writes
|
||||
u64 GetVCartDriveSize(void);
|
||||
|
@ -743,3 +743,7 @@ bool MatchVGameLv3Filename(const char* name, const VirtualFile* vfile, u32 n_cha
|
||||
if (!GetVGameLv3Filename(lv3_name, vfile, 256)) return false;
|
||||
return (strncasecmp(name, lv3_name, n_chars) == 0);
|
||||
}
|
||||
|
||||
u64 GetVGameDriveSize(void) {
|
||||
return (vgame_type) ? GetMountSize() : 0;
|
||||
}
|
||||
|
@ -15,3 +15,5 @@ int ReadVGameFile(const VirtualFile* vfile, u8* buffer, u32 offset, u32 count);
|
||||
bool FindVirtualFileInLv3Dir(VirtualFile* vfile, const VirtualDir* vdir, const char* name);
|
||||
bool GetVGameLv3Filename(char* name, const VirtualFile* vfile, u32 n_chars);
|
||||
bool MatchVGameLv3Filename(const char* name, const VirtualFile* vfile, u32 n_chars);
|
||||
|
||||
u64 GetVGameDriveSize(void);
|
||||
|
@ -193,3 +193,14 @@ int WriteVirtualFile(const VirtualFile* vfile, const u8* buffer, u32 offset, u32
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
u64 GetVirtualDriveSize(const char* path) {
|
||||
u32 virtual_src = GetVirtualSource(path);
|
||||
if (virtual_src & (VRT_SYSNAND|VRT_EMUNAND|VRT_IMGNAND))
|
||||
return GetVNandDriveSize(virtual_src);
|
||||
else if (virtual_src & VRT_GAME)
|
||||
return GetVGameDriveSize();
|
||||
else if (virtual_src & VRT_CART)
|
||||
return GetVCartDriveSize();
|
||||
return 0;
|
||||
}
|
||||
|
@ -59,3 +59,5 @@ bool GetVirtualFilename(char* name, const VirtualFile* vfile, u32 n_chars);
|
||||
|
||||
int ReadVirtualFile(const VirtualFile* vfile, u8* buffer, u32 offset, u32 count, u32* bytes_read);
|
||||
int WriteVirtualFile(const VirtualFile* vfile, const u8* buffer, u32 offset, u32 count, u32* bytes_written);
|
||||
|
||||
u64 GetVirtualDriveSize(const char* path);
|
||||
|
@ -97,3 +97,7 @@ int WriteVNandFile(const VirtualFile* vfile, const u8* buffer, u32 offset, u32 c
|
||||
if ((res == 0) && (vfile->flags & VFLAG_GBA_VC)) res = FixAgbSaveCmac(nand_dst);
|
||||
return res;
|
||||
}
|
||||
|
||||
u64 GetVNandDriveSize(u32 nand_src) {
|
||||
return GetNandSizeSectors(nand_src) * 0x200;
|
||||
}
|
||||
|
@ -7,3 +7,4 @@ bool CheckVNandDrive(u32 nand_src);
|
||||
bool ReadVNandDir(VirtualFile* vfile, VirtualDir* vdir);
|
||||
int ReadVNandFile(const VirtualFile* vfile, u8* buffer, u32 offset, u32 count);
|
||||
int WriteVNandFile(const VirtualFile* vfile, const u8* buffer, u32 offset, u32 count);
|
||||
u64 GetVNandDriveSize(u32 nand_src);
|
||||
|
Loading…
x
Reference in New Issue
Block a user