v1.3.0
Major release with training mode overhaul, region-specific box art, in-app help sheet, system icon improvements, and an extensive set of input, save state, and identification fixes.
Highlights
- Training Mode Overhaul: P2 join support, motion detection, block button auto-detection, facing direction controls; MAME/FBNeo control mappings across all arcade titles; corrected Mortal Kombat move data
- Region-Specific Box Art: Libretro thumbnail resolver prioritizes region-suffixed titles; ROM entries track requested region, region tag, and fetch date
- Help & FAQ: new in-app Help Sheet with deep links to relevant settings pages and FAQ items with link labels and navigation
- System Icons: new
SFSymbolCatalogservice, image cropping for custom icons, andBoxArtThumbnailServicefor generated thumbnails - Shader Unsaved-Changes Dialog: new confirmation dialog prevents accidental loss of shader preset edits
- Cheat Download Improvements: enhanced flow with confirmation dialogs and localized messages
Detailed Changes
- Enhanced MAME identification with rejection tracking and improved scoring logic
- Orphaned ROMs purging with improved metadata management
- Added context menu support to
GameCardViewandGameListRowView - Dynamic trailing padding on
SidebarRowButtonbased on hover state - Scroll state management in
GameListRowViewandLibraryGridView - Cached achievement progress retrieval in
RetroAchievementsService - Enhanced save state handling with callbacks for loading and saving states
- Added Genesis controller type handling and options for Picodrive core
- Debug logging gated with
LOG_DEBUG/LOG_EXTREMEcompilation conditions — no longer noisy in Release builds - Replaced
printstatements withLoggerServicecalls throughout - Reformatted fight data JSON files to multiline for easier maintenance
- Updated fight data with MAME, Arcade, FBA, and FBNeo control mappings across 200+ titles
- Added system-level input overrides for Sega systems (Master System, Genesis, Game Gear, SG-1000, Sega CD, Sega Pico)
- Dynamic retroID resolution via label matching in
InputDescriptorsManager - Updated
ControllerServicefor per-system button detection - Added
CoreButtonOverrideandRetroButtonmodels for system-aware button mapping - Improved hover effects for last played / last added filters in
LibraryGridView - Game reset handling now clears overlays and deactivates move list
- Simplified sidebar context menu with enhanced hover effects
- Improved shader editor title and Bezel/Controller settings initialization with localization
- Fixed: in-app update download now shows progress correctly (was stuck at 0% for redirected downloads)
- Fixed: extended attributes stripped from app bundle during installation (quarantine/com.apple.metadata removed)