RobLoach / RobLoach/raylib-libretro

Games library: identify ROMs via CRC32/DAT for accurate titles + metadata

Open
#325 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
38
Forks
8
PR merge metrics
No merged PRs in 30d

Description

Follow-up to the new games database (include/raylib-libretro-games.h).

Today a game's title is derived from its filename (extension stripped). Improve this with real identification.

Proposal
  • Compute a hash (CRC32, and/or MD5/SHA1) per ROM during indexing; store it in the games table (add a crc32/hash column).
  • Match against No-Intro / Redump DAT files to resolve the canonical game name, region, version, and (where available) year/publisher/genre; store these as columns and show them in the Games list / a details pane.
  • As a cheap interim step (no DATs), clean up display titles by stripping No-Intro tags like (USA), (Europe), [!], (Rev 1) for display while keeping the raw filename.
  • Hashing GBs of ROMs is expensive: do it incrementally on the scan thread, cache by size+mtime (reuse the existing "unchanged row" fast path), and make full hashing optional/deferred.
Notes
  • Foundation for box-art matching #(thumbnails) and better sorting/search.
  • Roadmap: TASKS.md "CRC32-based ROM identification against No-Intro / Redump dat files" and "Game metadata display in library".

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with include/raylib-libretro-games.h and the TASKS.md entries for CRC32-based ROM identification and game metadata display. Trace the games-table indexing path, including the unchanged-row fast path, and the Games list or details pane before choosing a scoped milestone. Done should include a defined identification or title-cleanup behavior, preserved raw filenames, and matching library display and stored metadata.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
databases, game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.