Skip to content

achievements: find IP.BIN at the disc base FAD on CDI images - #2550

Open
JoeMatt wants to merge 1 commit into
flyinghead:masterfrom
Provenance-Emu:fix/cheevos-cdi-base-fad
Open

JoeMatt wants to merge 1 commit into
flyinghead:masterfrom
Provenance-Emu:fix/cheevos-cdi-base-fad

Conversation

@JoeMatt

@JoeMatt JoeMatt commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Many CDI images have two data tracks: track 1 has no IP.BIN, and track 2
holds it at the disc base FAD. rcheevos asks for track 3, which doesn't
exist, then for the first data track, and reads track 1. The hash fails
with "Not a Dreamcast CD" and RetroAchievements doesn't load.

For track 3 and the first data track, return the data track that
contains Disc::GetBaseFAD(), the same base reios and IsoFs use to boot,
and start reading it at the base FAD. GD-ROMs are unchanged, since their
base is track 3 at FAD 45150.

Tested by hashing 66 CDIs and 3 CHDs with the old and new readers:

  • 39 CDIs that failed now hash, including Crazy Taxi, Jet Grind Radio,
    Shenmue and 102 Dalmatians.
  • Different rips of the same game get the same hash.
  • The 27 CDIs and 3 CHDs that already hashed are unchanged.

Testing: hashed with a host harness linking flycast's own disc readers and rcheevos (results above). RetroAchievements server recognition of the new hashes is not yet confirmed in-app.

🤖 Generated with Claude Code

Many CDI images have two data tracks: track 1 has no IP.BIN, and track 2
holds it at the disc base FAD. rcheevos asks for track 3, which doesn't
exist, then for the first data track, and reads track 1. The hash fails
with "Not a Dreamcast CD" and RetroAchievements doesn't load.

For track 3 and the first data track, return the data track that
contains Disc::GetBaseFAD(), the same base reios and IsoFs use to boot,
and start reading it at the base FAD. GD-ROMs are unchanged, since their
base is track 3 at FAD 45150.

Tested by hashing 66 CDIs and 3 CHDs with the old and new readers:
- 39 CDIs that failed now hash, including Crazy Taxi, Jet Grind Radio,
  Shenmue and 102 Dalmatians.
- Different rips of the same game get the same hash.
- The 27 CDIs and 3 CHDs that already hashed are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 13, 2026 21:59

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants