Target Redump DATs/catalog instead of No-Intro
This commit is contained in:
@@ -3,8 +3,8 @@
|
||||

|
||||
|
||||
Native Linux GUI (PySide6) for preserving PSP UMD **games** and **videos** as
|
||||
`.iso` files. It scans your discs, verifies them against a full catalog
|
||||
(No-Intro DATs), reports what's missing, and retags/renames discs to a canonical
|
||||
`.iso` files. It scans your discs, verifies them against the full Redump catalog
|
||||
(Redump DATs), reports what's missing, and retags/renames discs to a canonical
|
||||
scheme. It also fetches cover art and metadata, syncs discs and save-data with a
|
||||
real PSP, and can pull missing discs from your own Redump 7z archive collection.
|
||||
|
||||
@@ -52,8 +52,8 @@ python3 -m app.main
|
||||
## First-time setup
|
||||
|
||||
1. Put your DAT files in `data/dats/`:
|
||||
- games: No-Intro `Sony - PlayStation Portable`
|
||||
- videos: No-Intro `Sony - PlayStation Portable (UMD Video)`
|
||||
- games: Redump `Sony - PlayStation Portable`
|
||||
- videos: Redump `Sony - PlayStation Portable (UMD Video)`
|
||||
2. Ingest them into the local SQLite library:
|
||||
|
||||
```bash
|
||||
@@ -63,7 +63,7 @@ python3 -m app.main
|
||||
3. Open the GUI and point **Settings → General → Games/Videos directory** at
|
||||
your disc folders (or set `PSP_GAMES_ROOTS` / `PSP_VIDEO_ROOTS`).
|
||||
|
||||
Discs that aren't in the No-Intro DATs can be added to `data/supplement.json`
|
||||
Discs that aren't in the Redump DATs can be added to `data/supplement.json`
|
||||
(`name`, `region`, `crc32`, `sha1`, `md5`) so the tool still recognizes them.
|
||||
|
||||
## Nomenclature
|
||||
@@ -75,7 +75,7 @@ Discs are matched by hash first (most precise), then serial, then filename.
|
||||
## Directory layout
|
||||
|
||||
- `data/dats/` — clrmamepro DAT files (games + videos).
|
||||
- `data/supplement.json` — extra discs not in No-Intro.
|
||||
- `data/supplement.json` — extra discs not in Redump.
|
||||
- `data/credentials.json` — cover/metadata API keys (IGDB, TheMovieDB,
|
||||
ScreenScraper). Environment variables take precedence.
|
||||
- `data/manual_covers/games|videos/` — your own cover images.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
"""Parser for clrmamepro (.dat) files.
|
||||
|
||||
Handles the No-Intro / Redump text DAT format::
|
||||
Handles the clrmamepro text DAT format used by Redump and No-Intro::
|
||||
|
||||
clrmamepro (
|
||||
name "Sony - PlayStation Portable"
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ _ARTICLE_RE = re.compile(r"^(.+),\s*(the|a|an)(?:\s+-\s+(.+))?$")
|
||||
def _normalize(name):
|
||||
name = name.lower()
|
||||
name = re.sub(r"\.(iso|cso|pbp|img|bin)$", "", name) # strip disc extension
|
||||
name = re.sub(r"^\s*\d+\s*-\s*", "", name) # leading No-Intro catalog number
|
||||
name = re.sub(r"^\s*\d+\s*-\s*", "", name) # legacy No-Intro "#### - Name" catalog number
|
||||
name = re.sub(r"\([^)]*\)", " ", name) # parenthetical tags
|
||||
name = " ".join(name.split())
|
||||
m = _ARTICLE_RE.match(name)
|
||||
@@ -141,7 +141,7 @@ def match(conn, record):
|
||||
if row is not None:
|
||||
return f"hash:{field}", dict(row)
|
||||
|
||||
# 2. Local supplement catalog (dumps not present in No-Intro).
|
||||
# 2. Local supplement catalog (dumps not present in the DATs).
|
||||
for entry in _load_supplement():
|
||||
for field in ("crc32", "sha1", "md5"):
|
||||
value = entry.get(field)
|
||||
|
||||
Reference in New Issue
Block a user