Skip to content

Artwork: reduce false-positive icons and covers with confidence-based fallbacks #18

Closed

Description

@EriArk

Observed

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.

Activity

  1. EriArk commented on Oct 9, 2026

    @EriArk
    OwnerAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions