Skip to content

Fix Xbox 360 metadata matching - #51

Merged
btsouth merged 1 commit into
mainfrom
fix/xbox360-metadata-matching
Sep 16, 2026
Merged

btsouth merged 1 commit into
mainfrom
fix/xbox360-metadata-matching

Conversation

@btsouth

@btsouth btsouth commented Sep 16, 2026

Copy link
Copy Markdown
Owner

Xbox 360 games from Xenia never reached IGDB. GameMetadata::platformIds() had no xbox360 entry, so searchQuery() returned empty and identification stopped at "This platform is unsupported" before any request was made.

Changes:

  • Map xbox360 to IGDB platform 12 so the query is built.
  • Strip trademark marks (/®/©) in cleanTitle(). Xenia's recent.toml records names like Dante's Inferno™, and the mark was carried into the IGDB search string.
  • Add an Xbox 360 entry to ConsoleCatalog so the system has a display name ("Xbox 360") and is marked as a dedicated source.

Tests: metadataMatchingKeepsPlatformsAndEditions now asserts platformIds("xbox360") == {12} and the platform filter in the query; consolePortalsDoNotMergeDifferentFiles asserts the catalog name and dedicated-source flag. Core suite: 201 passed, 0 failed, 1 skipped.

Found while validating Xenia against a real Xbox 360 disc.

Summary by CodeRabbit

  • New Features

    • Added Xbox 360 to the supported console catalog.
    • Xbox 360 games now resolve to the correct platform metadata and dedicated source classification.
    • Game title cleanup now removes trademark, registered, and copyright symbols.
  • Bug Fixes

    • Improved Xbox 360 title matching and platform-specific search filtering.

Xbox 360 games never reached IGDB because the platform map had no xbox360
entry, so searchQuery returned empty and identification stopped at
"This platform is unsupported".

- Map the xbox360 system to IGDB platform 12.
- Strip trademark marks from search titles, since Xenia's recent.toml writes
  names such as "Dante's Inferno(TM)".
- Add an Xbox 360 entry to the console catalog so the system has a display
  name and dedicated-source flag.
@coderabbitai

coderabbitai Bot commented Sep 16, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: a954349a-b2f1-4b7d-9dd6-f08f908c2f08

📥 Commits

Reviewing files that changed from the base of the PR and between 131819a and a684f2d.

📒 Files selected for processing (3)
  • src/library/ConsoleCatalog.cpp
  • src/metadata/GameMetadata.cpp
  • tests/CoreTests.cpp

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.


📝 Walkthrough

Walkthrough

The change adds Xbox 360 to the console catalog, maps it to IGDB platform 12, removes trademark symbols during title cleanup, and adds assertions for catalog and metadata behavior.

Changes

Xbox 360 support

Layer / File(s) Summary
Xbox 360 catalog registration
src/library/ConsoleCatalog.cpp, tests/CoreTests.cpp
The catalog defines Xbox 360 aliases, folders, supported extensions, and dedicated-source status. Tests verify the catalog mappings.
Metadata normalization and platform resolution
src/metadata/GameMetadata.cpp, tests/CoreTests.cpp
cleanTitle removes trademark, registered, and copyright symbols. Xbox 360 maps to IGDB platform 12, and tests verify the generated search constraint.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to a684f

The Xbox 360 catalog and metadata mapping are supported by the inspected contracts, with no established merge-blocking defect.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 3 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: fixing Xbox 360 metadata matching.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/xbox360-metadata-matching

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@btsouth
btsouth merged commit 696082c into main Sep 16, 2026
9 checks passed
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.

1 participant