{"id":135822,"date":"2026-08-10T07:54:37","date_gmt":"2026-08-10T05:54:37","guid":{"rendered":"https:\/\/www.emu-france.com\/?p=135822"},"modified":"2026-08-11T10:20:18","modified_gmt":"2026-08-11T08:20:18","slug":"utilitaires-multi-systemes-simplelauncher-v5-6-0","status":"publish","type":"post","link":"https:\/\/www.emu-france.com\/?p=135822","title":{"rendered":"[Utilitaires Multi-systemes] SimpleLauncher v5.6.1"},"content":{"rendered":"<p>Simple Launcher est une interface moderne pour \u00e9mulateurs qui facilite le lancement de jeux r\u00e9tro et ajoute surtout un support CHD universel gr\u00e2ce \u00e0 son module CHDMounter, permettant d\u2019utiliser des fichiers CHD m\u00eame avec des \u00e9mulateurs qui ne les prennent pas en charge nativement, comme RPCS3, Xenia , Xemu ou autres.<br \/>\n&nbsp;<br \/>\n<a href=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2024\/03\/simplelauncher.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-78824\" src=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2024\/03\/simplelauncher.png\" alt=\"\" width=\"422\" height=\"223\" srcset=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2024\/03\/simplelauncher.png 1001w, https:\/\/www.emu-france.com\/wp-content\/uploads\/2024\/03\/simplelauncher-300x159.png 300w, https:\/\/www.emu-france.com\/wp-content\/uploads\/2024\/03\/simplelauncher-768x406.png 768w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/a><br \/>\n&nbsp;<br \/>\nLes changements sont les suivants:<br \/>\n&nbsp;<br \/>\n<em><u><b>Parameter Resolver API<\/b><\/u><\/p>\n<p>* <b>\u00ab\u00a0Suggest\u00a0\u00bb buttons<\/b> \u2014 Added to the Edit System window for every emulator parameter field.<br \/>\n* <b>AI-powered suggestions<\/b> \u2014 An AI-powered API suggests the best emulator parameters based on the system configuration.<br \/>\n* <b>Confirmation before applying<\/b> \u2014 Shows a dialog with the suggested parameter and an explanation before applying it.<br \/>\n* <b><code>Explanation:<\/code> prefix handling<\/b> \u2014 If the AI response starts with \u00ab\u00a0Explanation:\u00a0\u00bb, that text is treated as the explanation and is no longer inserted into the emulator parameter field.<br \/>\n* <b>Loading overlay<\/b> \u2014 Added a loading overlay to AI parameter resolution.<br \/>\n* <b>URL normalization<\/b> \u2014 The AI parameter resolver URL is normalized (trailing slash) and uses a fixed 60-second timeout.<br \/>\n&nbsp;<br \/>\n<u><b>Image Matching Improvements<\/b><\/u><\/p>\n<p>* <b>Annotation stripping<\/b> \u2014 New <code>EnableAnnotationStripping<\/code> option strips region tags, revision numbers, and other annotations from filenames for better cover image matching.<br \/>\n&nbsp;<br \/>\n<u><b>Game File Watcher<\/b><\/u><\/p>\n<p>* <b>New <code>GameFileWatcherService<\/code><\/b> \u2014 Monitors ROM system folders for external file changes (create, delete, rename) and automatically refreshes the game list when changes are detected.<br \/>\n* <b>Debouncing (500ms)<\/b> \u2014 Avoids rapid re-scans during batch file operations like archive extraction.<br \/>\n* <b>Automatic start\/stop<\/b> \u2014 Watching starts and stops automatically when switching between systems.<br \/>\n&nbsp;<br \/>\n<u><b>7za Fallback Extraction<\/b><\/u><\/p>\n<p>* <b>Automatic fallback to 7za<\/b> \u2014 When SharpCompress fails to extract <code>.7z<\/code> files, the application now automatically retries using the bundled <code>7za.exe<\/code> (or <code>7za_arm64.exe<\/code> on ARM64).<br \/>\n* <b>Bundled binaries<\/b> \u2014 Added 7za binaries to <code>tools\/SevenZip\/<\/code> and <code>tools\/BatchConvertIsoToXiso\/<\/code>, plus <code>7za.exe<\/code> \/ <code>7za_arm64.exe<\/code> to <code>BatchConvertToRVZ<\/code> and <code>BatchConvertToCHD<\/code> for fallback extraction\/conversion.<br \/>\n&nbsp;<br \/>\n<u><b>Batch File Path Validation<\/b><\/u><\/p>\n<p>* <b>Pre-execution validation<\/b> \u2014 Batch files are now validated before execution to detect referenced paths that do not exist.<br \/>\n* <b>Warning dialog<\/b> \u2014 Shows a dialog listing the missing paths with the option to continue or cancel.<br \/>\n* <b>Direct execution<\/b> \u2014 Batch files are now executed with <code>UseShellExecute<\/code> instead of <code>cmd.exe \/c<\/code> for better compatibility.<br \/>\n&nbsp;<br \/>\n<u><b>OneDrive Error Handling<\/b><\/u><\/p>\n<p>* <b>Specific OneDrive guidance<\/b> \u2014 When a game file fails to launch and its path contains \u00ab\u00a0OneDrive\u00a0\u00bb, the error message now provides specific instructions about syncing and downloading the file.<br \/>\n* <b>Localized message<\/b> \u2014 Added the localized <code>oneDriveIssue<\/code> string across all supported languages.<br \/>\n&nbsp;<br \/>\n<u><b>Invalid Folder Character Validation<\/b><\/u><\/p>\n<p>* <b>Path character validation<\/b> \u2014 System folder and image folder paths are now validated for invalid path characters before attempting directory creation.<br \/>\n* <b>Clear error message<\/b> \u2014 Shows a message listing the invalid characters found.<br \/>\n&nbsp;<br \/>\n<u><b>CHD Support<\/b><\/u><\/p>\n<p>* <b>Kega Fusion<\/b> \u2014 Added CHD support for the Kega Fusion emulator.<br \/>\n* <b>Exit code reporting<\/b> \u2014 CHD mount failures now include the process exit code in error messages for easier debugging.<br \/>\n* <b>Dokan check<\/b> \u2014 Added a Dokan installation check before CHD mount operations.<br \/>\n* <b>ARM64 support<\/b> \u2014 CHD images are now mounted using the architecture-specific CHDMounter binary (<code>CHDMounter.exe<\/code> on x64, <code>CHDMounter_arm64.exe<\/code> on ARM64), enabling CHD mounting on Windows ARM64. The tool now ships with a README.<br \/>\n&nbsp;<br \/>\n<u><b>PCSX2 Improvements<\/b><\/u><\/p>\n<p>* <b>Permission error detection<\/b> \u2014 PCSX2 configuration injection now detects file permission errors and shows a user-friendly notification instead of crashing.<br \/>\n* <b>Portable mode<\/b> \u2014 PCSX2 configuration injection now resolves the config file correctly when PCSX2 runs in portable mode.<br \/>\n&nbsp;<br \/>\n<u><b>History Database Format Migration<\/b><\/u><\/p>\n<p>* <b>MessagePack format<\/b> \u2014 Migrated <code>history.xml<\/code> to <code>history.dat<\/code> (MessagePack binary format) for faster loading and smaller file size.<br \/>\n* <b>Backward compatibility<\/b> \u2014 Falls back to <code>history.xml<\/code> if <code>history.dat<\/code> is not found.<br \/>\n&nbsp;<br \/>\n<u><b>Global Search Enhancements<\/b><\/u><\/p>\n<p>* <b>Results count<\/b> \u2014 Shows the number of matching results in the global search window.<br \/>\n* <b>AND\/OR operators<\/b> \u2014 Supports boolean operators for more flexible search queries.<br \/>\n* <b>Improved loading state<\/b> \u2014 Better visual feedback during search operations.<br \/>\n&nbsp;<br \/>\n<u><b>Debug Logger Improvements<\/b><\/u><\/p>\n<p>* <b>Buffered logging<\/b> \u2014 Debug log messages are now buffered for better performance.<br \/>\n&nbsp;<br \/>\n<u><b>Download Reliability<\/b><\/u><\/p>\n<p>* <b>Automatic retry<\/b> \u2014 Downloads now automatically retry with exponential backoff on failure.<br \/>\n* <b>Read-only file handling<\/b> \u2014 Extraction now handles read-only files gracefully.<br \/>\n&nbsp;<br \/>\n<u><b>Startup Robustness<\/b><\/u><\/p>\n<p>* <b>Fallback logger<\/b> \u2014 If Serilog initialization fails, the app now falls back to debug output instead of crashing at startup.<br \/>\n* <b>Initialization order<\/b> \u2014 The service provider is built only after the temp-folder check, and startup cleanup (trash + temp files) is more resilient.<br \/>\n* <b>Timeout handling<\/b> \u2014 Added timeouts for the silent update check and usage statistics calls so they can no longer hang indefinitely.<br \/>\n&nbsp;<br \/>\n<u><b>F8 Hotkey Warning<\/b><\/u><\/p>\n<p>* <b>Hotkey in use detection<\/b> \u2014 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.<br \/>\n&nbsp;<br \/>\n<u><b>RetroAchievements<\/b><\/u><\/p>\n<p>* <b>Improved system matcher<\/b> \u2014 Updated the RetroAchievements system matcher for better game matching.<br \/>\n&nbsp;<br \/>\n<u><b>Credential Protection<\/b><\/u><\/p>\n<p>* <b>Encrypted RetroAchievements credentials<\/b> \u2014 RA credentials are now encrypted using Windows Credential Manager.<br \/>\n* <b>Nested settings structure<\/b> \u2014 Emulator configuration now uses a nested settings structure for better organization.<br \/>\n&nbsp;<br \/>\n<u><b>UI\/UX Improvements<\/b><\/u><\/p>\n<p>* <b>Cancel buttons<\/b> \u2014 Added cancel buttons to the SetGamepadDeadZone, Debug, SetLinks, and EditSystem dialogs.<br \/>\n* <b>Tooltips<\/b> \u2014 Added tooltips for data grids, preview images, and viewer windows.<br \/>\n* <b>Dead zone revert confirmation<\/b> \u2014 Added a confirmation message box when reverting dead zone settings.<br \/>\n* <b>Game list refresh<\/b> \u2014 The game list now automatically refreshes when deleting a file that no longer exists on disk.<br \/>\n* <b>Emergency overlay release<\/b> \u2014 Added an emergency overlay release button to GlobalStatsWindow.<br \/>\n&nbsp;<br \/>\n<u><b>Debug Window Improvements<\/b><\/u><\/p>\n<p>* <b>Restored initialization<\/b> \u2014 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.<br \/>\n* <b>Styling &#038; closing behavior<\/b> \u2014 Improved Debug Window styling, log text color, and closing\/exception behavior.<br \/>\n* <b><code>-debug<\/code> command-line flag<\/b> \u2014 Launching SimpleLauncher with the <code>-debug<\/code> argument now opens the Debug Window alongside the main window.<br \/>\n* <b><code>parameters.md<\/code> path fix<\/b> \u2014 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) made <code>parameters.md<\/code> appear \u00ab\u00a0missing\u00a0\u00bb and triggered a modal reinstall dialog that froze the app and the Debug Window.<br \/>\n&nbsp;<br \/>\n<u><b>Path Handling<\/b><\/u><\/p>\n<p>* <b>Quote trimming<\/b> \u2014 Surrounding quotes are now automatically trimmed from paths.<br \/>\n&nbsp;<br \/>\n<u><b>Structured Logging<\/b><\/u><\/p>\n<p>* <b>Serilog<\/b> \u2014 All logging now flows through Serilog (<code>ILogger<\/code>), and the custom <code>ILogErrors<\/code> abstraction 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).<br \/>\n&nbsp;<br \/>\n<u><b>Game List &#038; UI<\/b><\/u><\/p>\n<p>* <b>Async system manager loading<\/b> \u2014 System managers load asynchronously, preventing UI blocking at startup.<br \/>\n* <b>Embedded images fix<\/b> \u2014 Corrected pack URI paths for embedded images and icons.<br \/>\n* <b>Minimize-to-tray handling<\/b> \u2014 Improved minimize-to-tray behavior via proper window state change handling.<br \/>\n&nbsp;<br \/>\n<u><b>Dependency Injection Refactoring<\/b><\/u><\/p>\n<p>* <b>Massive DI migration<\/b> \u2014 Replaced static service dependencies with dependency injection throughout the entire application.<br \/>\n* <b>Constructor injection<\/b> \u2014 All services, ViewModels, and windows now use constructor injection.<br \/>\n* <b><code>MessageBoxLibrary.cs<\/code> removed<\/b> \u2014 Replaced with <code>IMessageBoxLibraryService<\/code>.<br \/>\n* <b><code>DebugLogger<\/code> replaced<\/b> \u2014 Static <code>DebugLogger<\/code> was replaced with the <code>IDebugLogger<\/code> interface.<br \/>\n* <b><code>ContextMenuFunctions<\/code> replaced<\/b> \u2014 Static <code>ContextMenuFunctions<\/code> was replaced with the <code>IContextMenuFunctions<\/code> interface.<br \/>\n&nbsp;<br \/>\n<u><b>MVVM Refactoring<\/b><\/u><\/p>\n<p>* Refactored all configuration windows to the MVVM pattern.<br \/>\n* Refactored the RetroAchievements window to MVVM.<br \/>\n* Added ViewModels for multiple windows, including SupportWindow.<br \/>\n* Introduced the <code>IWindowContext<\/code> abstraction to decouple the game launcher from MainWindow.<br \/>\n&nbsp;<br \/>\n<u><b>Removed Tool<\/b><\/u><\/p>\n<p>* <b>GameCoverScraper removed<\/b> \u2014 The Game Cover Scraper tool has been removed from the Tools menu, along with all its bundled binaries and resources. Use <b>Find Rom Cover<\/b> or <b>Retro Game Cover Downloader<\/b> instead.<br \/>\n&nbsp;<br \/>\n<u><b>Other Improvements<\/b><\/u><\/p>\n<p>* <b>Emulator documentation<\/b> \u2014 Updated <code>parameters.md<\/code> (e.g., new CPCEC download link).<br \/>\n* <b>Code quality<\/b> \u2014 The codebase now compiles with nullable reference types enabled.<br \/>\n&nbsp;<br \/>\n<u><b>Dependency Updates<\/b><\/u><\/p>\n<p>* <code>SharpCompress<\/code> 0.48.1 \u2192 <b>0.50.4<\/b><br \/>\n* <code>Tomlyn<\/code> 2.4.0 \u2192 <b>2.6.0<\/b><br \/>\n* <code>YamlDotNet<\/code> updated to latest version<br \/>\n* <code>MessagePack<\/code> 3.1.6 \u2192 <b>3.1.8<\/b><br \/>\n* <code>Microsoft.Data.Sqlite<\/code> 10.0.8 \u2192 <b>10.0.10<\/b><br \/>\n* <code>Microsoft.Extensions.*<\/code> 10.0.8 \u2192 <b>10.0.10<\/b><br \/>\n* <code>Microsoft.Extensions.Http.Resilience<\/code> 10.6.0 \u2192 <b>10.8.0<\/b><br \/>\n* <code>Microsoft.CodeAnalysis.NetAnalyzers<\/code> 10.0.300 \u2192 <b>10.0.302<\/b><br \/>\n* <code>Microsoft.NET.Test.Sdk<\/code> 18.5.1 \u2192 <b>18.6.0<\/b><br \/>\n* <code>SourceGear.sqlite3<\/code> updated to <b>3.53.4<\/b><br \/>\n* Added <code>Moq<\/code> <b>4.20.72<\/b> <i>(new, for unit testing)<\/i><br \/>\n* Added <code>Serilog<\/code> <b>4.4.0<\/b> with <code>Serilog.Sinks.Async<\/code> 2.1.0, <code>Serilog.Sinks.Debug<\/code> 3.0.0, and <code>Serilog.Sinks.File<\/code> 7.0.0 <i>(new)<\/i><br \/>\n* Added <code>Meziantou.Analyzer<\/code> <b>3.0.139<\/b> <i>(new)<\/i><br \/>\n<\/em><\/p>\n<p>&nbsp;<\/p>\n<p class=\"p_telecharger_icone_zip\"><p class=\"p_telecharger_icone_zip\"><a class=\"telecharger_icone_zip\" href=\"https:\/\/www.emu-france.com\/?wpfb_dl=8059\" title=\"Download SimpleLauncher\">T\u00e9l\u00e9charger SimpleLauncher v5.6.1 (104 Mo)<\/a><\/p><\/p>\n<p class=\"p_site_officiel\"><a class=\"site_officiel\" href=\"https:\/\/github.com\/drpetersonfernandes\/SimpleLauncher\" target=\"_blank\" rel=\"noopener noreferrer\">Site Officiel<\/a><\/p>\n<p class=\"p_en_savoir_plus\"><a class=\"en_savoir_plus\" href=\"https:\/\/www.emu-france.com\/utilitaires\/24-utilitaires-multi-systemes\/294-interfaces-utilisateur-gui-frontends\/\">En savoir plus&#8230;<\/a><\/p>\n<div class=\"fcbkbttn_buttons_block\" id=\"fcbkbttn_left\"><div class=\"fb-share-button  \" data-href=\"https:\/\/www.emu-france.com\/?p=135822\" data-type=\"button_count\" data-size=\"small\"><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Simple Launcher est une interface moderne pour \u00e9mulateurs qui facilite le lancement de jeux r\u00e9tro et ajoute surtout un support CHD universel gr\u00e2ce \u00e0 son module CHDMounter, permettant d\u2019utiliser des fichiers CHD m\u00eame avec des \u00e9mulateurs qui ne les prennent &#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-135822","post","type-post","status-publish","format-standard","hentry","category-par-defaut","uentry","postonpage-1","odd","post-author-Jets"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/pKi2R-zkG","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/135822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=135822"}],"version-history":[{"count":4,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/135822\/revisions"}],"predecessor-version":[{"id":135860,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/135822\/revisions\/135860"}],"wp:attachment":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=135822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=135822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=135822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}