Skip to content

Harden Guitar Hero title-screen ownership in V4 - #141

Merged
ProhibitedTV merged 5 commits into
mainfrom
fix/guitar-hero-title-splash-v4
Sep 6, 2026
Merged

ProhibitedTV merged 5 commits into
mainfrom
fix/guitar-hero-title-splash-v4

Conversation

@ProhibitedTV

Copy link
Copy Markdown
Owner

Live failure

The next supervised GH1 run reached the real PRESS ANY BUTTON TO BEGIN title screen, but V3 still misclassified it. The live console showed main menu settling / main_to_quick_play and later track note highway while the title logo remained on screen. The large colored Guitar Hero logo was supplying both false selected-menu color and a weak three-color receptor geometry.

V4 fix

  • add a dedicated structural title-card detector using the large pale center logo + separate lower bright prompt + dark brick background topology
  • title ownership preempts image-only menu/gameplay claims and sends the existing bounded virtual Start transaction
  • reacquire boot route state from the title card even if a prior false positive already moved the policy into menu/gameplay state
  • require stronger receptor-layout confidence before image-only gameplay can own the screen
  • require multiple real stacked text rows before image-only main-menu or difficulty ownership
  • keep exact retained templates authoritative and preserve V3's controller-tutorial handler
  • activate GuitarHeroV4Profile in the registry

Regression coverage

Adds tests proving a title-like frame wins even when injected evidence claims both GAMEPLAY and MAIN_MENU, that corrupted gameplay/menu state is reset to boot and Start is emitted, that weak receptor layouts cannot own gameplay, strong receptor layouts still can, and image-only menus require real row topology.

Evidence boundary

This addresses the exact live title-screen blocker shown in the latest retained capture. Guitar Hero remains diagnostic until the title -> main menu -> setlist -> difficulty -> live highway -> results lifecycle is proven end-to-end on retained runtime evidence.

@ProhibitedTV
ProhibitedTV merged commit aee19a3 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: 4f287532bd

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

# logo colors are not enough. Preserve V2's hit-confidence metric, but demote
# image-only GAMEPLAY when the receptor layout itself is weak.
guarded_obs = obs
if obs.receptor_confidence < self.gameplay_receptor_floor:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Reject the three-receptor confidence ceiling

With the default floor of 0.78, this strict < comparison still accepts an ideally aligned three-color layout: GuitarHeroVision._layout can score three detections as (3/5 * 0.55) + 0.20 + 0.15 + 0.10 = 0.78. That observation then has baseline gameplay confidence 0.78 * 0.88 = 0.6864, above the default 0.64 gameplay threshold even without visible notes, so the exact decorative three-color case this guard is intended to reject can still claim GAMEPLAY.

Useful? React with 👍 / 👎.

Comment on lines +108 to +110
if template_screen is not None:
self._title_splash_score_value = self._title_splash_score(ctx.frame)
return template_screen

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Refresh the title-splash latch before returning templates

Whenever an authoritative template is present, this return bypasses every update to _title_splash_active and title_splash_episodes. An exact title template therefore reports the splash as inactive, while a main-menu or other template following an image-detected title leaves it falsely active and may merge a later title into the prior episode, corrupting the newly added runtime telemetry.

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