diff --git a/CMakeLists.txt b/CMakeLists.txt index 44e31829aa..43030de041 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2869,7 +2869,6 @@ set(NativeAssets assets/ppge_atlas.zim assets/ppge_atlas.meta assets/rargray.png - assets/unknown.png assets/zip.png assets/sfx_back.wav assets/sfx_confirm.wav diff --git a/UI/GameInfoCache.cpp b/UI/GameInfoCache.cpp index 1f014101ef..ec9620a9e3 100644 --- a/UI/GameInfoCache.cpp +++ b/UI/GameInfoCache.cpp @@ -630,8 +630,7 @@ public: } else if (File::Exists(screenshot_jpg)) { ReadLocalFileToString(screenshot_jpg, &info_->icon.data, &info_->lock); } else { - // Read standard icon - ReadVFSToString("unknown.png", &info_->icon.data, &info_->lock); + // No icon. } } info_->icon.dataLoaded = true; @@ -688,9 +687,7 @@ handleELF: } else if (File::Exists(screenshot_jpg)) { ReadLocalFileToString(screenshot_jpg, &info_->icon.data, &info_->lock); } else { - // Read standard icon - VERBOSE_LOG(Log::Loader, "Loading unknown.png because there was an ELF"); - ReadVFSToString("unknown.png", &info_->icon.data, &info_->lock); + // No icon } info_->icon.dataLoaded = true; } @@ -854,13 +851,13 @@ handleELF: Path screenshot_jpg = GetSysDirectory(DIRECTORY_SCREENSHOT) / (info_->id + "_00000.jpg"); Path screenshot_png = GetSysDirectory(DIRECTORY_SCREENSHOT) / (info_->id + "_00000.png"); // Try using png/jpg screenshots first - if (File::Exists(screenshot_png)) + if (File::Exists(screenshot_png)) { info_->icon.dataLoaded = ReadLocalFileToString(screenshot_png, &info_->icon.data, &info_->lock); - else if (File::Exists(screenshot_jpg)) + } else if (File::Exists(screenshot_jpg)) { info_->icon.dataLoaded = ReadLocalFileToString(screenshot_jpg, &info_->icon.data, &info_->lock); - else { - DEBUG_LOG(Log::Loader, "Loading unknown.png because no icon was found"); - info_->icon.dataLoaded = ReadVFSToString("unknown.png", &info_->icon.data, &info_->lock); + } else { + // This should be very rare. + info_->icon.dataLoaded = true; } } } diff --git a/UI/GameScreen.cpp b/UI/GameScreen.cpp index 153a27baa0..004191fce2 100644 --- a/UI/GameScreen.cpp +++ b/UI/GameScreen.cpp @@ -187,14 +187,14 @@ void GameScreen::CreateContentViews(UI::ViewGroup *parent) { if (portrait) { mainGameInfo = new LinearLayout(ORIENT_VERTICAL); leftColumn->Add(new Spacer(8.0f)); - if (fileTypeHasIcon) { + if (fileTypeHasIcon && !(info_->icon.dataLoaded && info_->icon.data.empty())) { leftColumn->Add(new GameImageView(gamePath_, GameInfoFlags::ICON, 2.0f, new LinearLayoutParams(UI::Margins(0)))); } leftColumn->Add(mainGameInfo); } else { mainGameInfo = new LinearLayout(ORIENT_VERTICAL, new LinearLayoutParams(1.0f)); ViewGroup *badgeHolder = new LinearLayout(ORIENT_HORIZONTAL); - if (fileTypeHasIcon) { + if (fileTypeHasIcon && !(info_->icon.dataLoaded && info_->icon.data.empty())) { badgeHolder->Add(new GameImageView(gamePath_, GameInfoFlags::ICON, 2.0f, new LinearLayoutParams(144 * 2, 80 * 2, UI::Margins(0)))); } badgeHolder->Add(mainGameInfo); diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp index 156d3d63b7..266b8fc20b 100644 --- a/UI/MainScreen.cpp +++ b/UI/MainScreen.cpp @@ -295,7 +295,7 @@ void GameButton::Draw(UIContext &dc) { bool drawBackground = true; switch (ginfo->fileType) { case IdentifiedFileType::PSP_ELF: imageIcon = ImageID("I_DEBUGGER"); drawBackground = false; break; - case IdentifiedFileType::UNKNOWN_ELF: imageIcon = ImageID("I_DEBUGGER"); break; + case IdentifiedFileType::UNKNOWN_ELF: imageIcon = ImageID("I_CROSS"); drawBackground = false; break; case IdentifiedFileType::PPSSPP_GE_DUMP: imageIcon = ImageID("I_DISPLAY"); break; case IdentifiedFileType::PSX_ISO: case IdentifiedFileType::PSP_PS1_PBP: imageIcon = ImageID("I_PSX_ISO"); break; @@ -325,8 +325,13 @@ void GameButton::Draw(UIContext &dc) { } } - if (ginfo->Ready(GameInfoFlags::ICON) && ginfo->icon.texture && drawBackground) { - texture = ginfo->icon.texture; + if (ginfo->Ready(GameInfoFlags::ICON)) { + if (ginfo->icon.texture && drawBackground) { + texture = ginfo->icon.texture; + } else if (drawBackground) { + // No icon, but drawBackground is set. Let's show a plain icon. + imageIcon = ImageID("I_APP"); + } } int x = bounds_.x; diff --git a/UI/UIAtlas.cpp b/UI/UIAtlas.cpp index ee9fcef233..fd71c28fba 100644 --- a/UI/UIAtlas.cpp +++ b/UI/UIAtlas.cpp @@ -179,6 +179,7 @@ static const ImageMeta imageIDs[] = { {"I_PS3_ISO", false}, {"I_UNKNOWN_ISO", false}, {"I_UMD_VIDEO_ISO", false}, + {"I_APP", false}, }; static std::string PNGNameFromID(std::string_view id) { diff --git a/android/buildassets.sh b/android/buildassets.sh index bd7384ad16..6b61ce8f75 100644 --- a/android/buildassets.sh +++ b/android/buildassets.sh @@ -1,7 +1,6 @@ mkdir -p assets cp ../assets/7z.png assets/ cp ../assets/rargray.png assets/ -cp ../assets/unknown.png assets/ cp ../assets/zip.png assets/ cp ../assets/*.zim assets/ cp ../assets/*.meta assets/ diff --git a/assets/ui_images/images.svg b/assets/ui_images/images.svg index da0fc93d01..49e10b7e6f 100644 --- a/assets/ui_images/images.svg +++ b/assets/ui_images/images.svg @@ -25,8 +25,8 @@ inkscape:deskcolor="#d1d1d1" inkscape:document-units="px" inkscape:zoom="2.8284275" - inkscape:cx="86.797346" - inkscape:cy="251.19965" + inkscape:cx="173.06436" + inkscape:cy="581.41847" inkscape:window-width="3840" inkscape:window-height="2071" inkscape:window-x="-9" @@ -4354,11 +4354,11 @@ id="path3-5" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.0196305" />