Skip to content

Releases: drpetersonfernandes/SimpleLauncher

release5.1.0

15 Feb 00:10

Choose a tag to compare

Created logic to convert CHD files to ISO on the fly for the "Xemu" and "Xenia" emulators, since both emulators do not natively support CHD files.

  • This allows users to store their Xbox and Xbox 360 ISOs in CHD format and convert them back to ISO on the fly when launching games.
  • 'Simple Launcher' includes a bundled tool called "BatchConvertToXiso" that can convert original REDUMP Xbox ISOs to emulator-ready optimized XISO files. This tool removes unneeded files and optimizes the XISO file for emulators.
  • 'Simple Launcher' also includes a bundled tool called "BatchConvertToCHD" that can convert ISO files to CHD format.
  • Using both tools, you can significantly reduce the size of your Xbox and Xbox 360 game library. In my tests, I achieved a size reduction of approximately 30% over the optimized XISO files.
  • 'Simple Launcher' will convert files back to ISO format on the fly when you launch games.

Created a launch handler for the Ootake emulator, a PC Engine emulator, and for SameBoy, a Game Boy emulator.

  • It will force the extraction of compressed files, since both emulators do not natively support compressed files. This will prevent launch failures.

Created logic to convert CHD files to CUE/BIN on the fly for the Mednafen emulator and the 4DO emulator.

  • Both emulators do not natively support CHD files. This will prevent launch failures.

Fixed MAME emulator handler to properly inject ROM paths into the emulator configuration file.

  • From now on, you no longer need to provide the '-rompath' parameter to run MAME, as the logic will automatically inject the ROM paths from the 'System Folder' into the MAME configuration file. This will prevent launch failures.

Improved logic for generating aliases for Microsoft Windows games, which will enhance game detection.

release5.0.0

11 Feb 04:56

Choose a tag to compare

Refactored GameLauncher Architecture

  • Replaced the monolithic conditional structure with a flexible, strategy-based pattern that dramatically improves extensibility for new emulators and platforms.
  • Created emulator-specific configuration handlers (e.g., AresConfigHandler, XeniaConfigHandler, RaineConfigHandler) that manage pre-launch configuration dialogs and dynamically modify emulator settings files.
  • Implemented launch strategy pattern (e.g., ChdToCueStrategy, XisoMountStrategy, ZipMountStrategy, DefaultLaunchStrategy) to handle diverse launch scenarios—including ISO mounting, archive extraction, format conversion, and direct execution—with clean, maintainable code.
  • Integrated format conversion services for CHD-to-CUE/BIN, CHD-to-ISO, and RVZ-to-ISO transformations, expanding compatibility across emulators. For example, it can convert a CHD file to CUE/BIN on the fly if the emulator does not support CHD.

Configuration Injection Service

  • Built a centralized service that programmatically injects settings into emulator configuration files.
  • Supports 20+ emulators: Ares, Azahar, Blastem, Cemu, Daphne, Dolphin, DuckStation, Flycast, MAME, Mednafen, Mesen, PCSX2, Raine, Redream, RetroArch, RPCS3, Sega Model 2, Stella, Supermodel, Xenia, and Yumir.
  • Xenia integration mirrors Xenia Manager's internal configuration injection functionality.

Enhanced RetroAchievements Integration

  • Automatically injects RetroAchievements credentials into PCSX2, DuckStation, PPSSPP, Dolphin, Flycast, BizHawk, and RetroArch.
  • Added RetroAchievements filter in MainWindow to quickly identify and display probable supported titles.
  • Refined game hashing algorithms across multiple systems for accurate achievement tracking.

UI Enhancements

  • Unified UI busy-state handling throughout the application to provide consistent blocking behavior and progress feedback across all major windows (MainWindow, Favorites, Search, etc.).

Code Quality Improvements

  • Enhanced error handling for XML corruption.
  • Fixed potential deadlocks in play history updates.
  • Centralized system.xml load, edit, and delete operations into the SystemManager class.

release4.9.1

18 Jan 20:02

Choose a tag to compare

  • Package Updates: Several Microsoft-related NuGet packages (Data.Sqlite, Extensions, CodeAnalysis) were updated to their latest patch versions (e.g., from 10.0.1 to 10.0.2).
  • Long Path Support: Enhanced file and directory existence checks in GameLauncher.cs and PathHelper.cs by explicitly handling the long-path prefix (\\?\). This ensures compatibility across different drive types (local, network, removable) and paths exceeding 260 characters.
  • Shortcut Validation:
    • Refined .URL file launching to only validate protocol handlers (like steam://) if the target is a true URI. This prevents drive letters (e.g., C:\) from being incorrectly identified as protocols.
    • Improved error logging for shortcuts by preventing the app from attempting to read binary content from .LNK files during an exception.
  • Thread Safety: Added lock mechanisms in DownloadManager.cs around the CancellationTokenSource. This ensures that starting, canceling, and disposing of downloads is thread-safe.
  • Enhanced Logging
  • Microsoft Store Filtering: Significantly expanded the exclusion list in ScanMicrosoftStoreGames.cs.
  • Tool Updates: Updated several external tools bundled with the launcher, including BatchConvertToCHD, chdman, GameCoverScraper (arm64/x64), SimpleZipDrive, and BatchConvertIsoToXiso.

release4.9.0

13 Jan 04:32

Choose a tag to compare

🎮 RetroAchievements Enhancements

  • Emulator Auto-Configuration: Streamlined setup process with automatic configuration for retroarch
  • UI Localization: Comprehensive localization support across all RetroAchievements interfaces
  • Messaging: Enhanced error and success feedback for better user experience

🏪 Microsoft Store Game Scanning

  • User Verification Window: New interface for confirming detected games

🛡️ Error Handling & Robustness

  • Win32Exception Handling: Improved support for application control policies
  • PowerShell Restrictions: Better handling of execution policy limitations
  • File Lock Management: User-friendly prompts for locked file scenarios
  • Download Resilience: Enhanced retry mechanisms for download and extraction operations

🌍 Localization & UI Improvements

  • Full Localization: Extended support across multiple windows:
    • GlobalStatsWindow
    • RetroAchievementsForAGameWindow
    • FavoritesWindow
    • FilterMenu
  • Dynamic Resources: Refactored UI text to use dynamic resource binding
  • Consistent Styling: Updated button styles in EasyModeWindow

⚡ Performance & Thread Safety

  • Cancellation Tokens: Integrated across asynchronous operations for better responsiveness
  • Thread Safety: Added explicit locks to critical sections (SettingsManager, search results)

release4.8.0

04 Jan 17:03

Choose a tag to compare

Major Overhaul: Microsoft Windows Game Scanning & Enhanced Error Handling

Introduces a major overhaul of Microsoft Windows Game scanning, significantly enhancing error handling, and refining the user interface.

Key Changes

1. Game Scanning Refactoring & Expansion

The monolithic GameScannerService was broken down into modular, platform-specific classes:

  • ScanSteamGames
  • ScanEpicGames
  • ScanGogGames
  • ScanMicrosoftStoreGames
  • ScanAmazonGames
  • ScanBattleNetGames
  • ScanHumbleGames
  • ScanItchioGames
  • ScanRockstarGames
  • ScanUplayGames

This adds support for new platforms and improves existing scanning logic with:

  • Better filtering
  • DLC detection
  • Executable identification
  • Icon extraction heuristics

2. API-based Artwork Download

A new API integration (GameImageClient) was added to download game artwork for Microsoft Windows Games, with robust fallback mechanisms to local icon extraction if the API fails.

3. Enhanced Error Handling & Robustness

  • Long path support: Implemented \\?\ prefix for reliable file and directory operations across services
  • Download and extraction error handling: Including retry logic, disk space checks, user cancellation management, and a new ShowExtractionFailedMessageBoxAsync for manual intervention
  • Game launching error handling: Refined in GameLauncher, adding .URL validation, protocol checks, and a new ShowCustomMessageBox for detailed notifications
  • UIPI exceptions: Gracefully handled in GamePadController with refined error logging

4. UI/UX Improvements

  • Introduced a new global RetroAchievementsWindow for user profiles and unlocks
  • Automated first-run game scanning for Microsoft Windows games
  • Updated menu structures, replacing dynamic headers with static strings for consistency
  • Added a new SupportOptionWindow for AI-based troubleshooting and developer contact

5. Binary & Dependency Updates

Updated various external tools:

  • RetroGameCoverDownloader
  • GameCoverScraper
  • BatchConvertToCHD

6. Code Cleanup & Localization

  • Cleaned up unused code
  • Updated localization strings across all supported languages

release4.7.0

07 Dec 23:49

Choose a tag to compare

🚀 New Features

  • Group Files by Folder: Groups multi-file MAME games (e.g., Software List CHDs/ROMs from PleasureDome) into single UI entries. Compatible only with MAME—warnings shown for non-MAME setups. Handy to launch MAME Software List CHDs.
  • RetroGameCoverDownloader: New tool to help users get cover art for their games.
  • Automatic Creation of 'Microsoft Windows' System: Introduced an algorithm to automatically add links to Epic Games, Steam Games, and Windows Store Games to the frontend.
  • Advanced Global Search: Filter by system, filename, MAME description, folder name, and recursive search.
  • First-Run Welcome Flow: Guides new users to Easy Mode for quick setup.
  • Kebab Menu: "..." button on game entries for quick context actions.
  • Configurable Status Bar: Timeout (default 3s) with detailed feedback for loading/saving/actions.

🔧 Core Refactoring

  • Dependency Injection (DI): GameLauncher, GamePadController, UpdateChecker, ExtractionService, PlaySoundEffects, etc., now instance-based services.
  • ExtractionService: Refactored from ExtractCompressedFile with IExtractionService interface; retry logic for file locks.
  • Thread Safety: SemaphoreSlim for game caches; Dispatcher.InvokeAsync preferred.
  • .NET 10: Target framework upgraded; C# 14 features.

🎨 UI/UX Improvements

  • UpdateHistoryWindow: Native Markdown rendering (no external deps).
  • EditSystemWindow: GroupBoxExpander (collapsible); persist states.
  • Resizable Windows: SetFuzzyMatchingWindow, SetGamepadDeadZoneWindow.
  • Dark Mode Toggle: Navigation menu icon/handler.
  • Loading Overlays: Consistent across windows; disable UI during ops.

🛠️ Tools & Emulators

  • Updated Binaries: tools (bchunk.exe, GameCoverScraper, FindRomCover.exe, BatchConvertIsoToXiso.exe etc.).
  • New Emulators: Ymir (Saturn), NooDs (DS), Gearlynx/Gearboy (Lynx).
  • Docs: Updated parameters.md/helpuser.xml with Amiga models, MAME rompath examples.

🛡️ Robustness & Perf

  • Cancellation Tokens: GlobalSearchWindow, PlayHistoryWindow.
  • Atomic Saves: Favorites prevent corruption via temp files.
  • Cache Invalidation: Clear RA cache on credential changes.
  • Localization: 100+ new strings (artwork, Easy Mode, errors).

release4.6.0

30 Oct 05:19

Choose a tag to compare

  • Introduced tool GameCoverScraper to allow users to scrape cover images online.
  • Updated tool BatchConvertToRVZ with bug fixes.
  • Updated tool RomValidator to allow users to generate No-Intro compatible dat files.
  • Updated emulator configurations for multiple systems.
  • Added options to increase the number of games per page, as requested by users.
  • Added new aspect ratios for button generation.
  • Added caching for the "Feeling Lucky" feature for improved performance.
  • Enhanced SupportWindow with detailed error report generation and improved support request handling.
  • Replaced HelpUserTextBlock with RichTextBox for enhanced formatting and interaction.
  • Enhanced RetroAchievements integration with improved error handling for unauthorized API responses.
  • Updated MAME emulator setup and streamlined argument handling.
  • Updated documentation for multiple systems.
  • Refactored the parameters and paths validation logic.
  • Added multi-image pack download support.
  • Bug fixes.

release4.5.0

11 Oct 05:31

Choose a tag to compare

🏆 Introduced RetroAchievements Integration

  • Full support for viewing RetroAchievements profiles, game achievements, latest masters, and user rankings within a new dedicated window.
  • Advanced hashing logic for accurate game matching.
  • System-aware matching for RetroAchievements console IDs and aliases.

UI/UX Enhancements

  • New overlay buttons on game items for quick access to RetroAchievements, video links, and info links (user-configurable).
  • Introduced MAME sort order toggle (by filename or machine description).

🎮 Emulator & System Support

  • Added MAME a7800 emulator configuration and documentation.
  • Updated easymode.xml and easymode_arm64.xml with the latest emulator versions and new system configurations.

🏗️ Infrastructure

  • Updated RomValidator and SimpleZipDrive executables for x64 and ARM64 platforms.

🔧 Codebase Refinements & Bug Fixes

release4.4.2

29 Sep 04:46

Choose a tag to compare

  • Improvements to error handling, parameter validation, and user experience.
  • Updated SimpleZipDrive to the latest version.
  • Updated emulator references and download links to the latest version.
  • Improved parameter validation to reduce false positives on non-path arguments.
  • Fixed double-click handling in game list mode to prevent errors on placeholder items.

release4.4.1

20 Sep 02:48

Choose a tag to compare

🔧 Bug Fixes

  • Improvements to error handling, parameter validation, and user experience across the SimpleLauncher application.
  • Fix the Supermodel emulator link.