aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/qt_sdl
diff options
context:
space:
mode:
authorArisotura <thetotalworm@gmail.com>2021-08-26 18:59:07 +0200
committerArisotura <thetotalworm@gmail.com>2021-08-26 18:59:07 +0200
commit36672a40895573ec2b329bf04e195fd4e0955d9d (patch)
tree331ee328ba68d0dab11dc0ea51bc0b5cc4c3c20a /src/frontend/qt_sdl
parent7395d6a6c0f327bc3e01a85b7b16a03a44884c63 (diff)
use NDSHeader struct, and expand it with the DSi shit
Diffstat (limited to 'src/frontend/qt_sdl')
-rw-r--r--src/frontend/qt_sdl/TitleManagerDialog.cpp25
1 files changed, 9 insertions, 16 deletions
diff --git a/src/frontend/qt_sdl/TitleManagerDialog.cpp b/src/frontend/qt_sdl/TitleManagerDialog.cpp
index 58b8971..25e0389 100644
--- a/src/frontend/qt_sdl/TitleManagerDialog.cpp
+++ b/src/frontend/qt_sdl/TitleManagerDialog.cpp
@@ -106,29 +106,22 @@ TitleManagerDialog::~TitleManagerDialog()
void TitleManagerDialog::createTitleItem(u32 category, u32 titleid)
{
u32 version;
- u8 header[0x1000];
- u8 banner[0x2400];
+ NDSHeader header;
+ NDSBanner banner;
- DSi_NAND::GetTitleInfo(category, titleid, version, header, banner);
+ DSi_NAND::GetTitleInfo(category, titleid, version, &header, &banner);
- u8 icongfx[512];
- u16 iconpal[16];
- memcpy(icongfx, &banner[0x20], 512);
- memcpy(iconpal, &banner[0x220], 16*2);
u32 icondata[32*32];
- Frontend::ROMIcon(icongfx, iconpal, icondata);
+ Frontend::ROMIcon(banner.Icon, banner.Palette, icondata);
QImage iconimg((const uchar*)icondata, 32, 32, QImage::Format_ARGB32);
QIcon icon(QPixmap::fromImage(iconimg.copy()));
// TODO: make it possible to select other languages?
- u16 titleraw[129];
- memcpy(titleraw, &banner[0x340], 128*sizeof(u16));
- titleraw[128] = '\0';
- QString title = QString::fromUtf16(titleraw);
+ QString title = QString::fromUtf16(banner.EnglishTitle, 128);
title.replace("\n", " · ");
char gamecode[5];
- *(u32*)&gamecode[0] = *(u32*)&header[0xC];
+ *(u32*)&gamecode[0] = *(u32*)&header.GameCode[0];
gamecode[4] = '\0';
char extra[128];
sprintf(extra, "\n(title ID: %s · %08x/%08x · version %08x)", gamecode, category, titleid, version);
@@ -136,9 +129,9 @@ void TitleManagerDialog::createTitleItem(u32 category, u32 titleid)
QListWidgetItem* item = new QListWidgetItem(title + QString(extra));
item->setIcon(icon);
item->setData(Qt::UserRole, QVariant((qulonglong)(((u64)category<<32) | (u64)titleid)));
- item->setData(Qt::UserRole+1, QVariant(*(u32*)&header[0x238])); // public.sav size
- item->setData(Qt::UserRole+2, QVariant(*(u32*)&header[0x23C])); // private.sav size
- item->setData(Qt::UserRole+3, QVariant((u32)((header[0x1BF] & 0x04) ? 0x4000 : 0))); // banner.sav size
+ item->setData(Qt::UserRole+1, QVariant(header.DSiPublicSavSize)); // public.sav size
+ item->setData(Qt::UserRole+2, QVariant(header.DSiPrivateSavSize)); // private.sav size
+ item->setData(Qt::UserRole+3, QVariant((u32)((header.AppFlags & 0x04) ? 0x4000 : 0))); // banner.sav size
ui->lstTitleList->addItem(item);
}