Change DSiWare color, list after CTR NAND titles.

This commit is contained in:
Steven Smith 2016-04-10 15:20:17 -07:00
parent f9400d18ca
commit e771bad5c1

View File

@ -20,7 +20,7 @@ typedef struct {
Handle cancelEvent; Handle cancelEvent;
} populate_titles_data; } populate_titles_data;
static Result task_populate_titles_from(populate_titles_data* data, FS_MediaType mediaType) { static Result task_populate_titles_from(populate_titles_data* data, FS_MediaType mediaType, bool useDSiWare) {
bool inserted; bool inserted;
FS_CardType type; FS_CardType type;
if(mediaType == MEDIATYPE_GAME_CARD && ((R_FAILED(FSUSER_CardSlotIsInserted(&inserted)) || !inserted) || (R_FAILED(FSUSER_GetCardType(&type)) || type != CARD_CTR))) { if(mediaType == MEDIATYPE_GAME_CARD && ((R_FAILED(FSUSER_CardSlotIsInserted(&inserted)) || !inserted) || (R_FAILED(FSUSER_GetCardType(&type)) || type != CARD_CTR))) {
@ -45,6 +45,11 @@ static Result task_populate_titles_from(populate_titles_data* data, FS_MediaType
break; break;
} }
bool dsiWare = ((titleIds[i] >> 32) & 0x8000) != 0;
if(dsiWare != useDSiWare) {
continue;
}
title_info* titleInfo = (title_info*) calloc(1, sizeof(title_info)); title_info* titleInfo = (title_info*) calloc(1, sizeof(title_info));
if(titleInfo != NULL) { if(titleInfo != NULL) {
titleInfo->mediaType = mediaType; titleInfo->mediaType = mediaType;
@ -101,8 +106,8 @@ static Result task_populate_titles_from(populate_titles_data* data, FS_MediaType
} }
if(mediaType == MEDIATYPE_NAND) { if(mediaType == MEDIATYPE_NAND) {
if(((titleInfo->titleId >> 48) & 0xFFFF) == 0x0003) { if(dsiWare) {
item->rgba = 0xFFCBC0FF; item->rgba = 0xFF82004B;
} else { } else {
item->rgba = 0xFF0000FF; item->rgba = 0xFF0000FF;
} }
@ -138,7 +143,7 @@ static void task_populate_titles_thread(void* arg) {
populate_titles_data* data = (populate_titles_data*) arg; populate_titles_data* data = (populate_titles_data*) arg;
Result res = 0; Result res = 0;
if(R_FAILED(res = task_populate_titles_from(data, MEDIATYPE_GAME_CARD)) || R_FAILED(res = task_populate_titles_from(data, MEDIATYPE_SD)) || R_FAILED(res = task_populate_titles_from(data, MEDIATYPE_NAND))) { if(R_FAILED(res = task_populate_titles_from(data, MEDIATYPE_GAME_CARD, false)) || R_FAILED(res = task_populate_titles_from(data, MEDIATYPE_SD, false)) || R_FAILED(res = task_populate_titles_from(data, MEDIATYPE_NAND, false)) || R_FAILED(res = task_populate_titles_from(data, MEDIATYPE_NAND, true))) {
error_display_res(NULL, NULL, res, "Failed to load title listing."); error_display_res(NULL, NULL, res, "Failed to load title listing.");
} }