ps1: embed real game art (ICON0 + PIC1) in converted EBOOTs

Fetch the game's cover art (libretro / ScreenScraper / IGDB / Wikipedia,
reusing the local cover cache) and bake it into the EBOOT's ICON0 (144x80
XMB icon) and PIC1 (480x272 launch background) instead of the default PS1
icon. Best-effort: falls back to the base icon/empty background when no art
is found. convert()/convert_to_folder() gain optional icon0/pic1 params.
This commit is contained in:
2026-09-07 18:39:29 -04:00
parent f9d9d639ed
commit fb2a98dd21
4 changed files with 93 additions and 8 deletions
+9 -1
View File
@@ -237,12 +237,20 @@ class Ps1ConvertSource(Source):
if progress_cb is not None and total:
progress_cb("Converting", min(done / total, 1.0), "")
from . import ps1_convert
from . import covers, ps1_convert
# Pull the game's real cover art (libretro / ScreenScraper / IGDB /
# Wikipedia) and bake it into ICON0 + PIC1 so the XMB shows the actual
# game, not the default PS1 icon. Best effort: fall back to defaults.
if progress_cb is not None:
progress_cb("Artwork", 0.0, "")
icon0, pic1 = covers.ps1_art(title, game_id)
try:
ps1_convert.convert_to_folder(
source, title, game_id, self.base_pbp, dest_dir,
progress_cb=cb, cancel_event=cancel_event,
icon0=icon0, pic1=pic1,
)
except ps1_convert.Cancelled:
raise TransferCancelled() from None