mirror of
https://github.com/libretro/virtualjaguar-libretro.git
synced 2026-11-07 04:36:00 -10:00
build_site.py now writes "thumbnails/Atari - Jaguar CD.zip" next to the mirror. It holds only Named_*/*.png under an "Atari - Jaguar CD/" folder, so it unzips straight into RetroArch's thumbnails directory and can be offered to libretro-thumbnails#141 as-is. Entries are sorted with a fixed timestamp, so the same images always give the same bytes. The core info now lists "Atari - Jaguar CD" alongside "Atari - Jaguar", so once libretro-super builds that rdb, RetroArch offers this core for discs a scan matches. The mirror README records what still has to land upstream: the thumbnail repo, the rdb build line, and a RetroArch scanner fix (every Jaguar CD track is AUDIO, and the scanner only hashes data tracks). Co-authored-by: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
e49d5649a9
commit
744e9a3860
4 files changed
+50
-10
No files matched your search
+1
-1
@@ -15,7 +15,7 @@ systemid = "atari_jaguar"
|
||||
|
||||
# Libretro Features
|
||||
supports_no_game = "true"
|
||||
database = "Atari - Jaguar"
|
||||
database = "Atari - Jaguar|Atari - Jaguar CD"
|
||||
savestate = "true"
|
||||
savestate_features = "3"
|
||||
cheats = "true"
|
||||
|
||||
+26
-1
@@ -8,7 +8,8 @@ Inputs (committed in this repo):
|
||||
leading comments)
|
||||
site/style.css the one stylesheet
|
||||
site/assets/* images, copied verbatim
|
||||
site/thumbnails/* Jaguar CD artwork mirror, copied verbatim
|
||||
site/thumbnails/* Jaguar CD artwork mirror, copied verbatim, plus one
|
||||
drop-in zip per system (see write_thumbnail_zips)
|
||||
docs/cd-boot-matrix.md parsed for the CD compatibility table
|
||||
Makefile CORE_BASE_VERSION -> JSON-LD softwareVersion
|
||||
|
||||
@@ -42,6 +43,7 @@ import json
|
||||
import re
|
||||
import shutil
|
||||
import struct
|
||||
import zipfile
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
@@ -154,6 +156,28 @@ def die(msg):
|
||||
|
||||
# ------------------------------------------------------- repo-derived facts
|
||||
|
||||
def write_thumbnail_zips(src, dest):
|
||||
"""Write <dest>/<System>.zip for each system folder in src.
|
||||
|
||||
The zip holds only <System>/Named_*/*.png, so it unpacks straight into
|
||||
RetroArch's thumbnails directory (and is what libretro-thumbnails#141 is
|
||||
offered). Entries are sorted with a fixed timestamp, so the same images
|
||||
always give the same bytes.
|
||||
"""
|
||||
for system in sorted(p for p in src.iterdir() if p.is_dir()):
|
||||
pngs = sorted(f for f in system.glob("Named_*/*.png") if f.is_file())
|
||||
if not pngs:
|
||||
continue
|
||||
with zipfile.ZipFile(dest / (system.name + ".zip"), "w",
|
||||
zipfile.ZIP_DEFLATED) as zf:
|
||||
for f in pngs:
|
||||
info = zipfile.ZipInfo(f.relative_to(src).as_posix(),
|
||||
(1996, 1, 1, 0, 0, 0))
|
||||
info.compress_type = zipfile.ZIP_DEFLATED
|
||||
info.external_attr = 0o644 << 16
|
||||
zf.writestr(info, f.read_bytes())
|
||||
|
||||
|
||||
def read_core_version(makefile):
|
||||
"""softwareVersion for the JSON-LD, straight from the Makefile.
|
||||
|
||||
@@ -1734,6 +1758,7 @@ def main():
|
||||
thumbs_src = SITE_SRC / "thumbnails"
|
||||
if thumbs_src.is_dir():
|
||||
shutil.copytree(thumbs_src, out / "thumbnails")
|
||||
write_thumbnail_zips(thumbs_src, out / "thumbnails")
|
||||
(out / ".nojekyll").write_text("")
|
||||
|
||||
nav_items = []
|
||||
|
||||
@@ -5,7 +5,9 @@ libretro-thumbnails has an "Atari - Jaguar CD" repository (libretro-thumbnails/l
|
||||
The Virtual Jaguar desktop app falls back to this mirror for disc titles that libretro-thumbnails
|
||||
does not have, so upstream art wins as soon as it exists. URL layout is the same as
|
||||
thumbnails.libretro.com: `<base>/Atari - Jaguar CD/<Named_Boxarts|Named_Titles|Named_Snaps>/<name>.png`
|
||||
(spaces and punctuation URL-encoded). Not submitted to libretro-thumbnails.
|
||||
(spaces and punctuation URL-encoded). Offered to libretro-thumbnails in
|
||||
libretro-thumbnails/libretro-thumbnails#141; the site also serves every image as one zip,
|
||||
`<base>/Atari - Jaguar CD.zip`, built by `scripts/build_site.py`. It unzips to `Atari - Jaguar CD/Named_*/`.
|
||||
|
||||
Layout follows libretro-thumbnails: `Named_Boxarts/`, `Named_Titles/`, `Named_Snaps/`, one PNG per
|
||||
game, named exactly after the game name in libretro-database
|
||||
@@ -74,11 +76,21 @@ was used for the title and snap.
|
||||
Primal Rage, World Tour Racing. Better gameplay snaps for the rest would need a human at the pad.
|
||||
- Headless caveat from the repo docs applies: confirm in RetroArch if exact presentation matters.
|
||||
|
||||
## Upstream status (checked 2026-10-13, read-only)
|
||||
## Upstream status (2026-10-17)
|
||||
|
||||
- No `Atari_-_Jaguar_CD` repo exists, and libretro-thumbnails has no submodule for it.
|
||||
- libretro-thumbnails issue #141 "Missing repository" (opened 2024-07) is still open; a maintainer noted
|
||||
there is no database for the system.
|
||||
- libretro-database ships `metadat/redump/Atari - Jaguar CD.dat` but no `rdb/Atari - Jaguar CD.rdb`, so
|
||||
RetroArch cannot yet scan Jaguar CD discs into a matching playlist; the thumbnail repo name only
|
||||
matters once that rdb exists.
|
||||
For RetroArch to show these without the mirror, four things have to land:
|
||||
|
||||
1. **Thumbnail repo.** `libretro-thumbnails/Atari_-_Jaguar_CD` does not exist yet. Only an org
|
||||
maintainer can create it; requested in libretro-thumbnails#141. After that, these files go in by
|
||||
PR, and a submodule entry goes into libretro-thumbnails/libretro-thumbnails.
|
||||
2. **Database.** libretro-database already has `metadat/redump/Atari - Jaguar CD.dat` (one Track 1
|
||||
CRC per game), but no `rdb/Atari - Jaguar CD.rdb`. The rdb is built by libretro-super's
|
||||
`libretro-build-database.sh`, which needs a `build_libretro_database "Atari - Jaguar CD" "rom.crc"` line.
|
||||
3. **Core info.** `virtualjaguar_libretro.info` has to list the database:
|
||||
`database = "Atari - Jaguar|Atari - Jaguar CD"`.
|
||||
4. **RetroArch scanner.** Every Jaguar CD track is `AUDIO` in the cue sheet. RetroArch's cue and CHD
|
||||
CRC paths hash only data tracks, so a scan computes no CRC and an rdb alone matches nothing. The
|
||||
fix has to hash Track 1.
|
||||
|
||||
Until all four land, Manual Scan with the custom system name `Atari - Jaguar CD` labels Redump-named
|
||||
discs by file name, and that is enough for thumbnails, once the repo from item 1 exists.
|
||||
@@ -20,6 +20,9 @@ that libretro-thumbnails does not have.</p>
|
||||
<p>Layout matches libretro-thumbnails:
|
||||
<code>/thumbnails/Atari%20-%20Jaguar%20CD/<Named_Boxarts|Named_Titles|Named_Snaps>/<Redump%20name>.png</code></p>
|
||||
<ul>
|
||||
<li><a href="Atari%20-%20Jaguar%20CD.zip">Atari - Jaguar CD.zip</a>: every image in one file. It unzips
|
||||
to an <code>Atari - Jaguar CD</code> folder; put that folder in RetroArch's <code>thumbnails</code>
|
||||
directory</li>
|
||||
<li><a href="Atari%20-%20Jaguar%20CD/README.md">README</a>: sources and attribution (box art from
|
||||
TheGamesDB, titles and snaps generated with Virtual Jaguar)</li>
|
||||
<li><a href="Atari%20-%20Jaguar%20CD/SOURCES.tsv">SOURCES.tsv</a>: one row per game, with every file name and its source</li>
|
||||
|
||||
Reference in new issue
Block a user