RetroArch is an open source, multi-platform frontend for the libretro API. It is designed to be a fast, lightweight, and portable multi-system emulator.
RetroArch is available for Windows, OS X, Linux, Android, iOS (jailbroken), BlackBerry 10, Raspberry Pi, OpenPandora, PlayStation 3, PlayStation 4, Xbox, Xbox 360, GameCube, Nintendo Wii, 3DS, PlayStation Portable and PlayStation Vita.
Downloads[]
PC Versions[]
- Dev builds (Windows 64-bit, Android)
- EmuCR dev builds (Windows 64-bit, Android)
- RetroArch-Phoenix launcher (Windows 64-bit, no longer updated)
Mobile/Console Versions[]
- [1]RetroArch for Android
- RetroArch for 3DS
- RetroArch for PS3 (CFW) and PS3 (DEX) v.1.0.0.2
- RetroArch for PS4
- RetroArch for Xbox and Xbox 360 v.1.0.0.2
- RetroArch for BlackBerry 10
- RetroArch for Wii
- RetroArch for Switch
Installing on Linux[]
Supported Systems[]
- Main article: libretro#Cores
Features[]
- Consistency across multiple systems.
- Custom resolution and refresh rate for output.
- Dynamic rate control for amazing sound even when it's run at a different rate than the video, such as vsync causes sometimes. Especially obvious with GBA.
- Basic fast forward, rewind, savestate, etc
- Shaders: .shader, .cg, .cgp . filter
- Ported to many, many different platforms.
- GGPO-like netcode (latency hiding rollback). It should be lag-free if everyone involved emulates at full speed, don't live on opposite sides of the world and has decent internet speeds. It uses peer-to-peer UDP and supports two players. Due to rollback it requires a fair amount of CPU power to run.
Using RetroArch[]
- Main article: Using RetroArch
retroInvader[]
retroInvader is a Windows utility that downloads, installs, updates and configures RetroArch, it's cores and more. Drag & drop is a key feature allowing users to launch ROMs automatically, create playlists, install BIOS files and host netplay sessions. Xpadder & antimicro keymappers are supported for 360/XBO/Dualshock joysticks and the Internet Archive's ROM-libraries are leveraged to make this software an unrivaled masterpiece.
Download the latest release here .
NetPlay[]
It is now usable from RGUI in current builds, under Settings>Netplay Options. You can get it to work with the command line or the Phoenix Launcher as well in older builds.
You must specify whether you will be hosting (server) or joining (client) the game. If joining, you must also enter the host's IP address in the field below. Make sure your firewall is open on port 55435 (default; you can change it if you like) and that the port is forwarded in your router, if applicable. You can also specify 'spectator mode,' which will allow an arbitrary number of spectators to join and watch you play without being able to play themselves.
Delay frames denotes the maximum number of frames RetroArch will need to emulate at once to maintain synchronization due to actual network latency. You can figure out an appropriate ballpark for this number by pinging the other player and dividing the time (in milliseconds) by 16 (roughly the number of milliseconds in a frame from a game running at 60 fps). If the gameplay is a bit choppy, try increasing the number of delay frames a bit.
Similar to the GGPO platform, RetroArch creates a constant stream of savestates which, along with button presses, are exchanged and compared between the server and client machines. If the savestates start to diverge, the game rolls back in time to a point where they both agree and then emulates the missing frames all at once to get back to the appropriate spot. This gives the illusion of completely lagless inputs, which is invaluable for twitchy, fine controls.
If you try to connect to a server and it immediately says client disconnected, open your log and make sure your ROMs match exactly (it will complain about a hash mismatch otherwise). If it gives you a weird time-out error, just close the window and try to connect again and it should work itself out (sometimes excessive spikes in network latency can cause the states to diverge catastrophically, resulting in this error).
Frontend[]
There is an alternate frontend available called RAEM (formerly known as RA-Player), for those that want to try something that looks more like a native Windows program. It is a work-in-progress.
Download it here