Updated mounted ticket.db categories

Fixes #641
This commit is contained in:
d0k3 2021-01-31 14:29:48 +01:00
parent 203cf7f9e3
commit 899c8a8816
2 changed files with 13 additions and 11 deletions

View File

@ -90,7 +90,7 @@ u64 IdentifyFileType(const char* path) {
else if (fsize >= TMD_SIZE_N(getbe16(header + 0x1DE)))
return GAME_TMD; // TMD file
} else if (ValidateTicket((Ticket*) data) == 0) {
return GAME_TICKET; // Ticket file (not used for anything right now)
return GAME_TICKET; // Ticket file
} else if (ValidateFirmHeader((FirmHeader*) data, fsize) == 0) {
return SYS_FIRM; // FIRM file
} else if ((ValidateAgbSaveHeader((AgbSaveHeader*) data) == 0) && (fsize >= AGBSAVE_MAX_SIZE)) {

View File

@ -9,10 +9,10 @@
#define VBDRI_MAX_ENTRIES 8192 // Completely arbitrary
#define VFLAG_UNKNOWN (1UL<<28)
#define VFLAG_HOMEBREW (1UL<<29)
#define VFLAG_ILLEGIT (1UL<<29)
#define VFLAG_ESHOP (1UL<<30)
#define VFLAG_SYSTEM (1UL<<31)
#define VFLAG_TICKDIR (VFLAG_UNKNOWN|VFLAG_HOMEBREW|VFLAG_ESHOP|VFLAG_SYSTEM)
#define VFLAG_TICKDIR (VFLAG_UNKNOWN|VFLAG_ILLEGIT|VFLAG_ESHOP|VFLAG_SYSTEM)
#define NAME_TIE "%016llX"
#define NAME_TIE_LEN 16
@ -30,10 +30,10 @@ typedef struct {
// only for the main directory
static const VirtualFile VTickDbFileTemplates[] = {
{ "system" , 0x00000000, 0x00000000, 0xFF, VFLAG_DIR | VFLAG_SYSTEM },
{ "homebrew", 0x00000000, 0x00000000, 0xFF, VFLAG_DIR | VFLAG_HOMEBREW },
{ "eshop" , 0x00000000, 0x00000000, 0xFF, VFLAG_DIR | VFLAG_ESHOP },
{ "system" , 0x00000000, 0x00000000, 0xFF, VFLAG_DIR | VFLAG_SYSTEM },
{ "unknown" , 0x00000000, 0x00000000, 0xFF, VFLAG_DIR | VFLAG_UNKNOWN },
{ "illegit" , 0x00000000, 0x00000000, 0xFF, VFLAG_DIR | VFLAG_ILLEGIT },
};
static bool is_tickdb;
@ -74,8 +74,10 @@ bool SortVBDRITickets() {
tick_info = NULL;
return false;
}
tick_info[i].type = (ticket->commonkey_idx > 1) ? 3 :
((ValidateTicketSignature(ticket) != 0) ? 1 : ((ticket->commonkey_idx == 1) ? 2 : 0));
tick_info[i].type =
(ValidateTicketSignature(ticket) != 0) ? 3 : // illegit
(ticket->commonkey_idx > 1) ? 2 : // unknown
ticket->commonkey_idx; // eshop (0) / system (1)
tick_info[i].size = GetTicketSize(ticket);
memcpy(tick_info[i].console_id, ticket->console_id, 4);
free(ticket);
@ -129,9 +131,9 @@ bool ReadVBDRIDir(VirtualFile* vfile, VirtualDir* vdir) {
if ((tid == 0) || !(
((vdir->flags & VFLAG_ESHOP) && (type == 0)) ||
((vdir->flags & VFLAG_HOMEBREW) && (type == 1)) ||
((vdir->flags & VFLAG_SYSTEM) && (type == 2)) ||
((vdir->flags & VFLAG_UNKNOWN) && (type == 3))))
((vdir->flags & VFLAG_SYSTEM) && (type == 1)) ||
((vdir->flags & VFLAG_UNKNOWN) && (type == 2)) ||
((vdir->flags & VFLAG_ILLEGIT) && (type == 3))))
continue;
memset(vfile, 0, sizeof(VirtualFile));