v1.8.2
Patch release refining TV Mode ownership of save state slots and the gamepad navigation hierarchy between gameplay and the app. Adds a per-launch "play fresh" path on Y in TV Mode, prevents the global auto-load preference from being clobbered, and keeps a single physical combo (e.g. L3+R3) bound to both game-overlay and TV-mode entry from firing the wrong action.
Highlights
- TV Mode: Y on the game-detail page now launches a fresh session without auto-loading a save state, while A continues to load the most recent save (Continue).
- Save state safeguards: Per-launch auto-load override no longer overwrites the user's global
saveState_autoLoadOnStartpreference. - Gamepad navigation hierarchy: A combo bound to both "Show Game Toolbar" and "Enter TV Mode" now fires only the context-appropriate action — toolbar during gameplay, TV-mode entry in the library — enforcing a "game wins over app" priority.
- Fullscreen TV Mode reliability: Re-asserts key-window status after the in-app settings sheet dismisses so the controller stays responsive without a mouse click.
Detailed Changes
- Added per-launch
disableAutoLoadOnStartplumbing throughTVModeViewModel.launchSelected→GameLauncher.launchGame→StandaloneGameWindowController.launch - Introduced
effectiveShouldAutoLoad()onStandaloneGameWindowControllerso a fresh-start launch never clobbers the user's global auto-load preference - Routed Y on the TV Mode game-detail page to
launchSelected(disableAutoLoad: true); Y elsewhere still opens the settings sheet - Surfaced the most-recent save slot on the TV Mode detail page and bound A to Continue (load slot) when a save exists
- Softened the
GamepadNavigationManager.pollkey-window guard so global overlay contexts dispatch regardless of transiently-nilNSApp.keyWindow(fixes post-sheet-dismissal deadness in fullscreen TV Mode) - Added
GamepadNavAction.isLibraryOnlyActionand gatedprocessActionson a "game wins over app" hierarchy so a shared combo no longer double-fires toolbar + TV-mode entry - Strengthened
restoreKeyWindowAfterSettingswith a second delayed re-key attempt to cover SwiftUI sheet teardown races on fullscreen windows