Parameter Resolver API
- "Suggest" buttons — Added to the Edit System window for every emulator parameter field.
- AI-powered suggestions — An AI-powered API suggests the best emulator parameters based on the system configuration.
- Confirmation before applying — Shows a dialog with the suggested parameter and an explanation before applying it.
Explanation:prefix handling — If the AI response starts with "Explanation:", that text is treated as the explanation and is no longer inserted into the emulator parameter field.- Loading overlay — Added a loading overlay to AI parameter resolution.
- URL normalization — The AI parameter resolver URL is normalized (trailing slash) and uses a fixed 60-second timeout.
Image Matching Improvements
- Annotation stripping — New
EnableAnnotationStrippingoption strips region tags, revision numbers, and other annotations from filenames for better cover image matching.
Game File Watcher
- New
GameFileWatcherService— Monitors ROM system folders for external file changes (create, delete, rename) and automatically refreshes the game list when changes are detected. - Debouncing (500ms) — Avoids rapid re-scans during batch file operations like archive extraction.
- Automatic start/stop — Watching starts and stops automatically when switching between systems.
7za Fallback Extraction
- Automatic fallback to 7za — When SharpCompress fails to extract
.7zfiles, the application now automatically retries using the bundled7za.exe(or7za_arm64.exeon ARM64). - Bundled binaries — Added 7za binaries to
tools/SevenZip/andtools/BatchConvertIsoToXiso/, plus7za.exe/7za_arm64.exetoBatchConvertToRVZandBatchConvertToCHDfor fallback extraction/conversion.
Batch File Path Validation
- Pre-execution validation — Batch files are now validated before execution to detect referenced paths that do not exist.
- Warning dialog — Shows a dialog listing the missing paths with the option to continue or cancel.
- Direct execution — Batch files are now executed with
UseShellExecuteinstead ofcmd.exe /cfor better compatibility.
OneDrive Error Handling
- Specific OneDrive guidance — When a game file fails to launch and its path contains "OneDrive", the error message now provides specific instructions about syncing and downloading the file.
- Localized message — Added the localized
oneDriveIssuestring across all supported languages.
Invalid Folder Character Validation
- Path character validation — System folder and image folder paths are now validated for invalid path characters before attempting directory creation.
- Clear error message — Shows a message listing the invalid characters found.
CHD Support
- Kega Fusion — Added CHD support for the Kega Fusion emulator.
- Exit code reporting — CHD mount failures now include the process exit code in error messages for easier debugging.
- Dokan check — Added a Dokan installation check before CHD mount operations.
- ARM64 support — CHD images are now mounted using the architecture-specific CHDMounter binary (
CHDMounter.exeon x64,CHDMounter_arm64.exeon ARM64), enabling CHD mounting on Windows ARM64. The tool now ships with a README.
PCSX2 Improvements
- Permission error detection — PCSX2 configuration injection now detects file permission errors and shows a user-friendly notification instead of crashing.
- Portable mode — PCSX2 configuration injection now resolves the config file correctly when PCSX2 runs in portable mode.
History Database Format Migration
- MessagePack format — Migrated
history.xmltohistory.dat(MessagePack binary format) for faster loading and smaller file size. - Backward compatibility — Falls back to
history.xmlifhistory.datis not found.
Global Search Enhancements
- Results count — Shows the number of matching results in the global search window.
- AND/OR operators — Supports boolean operators for more flexible search queries.
- Improved loading state — Better visual feedback during search operations.
Debug Logger Improvements
- Buffered logging — Debug log messages are now buffered for better performance.
Download Reliability
- Automatic retry — Downloads now automatically retry with exponential backoff on failure.
- Read-only file handling — Extraction now handles read-only files gracefully.
Startup Robustness
- Fallback logger — If Serilog initialization fails, the app now falls back to debug output instead of crashing at startup.
- Initialization order — The service provider is built only after the temp-folder check, and startup cleanup (trash + temp files) is more resilient.
- Timeout handling — Added timeouts for the silent update check and usage statistics calls so they can no longer hang indefinitely.
F8 Hotkey Warning
- Hotkey in use detection — When the F8 global hotkey cannot be registered because another program is already using it, Simple Launcher now shows a clear warning dialog and disables the screenshot functionality instead of failing silently. Localized in all supported languages.
RetroAchievements
- Improved system matcher — Updated the RetroAchievements system matcher for better game matching.
Credential Protection
- Encrypted RetroAchievements credentials — RA credentials are now encrypted using Windows Credential Manager.
- Nested settings structure — Emulator configuration now uses a nested settings structure for better organization.
UI/UX Improvements
- Cancel buttons — Added cancel buttons to the SetGamepadDeadZone, Debug, SetLinks, and EditSystem dialogs.
- Tooltips — Added tooltips for data grids, preview images, and viewer windows.
- Dead zone revert confirmation — Added a confirmation message box when reverting dead zone settings.
- Game list refresh — The game list now automatically refreshes when deleting a file that no longer exists on disk.
- Emergency overlay release — Added an emergency overlay release button to GlobalStatsWindow.
Debug Window Improvements
- Restored initialization — The Debug Window opens correctly again: its constructor (lost during the Serilog/DI refactor) was restored, and the window now applies the current app theme on open.
- Styling & closing behavior — Improved Debug Window styling, log text color, and closing/exception behavior.
-debugcommand-line flag — Launching SimpleLauncher with the-debugargument now opens the Debug Window alongside the main window.parameters.mdpath fix — The parameters guide is now resolved relative to the application folder instead of the current working directory. Previously, launching the app from another working directory (shortcuts, scripts, IDE) madeparameters.mdappear "missing" and triggered a modal reinstall dialog that froze the app and the Debug Window.
Path Handling
- Quote trimming — Surrounding quotes are now automatically trimmed from paths.
Structured Logging
- Serilog — All logging now flows through Serilog (
ILogger), and the customILogErrorsabstraction was removed. The Debug Window receives log entries through a dedicated Serilog sink, a rolling daily file sink (7 days retained) is written to the local app data folder, and bug report sinks were added to all projects (including the tools and Updater).
Game List & UI
- Async system manager loading — System managers load asynchronously, preventing UI blocking at startup.
- Embedded images fix — Corrected pack URI paths for embedded images and icons.
- Minimize-to-tray handling — Improved minimize-to-tray behavior via proper window state change handling.
Dependency Injection Refactoring
- Massive DI migration — Replaced static service dependencies with dependency injection throughout the entire application.
- Constructor injection — All services, ViewModels, and windows now use constructor injection.
MessageBoxLibrary.csremoved — Replaced withIMessageBoxLibraryService.DebugLoggerreplaced — StaticDebugLoggerwas replaced with theIDebugLoggerinterface.ContextMenuFunctionsreplaced — StaticContextMenuFunctionswas replaced with theIContextMenuFunctionsinterface.
MVVM Refactoring
- Refactored all configuration windows to the MVVM pattern.
- Refactored the RetroAchievements window to MVVM.
- Added ViewModels for multiple windows, including SupportWindow.
- Introduced the
IWindowContextabstraction to decouple the game launcher from MainWindow.
Removed Tool
- GameCoverScraper removed — The Game Cover Scraper tool has been removed from the Tools menu, along with all its bundled binaries and resources. Use Find Rom Cover or Retro Game Cover Downloader instead.
Other Improvements
- Emulator documentation — Updated
parameters.md(e.g., new CPCEC download link). - Code quality — The codebase now compiles with nullable reference types enabled.
Dependency Updates
SharpCompress0.48.1 → 0.50.4Tomlyn2.4.0 → 2.6.0YamlDotNetupdated to latest versionMessagePack3.1.6 → 3.1.8Microsoft.Data.Sqlite10.0.8 → 10.0.10Microsoft.Extensions.*10.0.8 → 10.0.10Microsoft.Extensions.Http.Resilience10.6.0 → 10.8.0Microsoft.CodeAnalysis.NetAnalyzers10.0.300 → 10.0.302Microsoft.NET.Test.Sdk18.5.1 → 18.6.0SourceGear.sqlite3updated to 3.53.4- Added
Moq4.20.72 (new, for unit testing) - Added
Serilog4.4.0 withSerilog.Sinks.Async2.1.0,Serilog.Sinks.Debug3.0.0, andSerilog.Sinks.File7.0.0 (new) - Added
Meziantou.Analyzer3.0.139 (new)
Full Changelog: release5.5.0...release5.6.0