mirror of
https://github.com/d0k3/GodMode9.git
synced 2025-06-26 21:52:48 +00:00
parent
203cf7f9e3
commit
899c8a8816
@ -90,7 +90,7 @@ u64 IdentifyFileType(const char* path) {
|
|||||||
else if (fsize >= TMD_SIZE_N(getbe16(header + 0x1DE)))
|
else if (fsize >= TMD_SIZE_N(getbe16(header + 0x1DE)))
|
||||||
return GAME_TMD; // TMD file
|
return GAME_TMD; // TMD file
|
||||||
} else if (ValidateTicket((Ticket*) data) == 0) {
|
} 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) {
|
} else if (ValidateFirmHeader((FirmHeader*) data, fsize) == 0) {
|
||||||
return SYS_FIRM; // FIRM file
|
return SYS_FIRM; // FIRM file
|
||||||
} else if ((ValidateAgbSaveHeader((AgbSaveHeader*) data) == 0) && (fsize >= AGBSAVE_MAX_SIZE)) {
|
} else if ((ValidateAgbSaveHeader((AgbSaveHeader*) data) == 0) && (fsize >= AGBSAVE_MAX_SIZE)) {
|
||||||
|
@ -9,10 +9,10 @@
|
|||||||
#define VBDRI_MAX_ENTRIES 8192 // Completely arbitrary
|
#define VBDRI_MAX_ENTRIES 8192 // Completely arbitrary
|
||||||
|
|
||||||
#define VFLAG_UNKNOWN (1UL<<28)
|
#define VFLAG_UNKNOWN (1UL<<28)
|
||||||
#define VFLAG_HOMEBREW (1UL<<29)
|
#define VFLAG_ILLEGIT (1UL<<29)
|
||||||
#define VFLAG_ESHOP (1UL<<30)
|
#define VFLAG_ESHOP (1UL<<30)
|
||||||
#define VFLAG_SYSTEM (1UL<<31)
|
#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 "%016llX"
|
||||||
#define NAME_TIE_LEN 16
|
#define NAME_TIE_LEN 16
|
||||||
@ -30,10 +30,10 @@ typedef struct {
|
|||||||
|
|
||||||
// only for the main directory
|
// only for the main directory
|
||||||
static const VirtualFile VTickDbFileTemplates[] = {
|
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 },
|
{ "eshop" , 0x00000000, 0x00000000, 0xFF, VFLAG_DIR | VFLAG_ESHOP },
|
||||||
|
{ "system" , 0x00000000, 0x00000000, 0xFF, VFLAG_DIR | VFLAG_SYSTEM },
|
||||||
{ "unknown" , 0x00000000, 0x00000000, 0xFF, VFLAG_DIR | VFLAG_UNKNOWN },
|
{ "unknown" , 0x00000000, 0x00000000, 0xFF, VFLAG_DIR | VFLAG_UNKNOWN },
|
||||||
|
{ "illegit" , 0x00000000, 0x00000000, 0xFF, VFLAG_DIR | VFLAG_ILLEGIT },
|
||||||
};
|
};
|
||||||
|
|
||||||
static bool is_tickdb;
|
static bool is_tickdb;
|
||||||
@ -74,8 +74,10 @@ bool SortVBDRITickets() {
|
|||||||
tick_info = NULL;
|
tick_info = NULL;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
tick_info[i].type = (ticket->commonkey_idx > 1) ? 3 :
|
tick_info[i].type =
|
||||||
((ValidateTicketSignature(ticket) != 0) ? 1 : ((ticket->commonkey_idx == 1) ? 2 : 0));
|
(ValidateTicketSignature(ticket) != 0) ? 3 : // illegit
|
||||||
|
(ticket->commonkey_idx > 1) ? 2 : // unknown
|
||||||
|
ticket->commonkey_idx; // eshop (0) / system (1)
|
||||||
tick_info[i].size = GetTicketSize(ticket);
|
tick_info[i].size = GetTicketSize(ticket);
|
||||||
memcpy(tick_info[i].console_id, ticket->console_id, 4);
|
memcpy(tick_info[i].console_id, ticket->console_id, 4);
|
||||||
free(ticket);
|
free(ticket);
|
||||||
@ -128,10 +130,10 @@ bool ReadVBDRIDir(VirtualFile* vfile, VirtualDir* vdir) {
|
|||||||
u64 tid = getbe64(title_ids + (vdir->index * 8));
|
u64 tid = getbe64(title_ids + (vdir->index * 8));
|
||||||
|
|
||||||
if ((tid == 0) || !(
|
if ((tid == 0) || !(
|
||||||
((vdir->flags & VFLAG_ESHOP) && (type == 0)) ||
|
((vdir->flags & VFLAG_ESHOP) && (type == 0)) ||
|
||||||
((vdir->flags & VFLAG_HOMEBREW) && (type == 1)) ||
|
((vdir->flags & VFLAG_SYSTEM) && (type == 1)) ||
|
||||||
((vdir->flags & VFLAG_SYSTEM) && (type == 2)) ||
|
((vdir->flags & VFLAG_UNKNOWN) && (type == 2)) ||
|
||||||
((vdir->flags & VFLAG_UNKNOWN) && (type == 3))))
|
((vdir->flags & VFLAG_ILLEGIT) && (type == 3))))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
memset(vfile, 0, sizeof(VirtualFile));
|
memset(vfile, 0, sizeof(VirtualFile));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user