What problem does it solve?
There's a lot of headroom in RA coverage. Hashing runs lazily per opened game, so on a 9,127-ROM test library only 73 ROMs had ever been hash-attempted — the algorithms already work, they've just never been run across the library. Disc systems need a different approach: RA hashes a disc's primary executable rather than the whole image, so PS1/PS2/PSP/Saturn/Dreamcast/GC/3DO/PCE-CD currently rely on the filename fallback, which is where the mismatches in #8 come from. Adding a way to re-run matching would also let every future improvement reach ROMs already in the library.
Proposed Solution
- Bulk background hashing pass + a "Re-match RetroAchievements" action in Settings → Tools (cartridge systems first).
- Manual "this isn't the right game" override, for dumps RA hasn't registered.
- Correct disc hashing (rcheevos-compatible, CHD via a vendored reader) plus
.m3u → disc 1.
- Prefer main sets over subsets in the filename fallback; move matching policy into
assets/systems/*.json; collapse the two duplicate resolution pipelines.
- Library-wide achievements badge + "has achievements" filter, so coverage is visible.
Alternatives Considered
Third-party hash services (Hasheous) resolve a dump by No-Intro/Redump hash and carry an RA game id. Useful, but the RA link is title-level rather than per-dump, and disc lookups still need the CHD decompressed — so it adds a network dependency without avoiding the core work. Worth revisiting later as a fallback.
Additional Context
Measured with a cross-compiled RAHasher over 397 disc ROMs: 202 match once hashing is correct, 87 more are reachable via the manual override, and 102 have no RA set published. So the goal is every ROM landing in a definite state — matched, or clearly marked "no achievements available" — with the cartridge bulk pass as the single largest win available.
What problem does it solve?
There's a lot of headroom in RA coverage. Hashing runs lazily per opened game, so on a 9,127-ROM test library only 73 ROMs had ever been hash-attempted — the algorithms already work, they've just never been run across the library. Disc systems need a different approach: RA hashes a disc's primary executable rather than the whole image, so PS1/PS2/PSP/Saturn/Dreamcast/GC/3DO/PCE-CD currently rely on the filename fallback, which is where the mismatches in #8 come from. Adding a way to re-run matching would also let every future improvement reach ROMs already in the library.
Proposed Solution
.m3u→ disc 1.assets/systems/*.json; collapse the two duplicate resolution pipelines.Alternatives Considered
Third-party hash services (Hasheous) resolve a dump by No-Intro/Redump hash and carry an RA game id. Useful, but the RA link is title-level rather than per-dump, and disc lookups still need the CHD decompressed — so it adds a network dependency without avoiding the core work. Worth revisiting later as a fallback.
Additional Context
Measured with a cross-compiled
RAHasherover 397 disc ROMs: 202 match once hashing is correct, 87 more are reachable via the manual override, and 102 have no RA set published. So the goal is every ROM landing in a definite state — matched, or clearly marked "no achievements available" — with the cartridge bulk pass as the single largest win available.