aboutsummaryrefslogtreecommitdiff
path: root/src/DSi_NAND.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/DSi_NAND.cpp')
-rw-r--r--src/DSi_NAND.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/DSi_NAND.cpp b/src/DSi_NAND.cpp
index 304ede8..99fabe0 100644
--- a/src/DSi_NAND.cpp
+++ b/src/DSi_NAND.cpp
@@ -733,7 +733,7 @@ bool TitleExists(u32 category, u32 titleid)
return (res == FR_OK);
}
-void GetTitleInfo(u32 category, u32 titleid, u32& version, u8* header, u8* banner)
+void GetTitleInfo(u32 category, u32 titleid, u32& version, NDSHeader* header, NDSBanner* banner)
{
version = GetTitleVersion(category, titleid);
if (version == 0xFFFFFFFF)
@@ -749,11 +749,11 @@ void GetTitleInfo(u32 category, u32 titleid, u32& version, u8* header, u8* banne
return;
u32 nread;
- f_read(&file, header, 0x1000, &nread);
+ f_read(&file, header, sizeof(NDSHeader), &nread);
if (banner)
{
- u32 banneraddr = *(u32*)&header[0x68];
+ u32 banneraddr = header->BannerOffset;
if (!banneraddr)
{
memset(banner, 0, 0x2400);
@@ -761,7 +761,7 @@ void GetTitleInfo(u32 category, u32 titleid, u32& version, u8* header, u8* banne
else
{
f_lseek(&file, banneraddr);
- f_read(&file, banner, 0x2400, &nread);
+ f_read(&file, banner, sizeof(NDSBanner), &nread);
}
}
@@ -991,16 +991,16 @@ void DeleteTitle(u32 category, u32 titleid)
u32 GetTitleDataMask(u32 category, u32 titleid)
{
u32 version;
- u8 header[0x1000];
+ NDSHeader header;
- GetTitleInfo(category, titleid, version, header, nullptr);
+ GetTitleInfo(category, titleid, version, &header, nullptr);
if (version == 0xFFFFFFFF)
return 0;
u32 ret = 0;
- if (*(u32*)&header[0x238] != 0) ret |= (1 << TitleData_PublicSav);
- if (*(u32*)&header[0x23C] != 0) ret |= (1 << TitleData_PrivateSav);
- if (header[0x1BF] & 0x04) ret |= (1 << TitleData_BannerSav);
+ if (header.DSiPublicSavSize != 0) ret |= (1 << TitleData_PublicSav);
+ if (header.DSiPrivateSavSize != 0) ret |= (1 << TitleData_PrivateSav);
+ if (header.AppFlags & 0x04) ret |= (1 << TitleData_BannerSav);
return ret;
}