RetroArch is an open-source project that makes use of a powerful development interface called Libretro. Libretro is an interface that allows you to make cross-platform applications that can use rich features such as OpenGL, cross-platform camera support, location support, and more in the future.
It comes with its own built-in collection of applications to provide you with a ‘one-stop-shop’ for entertainment.
Libretro and RetroArch are perfectly suited for creating games, emulators and multimedia programs. If you want to learn more, go to our website (listed below).
IMPORTANT – PLEASE READ!!!
This version of RetroArch differs from the one available on our website (www.retroarch.com) in that there is no Core Downloader, in compliance with the Google Play Store’s policies. This version supports 50 cores max. If this is not enough for your needs, there are two options:
* Get RetroArch Plus, also available for free on the Play Store (this supports up to 127 cores). This version requires Android 8.0 or higher.
* Get RetroArch from our website (www.retroarch.com) and download the APK and install it. This version has the Core Downloader and is considered the ‘full-fat’ version.
Pros of the Play Store version vs. the website APK:
* Automatic weekly updates of both cores and RetroArch.
Cons of the Play Store version vs. the website APK:
* Only 50 cores supported max
FEATURES:
* Eye-candy menus to choose from!
* Scan files / directories and add them to game system collections!
* View database information about each game once added to a collection!
* Download programs (‘cores’) online
* Update everything!
* Download Game & Watch games and play them with our exclusive Game & Watch emulator!
* Built-in input remapping
* Ability to remap controls
* Ability to enter and load cheats
* Multi-language support!
* Over 80+ programs(‘cores’) now and counting!
* Play multiplayer with NetPlay!
* Take screenshots, save states and more!
* No DRM
* No restrictions on usage
* Open-source
* No push ads
* No spying
* No ads period
Join us on discord for support and netplay matchmaking
discord.gg/C4amCeV
Visit our Youtube channel here for tutorials, gameplays, news and development progress!
www.youtube.com/user/libretro
www.youtube.com/RetroArchOfficial
For info and help, see our documentation site –
docs.libretro.com/
Visit our website!
www.retroarch.com/
From version 1.17.0_GIT:
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