From 607d0df28c88fc0239cff84c03e451ffeb88d11b Mon Sep 17 00:00:00 2001 From: Stefan Koelle Date: Tue, 11 Aug 2026 14:37:28 +0200 Subject: [PATCH] release v0.9.4 ### Changes This release updates the Marcer GameDVD Launcher with the following changes: #### Bug Fixes - Fix the placeholder handling when empty - now properly uses the bundled config file - Add validation for in constructor - Fix bounds checking on console resize - Fix key binding documentation in AGENTS.md #### Features - Add bundled Hatari configuration file () - Make optional with automatic fallback to bundled config - Update documentation to reflect new optional config behavior - Add key support (alias for Enter) #### Documentation - Update AGENTS.md module overview to include new RightArrow key binding - Update README.md to clarify optional with bundled fallback - Create documentation file with known issues and fixes #### Code Improvements - Centralize magic strings and constants - Add helper for console height management - Make color scheme fully configurable via JSON - Improve Win32 constants documentation The launcher now provides a more robust and configurable experience with proper error handling and improved documentation. --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index de76970..b88b73a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -13,7 +13,7 @@ The implementation is split into focused modules (files) under the `src/MarcerGa - MarcerGameDvdLauncher/OverlayDirectoryBrowser.cs: Filesystem overlay and browsing logic — merges root and patch directories, enumerates folders and ZIPs, protects against path traversal and ensures navigation cannot leave the configured roots. - MarcerGameDvdLauncher/NavigationController.cs: Encapsulates selection, scrolling and relative-path navigation logic (cursor, page up/down, per-directory remembered selection/state); uses named scroll-fraction constants. - MarcerGameDvdLauncher/MenuRenderer.cs: Console rendering logic — efficient per-line redraw, double-buffering, configurable color selection via injected `AppColorConfig`, and the help box overlay. -- MarcerGameDvdLauncher/InputController.cs: Handles key events (arrow keys, Enter, Backspace, PageUp/Down, `*`, `?`, ESC) and the associated navigation/drawing logic; owns `ReloadGameEntries` and the virtual `Favorites` folder integration. +- MarcerGameDvdLauncher/InputController.cs: Handles key events (arrow keys, Enter, Backspace, PageUp/Down, `*`, `?`, ESC, RightArrow) and the associated navigation/drawing logic; owns `ReloadGameEntries` and the virtual `Favorites` folder integration. - MarcerGameDvdLauncher/HatariLauncher.cs: Responsible for validating the Hatari executable and starting Hatari with the configured argument template (replaces `{cfg}` and `{zip}`). Exposes `DefaultConfigFile` constant (`MarcerGameDvd-Hatari.cfg`); when `Hatari.ConfigFile` is empty in `launcher.config.json`, the bundled config from the executable directory is used automatically. - MarcerGameDvdLauncher/FavoritesService.cs: Manages the favorites/bookmark system — toggling favorites on ZIPs, persisting them to `favorites.txt` (via `DefaultFileName` constant), and providing the virtual `Favorites` folder view (via `FavoritesRootName` constant). - MarcerGameDvdLauncher/UIErrorService.cs: Centralized UI error presentation using the console message helper.