Skip to content

Recognize live Guitar Hero difficulty poster in V7 - #144

Merged
ProhibitedTV merged 6 commits into
mainfrom
fix/guitar-hero-difficulty-v7
Sep 6, 2026
Merged

ProhibitedTV merged 6 commits into
mainfrom
fix/guitar-hero-difficulty-v7

Conversation

@ProhibitedTV

Copy link
Copy Markdown
Owner

Live failure

The V6 run now clears NAME YOUR BAND, the controller tutorial, the title screen, Quick Play, and the setlist. It then reaches the real GH1 difficulty screen shown in the retained capture, but the runtime falls back to bounded boot Start probe instead of selecting a difficulty.

The cause is that the actual Quick Play difficulty screen is not the conventional four-row white/yellow menu assumed by V2's generic detector. It is an orange/brown band poster with large black silhouettes, white DIFFICULTY / EASY / MEDIUM / HARD / EXPERT lettering, and green CONTINUE + red BACK footer badges. The setlist transition temporarily moves the phase to PRESENTATION; once the static poster arrives, generic difficulty evidence remains too weak, so the unknown-static fallback is allowed to probe Start.

V7 fix

  • add a dedicated non-OCR difficulty-poster detector before the inherited generic classifier
  • require five simultaneous live cues: orange/brown central poster, large dark silhouette mass, bright lower-poster lettering, green CONTINUE footer, and adjacent red BACK footer
  • let that detector reacquire DIFFICULTY even if phase/route state has temporarily drifted during the setlist transition
  • reuse the existing V2 difficulty transaction once ownership is established, so configured easy/medium/hard/expert behavior stays unchanged
  • suppress generic recovery while the difficulty poster owns the screen
  • expose difficulty-poster score/active/episode telemetry
  • activate GuitarHeroV7Profile in the registry and public alias

Regression coverage

Adds synthetic retained-topology tests showing that V7:

  • reacquires the difficulty screen from PRESENTATION and confirms Easy
  • can recover the difficulty screen even if route state was already lost back to boot
  • does not collide with the V6 NAME YOUR BAND detector
  • reports V7 difficulty telemetry
  • is selected by the profile registry and aliases

Evidence boundary

This fixes the exact retained blocker in the latest live run. Guitar Hero remains diagnostic until difficulty -> note highway -> post-song/results is proven end to end.

@ProhibitedTV
ProhibitedTV merged commit 8341a2d into main Sep 6, 2026
2 checks passed

@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: b244be7ad4

ℹ️ 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".

# Explicitly revoke title ownership from V4's broad title-card guard. The
# runtime will set MENU/difficulty ownership on the same tick.
self._title_splash_active = False
return GuitarHeroScreen.DIFFICULTY

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 Ignore legacy row selection when the poster detector owns the screen

When the dedicated poster detector claims a non-Easy difficulty screen, this returns DIFFICULTY while retaining obs.selected_difficulty_index from the legacy white/yellow row detector. Valid poster colors in the new orange range (HSV hue 18–30) also satisfy that detector's yellow mask, so the large poster background can produce a bogus fallback row—typically index 2—and _tick_non_gameplay then navigates relative to that value instead of the documented fresh Easy selection. Medium, Hard, or Expert configurations can consequently confirm Easy or Medium; poster ownership should suppress the legacy selected-row evidence and use the known initial selection (or add poster-specific selection detection).

Useful? React with 👍 / 👎.

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