You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Artwork: reduce false-positive icons and covers with confidence-based fallbacks #18
During compact-library checks on Android 15 emulator-5554, artwork false positives became conspicuous at large display sizes:
2048 (Jan Smucr 1.04): Gallery uses a congratulations text image instead of a title/cover.
BilliardBerzerk: Grid shows a wood texture as the enlarged icon.
CavernsOfFire: Grid shows a publisher splash rather than a recognizable game icon.
These are observations in the locally imported demo library, not proof of the exact extraction path/cause. Inspect manifest icons, cached art and candidate scores before changing heuristics.
Scope
Improve the shared artwork selection/fallback pipeline, not a game-name allowlist. Respect explicit valid MIDlet icons; avoid presenting arbitrary backgrounds, text panels, sprite sheets or textures as icons/covers. When confidence is low, use an honest generated fallback. Preserve user-selected artwork and offer a menu-level way to replace/reset automatically chosen art.
Acceptance
Test a varied local corpus including icon-less JARs and small genuine MIDlet icons.
Gallery uses a plausible cover or icon-based fallback; List/Grid never magnify an unrelated texture as the game icon.
Explicit user artwork is not overwritten by automatic rescans.
Add focused ranking/fallback regression fixtures without commercial game archives.
Separate from #17 (compact layout). No per-game emulator patches are requested.
Implemented in 17ef6dc. Valid manifest icons now win regardless of small size or filename extension. Without one, only an unambiguous icon-named resource is used; image area and squareness no longer make textures eligible. Covers require title/cover or menu/background evidence. Real-library inspection caught a game-named intro that was an instruction panel, so intro/splash/logo alone were rejected globally. Ambiguous candidates use a generated icon/initial fallback. No game-name allowlist. Artwork menu provides choose/reset for icons and covers plus explicit legacy refresh. New user files are separate and survive refresh, Java reinstall and backup/import. Old ambiguous covers are not silently overwritten on upgrade. Added 11 generated image/ZIP cases and a custom-art backup/import round-trip. Public Phone/Handheld APKs and test APKs built; shared suite reports 81 cases (Phone has one unrelated Handheld-only skip). See docs/ARTWORK.md for limitations: filename heuristics deliberately prefer missing art over uncertain guesses. Public release APKs remain unchanged.
Activity
EriArk commentedon Oct 9, 2026
Implemented in 17ef6dc. Valid manifest icons now win regardless of small size or filename extension. Without one, only an unambiguous icon-named resource is used; image area and squareness no longer make textures eligible. Covers require title/cover or menu/background evidence. Real-library inspection caught a game-named intro that was an instruction panel, so intro/splash/logo alone were rejected globally. Ambiguous candidates use a generated icon/initial fallback. No game-name allowlist. Artwork menu provides choose/reset for icons and covers plus explicit legacy refresh. New user files are separate and survive refresh, Java reinstall and backup/import. Old ambiguous covers are not silently overwritten on upgrade. Added 11 generated image/ZIP cases and a custom-art backup/import round-trip. Public Phone/Handheld APKs and test APKs built; shared suite reports 81 cases (Phone has one unrelated Handheld-only skip). See docs/ARTWORK.md for limitations: filename heuristics deliberately prefer missing art over uncertain guesses. Public release APKs remain unchanged.