Try using first screenshot as an icon if no icon is present.

This commit is contained in:
LunaMoo 2017-05-27 20:49:40 +02:00
parent 939b26475d
commit 737152f9ef

View file

@ -421,8 +421,16 @@ public:
std::lock_guard<std::mutex> lock(info_->lock);
pbp.GetSubFileAsString(PBP_ICON0_PNG, &info_->icon.data);
} else {
// Read standard icon
ReadVFSToString("unknown.png", &info_->icon.data, &info_->lock);
std::string screenshot_jpg = GetSysDirectory(DIRECTORY_SCREENSHOT) + info_->id + "_00000.jpg";
std::string screenshot_png = GetSysDirectory(DIRECTORY_SCREENSHOT) + info_->id + "_00000.png";
// Try using png/jpg screenshots first
if (File::Exists(screenshot_png))
readFileToString(false, screenshot_png.c_str(), info_->icon.data);
else if (File::Exists(screenshot_jpg))
readFileToString(false, screenshot_jpg.c_str(), info_->icon.data);
else
// Read standard icon
ReadVFSToString("unknown.png", &info_->icon.data, &info_->lock);
}
info_->icon.dataLoaded = true;
@ -459,11 +467,21 @@ handleELF:
info_->paramSFOLoaded = true;
}
// Read standard icon
DEBUG_LOG(LOADER, "Loading unknown.png because there was an ELF");
ReadVFSToString("unknown.png", &info_->icon.data, &info_->lock);
info_->icon.dataLoaded = true;
{
std::string screenshot_jpg = GetSysDirectory(DIRECTORY_SCREENSHOT) + info_->id + "_00000.jpg";
std::string screenshot_png = GetSysDirectory(DIRECTORY_SCREENSHOT) + info_->id + "_00000.png";
// Try using png/jpg screenshots first
if (File::Exists(screenshot_png))
readFileToString(false, screenshot_png.c_str(), info_->icon.data);
else if (File::Exists(screenshot_jpg))
readFileToString(false, screenshot_jpg.c_str(), info_->icon.data);
else {
// Read standard icon
DEBUG_LOG(LOADER, "Loading unknown.png because there was an ELF");
ReadVFSToString("unknown.png", &info_->icon.data, &info_->lock);
}
info_->icon.dataLoaded = true;
}
break;
case IdentifiedFileType::PSP_SAVEDATA_DIRECTORY:
@ -570,8 +588,17 @@ handleELF:
// Fall back to unknown icon if ISO is broken/is a homebrew ISO, override is allowed though
if (!ReadFileToString(&umd, "/PSP_GAME/ICON0.PNG", &info_->icon.data, &info_->lock)) {
DEBUG_LOG(LOADER, "Loading unknown.png because no icon was found");
ReadVFSToString("unknown.png", &info_->icon.data, &info_->lock);
std::string screenshot_jpg = GetSysDirectory(DIRECTORY_SCREENSHOT) + info_->id + "_00000.jpg";
std::string screenshot_png = GetSysDirectory(DIRECTORY_SCREENSHOT) + info_->id + "_00000.png";
// Try using png/jpg screenshots first
if (File::Exists(screenshot_png))
readFileToString(false, screenshot_png.c_str(), info_->icon.data);
else if (File::Exists(screenshot_jpg))
readFileToString(false, screenshot_jpg.c_str(), info_->icon.data);
else {
DEBUG_LOG(LOADER, "Loading unknown.png because no icon was found");
ReadVFSToString("unknown.png", &info_->icon.data, &info_->lock);
}
}
info_->icon.dataLoaded = true;
break;