{"id":133824,"date":"2026-05-26T13:29:29","date_gmt":"2026-05-26T11:29:29","guid":{"rendered":"https:\/\/www.emu-france.com\/?p=133824"},"modified":"2026-05-26T13:29:29","modified_gmt":"2026-05-26T11:29:29","slug":"utilitaires-multi-systemes-simplelauncher-v5-5-0","status":"publish","type":"post","link":"https:\/\/www.emu-france.com\/?p=133824","title":{"rendered":"[Utilitaires Multi-systemes] SimpleLauncher v5.5.0"},"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>New System Support<br \/>\n&#8211; Commander Genius \u2014 Added support for the Commander Keen engine recreation, including an intelligent launch strategy that:Automatically parses the cgenius.cfg config to resolve the data\/games directory.<br \/>\n&#8211; Handles ${HOME} and ${BIN} variable expansion in config paths.<br \/>\n&#8211; Extracts ZIP\/7z\/RAR archives and automatically locates Keen game data files (.CK1\u2013.CK6).<br \/>\n&#8211; Flattens nested folder structures and cleans up temp files after launch.<br \/>\n&#8211; Includes dedicated system image and setup documentation.<br \/>\n&nbsp;<br \/>\nImproved DOSBox Support<br \/>\n&#8211; Full DOSBox launch strategy with intelligent game file detection \u2014 automatically finds .conf, .bat, .exe, and .com files inside archives or folders.<br \/>\n&#8211; ISO and CHD support for DOSBox \u2014 Mounts ISO files to scan for executables, then generates a DOSBox config with native imgmount commands. CHD files are mounted via CHDMounter and launched via DOSBox cdrom mount.<br \/>\n&#8211; DOSBox file selection dialog \u2014 When multiple game files are found, presents a clean selection window with file names and relative paths.<br \/>\n&#8211; \u00ab\u00a0Group Files by Folder\u00a0\u00bb extended to DOSBox \u2014 Now works with DOSBox-based emulators (DOSBox, DOSBox-X, DOSBox Staging, dosbox-pure).<br \/>\n&#8211; -conf %ROM% auto-injection \u2014 Automatically inserts the -conf flag when launching via DOSBox if not already present.<br \/>\n&nbsp;<br \/>\nUI\/UX Improvements<br \/>\n&#8211; New minimize-to-tray function \u2014 Allow Simple Launcher to remain open in the tray.<br \/>\n&#8211; System context menu \u2014 Right-click on system buttons now shows Edit and Delete actions, passing the pre-selected system name.<br \/>\n&#8211; Markdown rendering enhancements \u2014 Improved Markdown styling with proper headings, code blocks, tables, lists, blockquotes, and horizontal rules in release notes and help content.<br \/>\n&nbsp;<br \/>\nNew Parameter Placeholder<br \/>\n&#8211; %NAME% \u2014 Resolves to the ROM filename without path or extension. Useful for emulators that expect just the game name (e.g., Commander Genius dir=\u00a0\u00bbgames\/%NAME%\u00a0\u00bb).<br \/>\n&nbsp;<br \/>\nImproved Error Handling<br \/>\n&#8211; Batch file error reporting \u2014 Batch file failures now show a detailed error dialog with the option to open the error log. Batch file contents are also logged on failure for easier debugging.<br \/>\n&#8211; Batch file working directory validation \u2014 Validates that the working directory exists before executing batch files.<br \/>\n&#8211; Unicode normalization for file paths \u2014 Files created on macOS (NFD) can now be found on Windows (NFC) by trying multiple Unicode normalization forms, preventing \u00ab\u00a0file not found\u00a0\u00bb errors.<br \/>\n&#8211; Access denied handling for Updater \u2014 The updater now handles Win32 access denied errors gracefully with a user-friendly message and download page redirect.<br \/>\n&#8211; COMException rendering detection \u2014 Detects WPF render thread failures (UCEERR_RENDERTHREADFAILURE) caused by GPU driver issues or per-pixel transparency.<br \/>\n&nbsp;<br \/>\nHTTP Resilience<br \/>\n&#8211; Replaced custom retry logic with Polly resilience handler \u2014 HTTP downloads now use Microsoft.Extensions.Http.Resilience with exponential backoff and jitter (5 retry attempts, 2-second base delay).<br \/>\n&nbsp;<br \/>\nSingle Instance Improvements<br \/>\n&#8211; Improved single-instance behavior \u2014 Launching a second instance now restores the existing window instead of showing an error message. Uses named events for cross-process signaling with a fallback to window enumeration.<br \/>\n&nbsp;<br \/>\nSound Service<br \/>\n&#8211; Replaced Windows MediaPlayer with NAudio 2.3.0 \u2014 Sound playback no longer requires UI thread dispatcher invocations, improving reliability and eliminating thread-affinity issues.<br \/>\n&#8211; Registered IPlaySoundEffects interface \u2014 Added proper DI registration for sound effects service.<br \/>\n&nbsp;<br \/>\nMVVM Migration to CommunityToolkit.Mvvm<br \/>\n&#8211; Migrated all ViewModels from custom ViewModelBase and RelayCommand infrastructure to CommunityToolkit.Mvvm 8.4.2.<br \/>\n&#8211; Created dedicated ViewModels for AboutWindow (AboutViewModel), ImageViewer (ImageViewerViewModel), SetFuzzyMatching (SetFuzzyMatchingViewModel), DebugWindow, and GlobalStatsWindow.<br \/>\n&#8211; Added unit tests for DebugViewModel, GameVerificationViewModel, and GlobalStatsViewModel.<br \/>\n&nbsp;<br \/>\nService Extraction from MainWindow<br \/>\n&#8211; LoadingOverlayService \u2014 Extracted loading overlay management with operation counting (SetLoadingState, EmergencyRelease).<br \/>\n&#8211; StartupInitializationService \u2014 Consolidated startup logic (first-run wizard, MS Store scanning, game loading).<br \/>\n&#8211; GameListUIService \u2014 Extracted UI state management (grid\/list mode, game button image cleanup, pagination).<br \/>\n&#8211; ThemeMenuService \u2014 Extracted theme switching logic (base themes + accent colors).<br \/>\n&#8211; LanguageMenuService \u2014 Extracted language switching with checkmark management.<br \/>\n&nbsp;<br \/>\nCode Refactoring<br \/>\n&#8211; Injected ILogErrors via constructor\/parameter \u2014 Replaced ServiceProvider resolution with proper constructor and parameter injection across favorites page, global search, context menu services, game button factory, and mount services.<br \/>\n&#8211; Standardized emulator detection checks \u2014 Unified null-conditional access pattern for emulator detection checks (Azahar, Citra, DuckStation, Geolith, MAME, Ootake, Raine, RetroArch, Sameboy, Xemu).<br \/>\n&nbsp;<br \/>\nDokan Driver Validation<br \/>\n&#8211; New DokanValidation class \u2014 Uses P\/Invoke directly against dokan2.dll to check if Dokan is installed before any mount operation.<br \/>\n&#8211; Provides clear error messages when Dokan is missing for ZIP\/CHD mounts.<br \/>\n&#8211; Dokan localization \u2014 Added localized strings for Dokan driver not found dialog with option to open download page.<br \/>\n&nbsp;<br \/>\nDependency Updates<br \/>\n&#8211; CommunityToolkit.Mvvm 8.4.2 (new)<br \/>\n&#8211; NAudio 2.3.0 (new, replaces Windows MediaPlayer)<br \/>\n&#8211; Microsoft.Extensions.Http.Resilience 10.6.0 (new, Polly resilience handler)<br \/>\n&#8211; MessagePack 3.1.4 \u2192 3.1.6<br \/>\n&#8211; YamlDotNet 17.1.0 \u2192 18.0.0<br \/>\n&#8211; SharpCompress \u2192 0.48.1<br \/>\n&#8211; Tomlyn 2.3.2 \u2192 2.4.0<br \/>\n&#8211; Microsoft.Data.Sqlite 10.0.7 \u2192 10.0.8<br \/>\n&#8211; Microsoft.Extensions.* 10.0.7 \u2192 10.0.8<br \/>\n&#8211; Microsoft.CodeAnalysis.NetAnalyzers 10.0.203 \u2192 10.0.300<\/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.7 (139 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=133824\" 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-133824","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-yOs","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\/133824","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=133824"}],"version-history":[{"count":1,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/133824\/revisions"}],"predecessor-version":[{"id":133825,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/133824\/revisions\/133825"}],"wp:attachment":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=133824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=133824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=133824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}