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" />