RetroArch 1.17.0 has just been released.
Grab it here.
Remember that this project exists for the benefit of our users, and that we wouldn’t keep doing this were it not for spreading the love to our users. This project exists because of your support and belief in us to keep going doing great things. We have always prioritized the endusers experience, and unlike others, we have never emburdened them with in-app ads, monetization SDKs or paywalled features, and we intend to continue to do so. If you’d like to show your support, consider donating to us. Check here in order to learn more. In addition to being able to support us on Patreon, there is now also the option to sponsor us on Github Sponsors! You can also help us out by buying some of our merch on our Teespring store!
Changelog
There are more changes than mentioned here, but for the sake of brevity, here is the changes since 1.16.0.
- ACCESSIBILITY/TTS: fix target language and missing espeak handling on Linux
- AI: AI service reworked: performance increase, automatic translation, configurable subtitle placement, and more
- APPLE: Fix WebDAV crash with digest auth (Cloud Sync)
- APPLE: Cloud sync fixes – ignore .DS_Store files and re-sync on app foreground
- APPLE: Don’t re-create default directories
- APPLE: Show Git information correctly
- AUDIO/SYNC: Handle Hz skew adjustment for high refresh rates better (BFI, swap interval)
- AUDIO/MIXER: Separate ffmpeg/mpv and audiomixer conditionals
- AUDIO/WASAPI: Reworked shared buffer operation for more flexibility, fixed exclusive mode last buffer looping when entering menu
- CONFIG/OVERRIDES: Fix setting savefile_directory in override file
- CONFIG: Force fixed locale for numbers
- CHEEVOS: Upgrade to rcheevos 11.0
- CHEEVOS: Use rc_client for state management
- CHEEVOS: Don’t track disc changes when achievements are disabled
- CHEEVOS: Reinitialize rewind buffer after loading game with achievements
- CHEEVOS: Inform user when server is unreachable
- CHEEVOS: Fix crash on first load of game with achievements with threaded video
- EMSCRIPTEN: Increase chunk size for reads/writes
- EMSCRIPTEN: Modularize the JavaScript and clean up the web build
- EMSCRIPTEN: Prefix core name with libretro_ for exports
- EMSCRIPTEN: replace dashes with underscores in corenames (fix for vitaquake cores)
- EMSCRIPTEN: Use ZipFS for web player asset bundle
- EMSCRIPTEN: Change default audio rate to 44100
- IOS: Fix widget on IOS17
- IOS: Exit instead of crash on some errors
- IOS: Fix ios-vulkan-ppsspp
- IOS: Enable HDR support on IOS
- IOS: Add option to disable respecting silent mode
- IOS: Allow ignoring safe area (fullscreen over notch)
- IOS: Default to not enabling keyboard gamepad
- IOS: Fix XRGB8888 in GL driver
- IOS: Allow changing the app icon
- IOS: Add HAVE_ACCESSIBILITY to iOS builds
- IOS/TVOS: Create GL context as GLES3 to fix some rendering performance problems
- INPUT: Fix ghost input when setting RETROK_UNKNOWN
- INPUT: Default ‘Bind Hold’ to 0 to prevent problems with controllers not resting at null state
- INPUT: Add a setting to allow turbo d-pad directions
- INPUT: Don’t save mouse buttons to autoconfig
- INPUT/MENU: Add option for merging ‘Hotkey Enable’ device types
- INPUT/mFI: disable secondary_joypad to prevent issues with controllers detected both as HID and mFI
- INPUT/UDEV: Change event detection to polling in udev_joypad
- INPUT/WAYLAND: Use unaccelerated pointer motion to prevent mouse dead zone
- LAKKA: Add new menu options for Switch (overclock, CEC, BT ERTM)
- LIBRETRO: Add environment command to get playlist path
- LIBRETRO/NETPACKET: Switch environment call number from 76 to 78 (retire 76 as it was never used by any core). Simplify broadcasts by removing the option to send to all but one client, use an explicit RETRO_NETPACKET_BROADCAST constant instead. Separate explicit flushing and querying of incoming packet into two operations. Enable a core to specify a protocol version string which can get used instead of core version to determine compatibility between two players. Log and notify a separate message when there is a content crc mismatch while using this interface to convey it being less severe
- MENU: Fix menu analog stick navigation (1.16.0.1)
- MENU: Add option to find thumbnail images by playlist rom filename (1.16.0.2)
- MENU: Don’t process menu events while input is being flushed (1.16.0.2)
- MENU: Prevent proceeding to next bind when single binding (1.16.0.3)
- MENU: Fix touchscreen menu false positives in case of overlap
- MENU: Sort playlists ignoring extension (Playstation 2 should come after Playstation)
- MENU: Treat System Volume Information folder as hidden on all platforms
- MENU: Add Belarusian language option
- MENU: Fix savestate thumbnail behavior when navigating back to playlist while content is still running
- MENU: Fix word wrapped widget length
- MENU: Add help text to controller drivers
- MENU: Fix quit on content close option
- MENU: Fix thumbnails in History for content loaded through Load Content
- MENU: Flexible thumbnail matching (ROM name – database name – short name)
- MENU: Remove legacy thumbnail pack downloader
- MENU/GLUI: Icon corrections
- MENU/OZONE: Thumbnail related fixes (missing thumbnail bar, fullscreen thumbnail flashing, sidebar focus)
- MENU/RGUI: Fix text scaling in 16:9
- MENU/XMB: Background images take precedence over color themes, default image opacity set the same as color theme opacity
- MENU/XMB: Fix segmentation fault when background image is missing
- MENU/XMB: Several corrections and cleanups
- MENU/XMB: Layout/thumbnail fixes – Thumbnail layout adjustments, Header title improvements, Handheld layout adjustments
- NETWORKING/NETPLAY: Add support for joining MITM servers from command line
- NETWORKING/NETPACKET: Interface connection flow improvements
- OSX: Fix mouse support for MelonDS DS on OSX
- OSX: Option to create a portable build
- PATCHES: Add support for XDelta-formatted patches.
- PATCHES: Fix patching for cores that support contentless mode
- PS2: Fix for no sound
- PS2: Fix 0-byte logs and add memory stats
- PSP: Fix memory leak in audio driver
- RUNLOOP: Frame Rest, experimental sleep feature aiming to lower CPU usage and temperature when using certain CPU hungry vsync modes
- RPI: Fix videocore + switchres compile failure
- SCAN: Do CRC check on PSP/PSP(PSN) content
- TVOS: Enable overlay support
- VIDEO/BFI: Black Frame Insertion added to DirectX10/11/12. BFI Hz range now covers every 60hz multiple under 1000hz. Variable Strobe length via new ‘Dark Frames’ option, algorithm to auto select ‘decent’ Dark Frames choice.
- VIDEO/GLSL: Add FinalViewportSize support to GLSL
- VIDEO/GLSL: Change rotation type to int to maximize compatibility
- VIDEO: Use video refresh rate instead of core refresh rate for menu frame limiting
- VIDEO: Limit paused video refresh rate
- VIDEO: Enforce swap interval 1 in menu if vsync is on
- WII: Enable Cheevos for Wii builds
- WIIU: Fix config file and core info reading
- WIIU: Fix “Up” and “Left” directional input for both Analog sticks for GC Adapter
- WIIU: Fix 3 USB controllers (NES/SNES/Retrode)
- WIIU: Fix file descriptor leak
- WIN32: Prefer D3D11 and WASAPI as default video and audio drivers
- WIN32: Fix window size when aspect ratio is < 0
- WIN32: Fix screen resolution always tied to the main monitor
- WAYLAND: Enable fallback for screensaver inhibit via D-Bus
- WAYLAND: Introduce wp_fractional_scale_v1 protocol for proper fractional scaling
- WAYLAND: Update wayland-protocols version to 1.31