Skip to content

Fix Guitar Hero first-run controller tutorial deadlock - #140

Merged
ProhibitedTV merged 6 commits into
mainfrom
fix/guitar-hero-controller-tutorial
Sep 5, 2026
Merged

ProhibitedTV merged 6 commits into
mainfrom
fix/guitar-hero-controller-tutorial

Conversation

@ProhibitedTV

Copy link
Copy Markdown
Owner

Live failure

The first supervised Guitar Hero V2 run reached GH1's USING THE GUITAR CONTROLLER first-run instruction card. The card contains multiple colored guitar/fret illustrations in the lower half of the frame. V2's color-only receptor search incorrectly accepted those decorations as a coherent note highway, reported track note highway, and never pressed the card's required Continue input.

V3 fix

  • add a dedicated structural detector for the GH1 controller-instruction poster before note-highway vision can claim gameplay
  • require the combined pale headline banner + dense dark headline ink + green instruction body + bottom-left green CONTINUE badge topology
  • map the card's explicit Green-button Continue action to GH1 DualShock L2
  • send bounded L2 retries only after a settle/retry interval
  • hold the transition as presentation so no unrelated Start/Cancel/watchdog inputs race it
  • expose tutorial score/active/attempt/input telemetry
  • activate GuitarHeroV3Profile in the registry while retaining diagnostic maturity

Regression coverage

Adds synthetic first-run-card tests that include decorative five-color fret markers, proving tutorial ownership preempts false gameplay, emits one L2 initially, retries only after the bounded timeout, and does not claim ordinary dark frames.

Evidence boundary

This fixes the exact first live blocker shown in the retained user capture. The rest of the GH lifecycle remains diagnostic until setlist/difficulty/highway/results paths are proven live.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4866e2d81e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 27 to +28
def _guitar_hero_factory(cfg: dict) -> GameProfile:
return GuitarHeroV2Profile(dict(cfg))
return GuitarHeroV3Profile(dict(cfg))

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Export V3 through the public GuitarHeroProfile alias

When callers use the public from ps2_autopilot.profiles import GuitarHeroProfile entry point rather than build_profile, they still receive GuitarHeroV2Profile because profiles/__init__.py continues to alias and export V2. Those callers therefore bypass this tutorial fix, while tests/test_profile_registry.py::test_registry_selects_guitar_hero_v2_and_aliases also fails because build_profile now returns an exact V3 instance but the test still expects V2. Update the public export/alias and its registry regression alongside this factory activation.

Useful? React with 👍 / 👎.

@ProhibitedTV
ProhibitedTV merged commit 48e4828 into main Sep 5, 2026
2 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