Skip to content

Megingiard-v0.9.0

Choose a tag to compare

@stormpanda stormpanda released this 04 Sep 15:48
· 46 commits to main since this release

Megingiard Release Notes — 0.8.0 to 0.9.0

Megingiard 0.9.0 is a major milestone release introducing a new gamepad-first UI on the top display, dedicated App Launcher buttons that turn into a floating bubble to go back and forth between Megingiard and other apps, deep emulator session auto-switching across PS2, PSP, Switch, and PC titles, precision gamepad controls, and extensive reliability enhancements.

Also, we have a Discord Server now! Be one of the first to join here https://discord.gg/rXahEXKTak

🚀 New Features

  • Primary Display Overlay Architecture & Gamepad-Centric Console UI (58d8d2c0): A monumental paradigm shift moving complex editors, inspectors, and settings off the compact secondary display and onto the primary 16:9 display as translucent, zero-pause overlays with a console-grade, gamepad-first navigation experience:

    • Primary Screen Overlay Paradigm: Instead of cluttering the bottom interactive touch surface with heavy menus, full configuration decks (MacroPad Editor, Button Settings, Global Settings, Layout Inspectors, and Crop Selectors) now launch on the primary screen (Display 0) via PrimaryOverlayManager, keeping the bottom display entirely dedicated to live touch controls.
    • Console-Grade Gamepad Navigation Architecture: Designed a handheld-first navigation system featuring two-pane layouts (GamepadTwoPaneScaffold) with a 210dp category sidebar rail, fast L1/R1 bumper switching, D-Pad/analog traversal, and persistent cursor memory between sidebar and content decks.
    • Two-Tier Focus System: Interactive cards operate in two distinct tiers—Tier 1 navigates between cards, while Tier 2 illuminates value capsules for direct value adjustment (sliders, steppers, and choice carousels) with B-button hierarchical cancellation.
    • Gamepad Design System Suite: Replaced legacy dialog controls with a unified suite of console components—GamepadChoiceCard, GamepadToggleCard, GamepadStepperCard, GamepadSliderCard, GamepadActionCard, GamepadSearchBar, and GamepadConfirmDialog, utilizing subdued unfocused borders to eliminate visual clutter.
    • Multi-Screen Screenshot Deck: Redesigned the Quick Menu top deck into dual bezel-bordered cards, introducing instant capture tools for Top Screen, Bottom Screen, and vertically stitched Dual-Screen ("Both") captures with live preview overlays and privileged daemon targeting.
    • Editor Enhancements & Ambient Empty State: Added a temporary background hide toggle to preview screen mirror cutouts cleanly, 2dp high-visibility selection borders, circular cutout collision boxes, and an ambient dashed empty layout guide (EmptyLayoutPlaceholder) with instant one-tap / Gamepad-A editor entry.
    • Typography & Localization (i18n): Pruned 68 legacy string keys, eliminated trailing ellipses, unified Material Symbols, and brought German and Traditional Chinese (values-zh-rTW) to complete parity.
  • App Launcher Buttons & Floating Bubble Overlay (00c167c4): Added a new App Launcher button type to MacroPad allowing users to open installed applications directly on the bottom display, with a non-intrusive floating bubble to quickly return to Megingiard.

  • Expanded Emulator Game Detection (cb082658, dd0fc6c1, b4424f4e): Implemented real-time game tracking and automatic profile switching for PlayStation 2 (PCSX2, AetherSX2, NetherSX2), Nintendo Switch (Yuzu, Suyu, Sudachi), and PlayStation Portable (PPSSPP via embedded debugger API).

  • Background Image Scaling Modes (86e66392): Added customizable Fill, Fit, and Stretch scaling options for custom MacroPad background artwork.

  • Precision Gamepad Controls (693399f2, 613913c1): Hold the L2 trigger to engage fine-grained 1px/1-percent precision adjustments when moving cutouts or navigating slider and stepper controls with the physical gamepad.

  • Dynamic Accent Contrast Engine (924885b3): The theme engine now dynamically calculates on-accent contrast based on WCAG luminance standards, ensuring high readability across all custom accent colors.

  • Privileged Mode Status Indicator (b5c6de06): Global Settings now prominently displays a live running status indicator and version badge for the privileged daemon.

  • Privileged Touch Macro Streaming (d21a2ca5, 016759de): Enhanced touch macro recording and playback via direct privileged daemon event streaming.

🐛 Bug Fixes

  • GameNative Title Resolution (6ffd2662): Filtered out internal Wine system services (plugplay.exe, svchost.exe, rpcss.exe) so Windows games running through GameNative are cleanly identified by their actual titles.
  • Virtual ROM Profile Associations (dce551e0): Bound virtual ROM identifiers to profile associations for titles without filesystem ROM files, preventing game profiles from hijacking the entire emulator package, and automatically resetting active profiles when games close.
  • Virtual Display Deadlock Prevention (f1c6ae2c): Resolved a system deadlock during screen mirroring virtual display initialization on secondary screens.
  • Launch Focus ANR Fix (ad0a125f): Anchored primary display window focus during app launch to eliminate intermittent input ANRs.
  • Legacy Backup Import Checksum (39d096a5): Fixed a checksum mismatch bug when restoring configuration files exported from older versions of Megingiard.
  • Mirror Presentation Window Background (1c02924e): Enforced a pure black background on the native presentation window to eliminate border light leaks.
  • UI & Layout Safeguards (b7febd32, 2a50f369, 9f2ff80c): Added user feedback preventing accidental deletion of a profile's last remaining layout, added toasts for cross-profile layout copies, and enabled multi-line text wrapping for toast notifications.

⚠️ Known Issues

  • Manual setup for privileged mode is broken due to the keyboard not opening when trying to input the connect port. Please use auto setup from Global Settings -> Start Welcome Tour instead.
  • Using edge blending in the screen mirroring settings on any theme but Dark OLED causes the cutouts to get slightly tinted based on the background color of the theme.
  • Adding a new macro button fails to assign the selected macro to that button and always picks the first macro in the list.

📄 Development & Documentation Updates

View Documentation Details

The following development docs and specifications were updated in this release:

  • System Architecture (docs/ARCHITECTURE.md): Documented 10-module Feature-First modularization, CompanionSurfaceMode dual-layer UI state architecture, and standalone Companion autonomy.
  • MacroPad Specification (docs/features/macropad/FEATURE.md): Documented FR-P15 App Launcher button actions, floating bubble overlay mechanics, and virtual ROM identifier binding.
  • Quick Menu Specification (docs/features/quickmenu/FEATURE.md): Documented bidirectional Hub / MacroPad view switching and L2 precision modifier controls.
  • Theming Specification (docs/features/theming/FEATURE.md): Documented dynamic onAccent contrast calculation and centralized AppModalDialog design tokens.
  • Screen Mirror Specification (docs/features/mirror/FEATURE.md): Documented live cutout L2 precision scaling and native presentation background pitch black rendering.
  • Security Concept (SECURITY_CONCEPT.md): Documented privileged daemon sub-touch event streaming and hardware binary integrity verification.
  • Development Guidelines (AGENTS.md): Enforced standalone Companion autonomy, strict zero-heuristics policy, and Kotlinx-Kover test coverage tooling.