🚀 v0.9.2 Beta — The "Input & Interface" Update
Core Refinement: This update focuses on hardening the input system and establishing a unified UI framework. We've introduced the "Console HUD" standard to ensure a seamless gamepad experience across all screens.
✨ Highlights
🚨 Visual Status Indicators
Game cards now feature an integrated "LED strip" indicator. This visual cue instantly tells you which ROMs are already installed and ready to play on your local storage.
🎮 Unified Console HUD
We’ve completely overhauled how button hints are managed. The new Slot-based HUD API (A, B, X, Y, Start, Select, D-Pad) ensures that every screen feels consistent and provides the same high-quality gamepad feedback.
🏎️ Input Fluidity
No more "skipping" menus! We implemented a 100ms Navigation Cooldown and a refined global Action system. This prevents rapid-fire triggers and ensures that DPAD-hold navigation feels deliberate and smooth.
📂 Change Log
➕ Added
- Installed Indicator LED 🟢 | Visual strip on game cards for downloaded ROMs.
- Slot-based HUD API ⌨️ | New unified system for A, B, X, Y, Start, Select, and D-Pad actions.
- Shared UI Components 🧩 |
ConsoleSetupHudis now shared between onboarding and config modes. - Intelligent Auto-Scroll 📜 |
ConsoleFocusablenow automatically scrolls focused elements into view.
🔧 Improved
- Onboarding Rework 🪄 | Streamlined setup flow with strict guard checks for server tests and saves.
- Input Architecture 🧠 | Global Actions now use centralized
isEnabled()checks for cleaner code. - Navigation Cooldown ⏱️ | 100ms debounce prevents rapid-fire input on DPAD hold.
- Config Simplification |
ConfigModeScreennow utilizes the shared HUD logic for better maintainability.
🛡️ Fixed
- Input Duplication 🛠️ | Resolved an issue where holding the DPAD produced duplicate navigation events.
- Focus Node Stability 🎯 |
ConsoleFocusable.didUpdateWidgetnow correctly handles focus node swaps. - Overlay Priority 🏗️ | Fixed the lifecycle and priority management of the
ExitConfirmationOverlay.
🛠️ Internal & Architecture
- Widget Decoupling: Separated HUD logic from screen-specific code for better reusability.
- Lifecycle Guards: Hardened the overlay entry/exit logic to prevent focus leaks.
Full Changelog: v0.9.1-beta...v0.9.2-beta