RetroArch is a multi-system emulator for Linux, Windows, Mac OS X, *BSD, PS3, XBox360, Wii, Android. It is formerly known as SSNES.
Its design and background is quite different than most other emulators as RetroArch does not implement an emulation core itself. RetroArch talks to libretro, a generic emulator core API. This means that RetroArch is core agnostic, and it does not care which emulator core is running.
Currently there are libretro implementations for systems such as SNES, NES, GBA, GB/GBC, Genesis, and even arcade games (Final Burn Alpha).
libretro isn't only usable for emulators. A preliminary port of an open source reimplementation of Cave Story has been ported to libretro as well. Quake (TyrQuake), DOOM (PrBoom) are also ported.
RetroArch believes in modularity. The application itself is a command-line driven application suitable for HTPC and/or headless use. There also exists a GUI frontend for RetroArch, supporting every config option available in RetroArch.
You can seamlessly utilize the GUI without thinking of RetroArch as a command line application, which is a probable scenario for most Windows and OS X users. RetroArch-Phoenix, the GUI frontend, can be found on GitHub.
For older releases, releases are tagged on GitHub.
RetroArch is actively developed, and it is recommended to build from latest Git. Source releases are more or less arbitrary snapshots.
The Windows binaries include full build along with redist (~15MB).
For later updates, it is highly recommended that you download from the Phoenix Updater (RetroArch -> Update). This will reduce updates to ~1MB instead.
These Windows builds also include the RetroArch-Phoenix GUI.
Note that you cannot update from the old SSNES to RetroArch via GUI.
You might get an error that d3dx9_43.dll is not found. If so, DirectX redist is not installed, and you need to install this from Microsoft's homepages. Alternatively it might work to copy over a d3dx9_43.dll from another PC and place it in same directory as RetroArch.
RetroArch has several features not commonly found in other emulators. Some notable ones are:
Rewind is a very powerful, and useful feature. It replaces careful save stating and reloading for beating (too) hard levels. It allows you to back up mistakes in real-time very similar to the wonderful game Braid. Here's a video showing off the feature.
Depending on the emulator core, you can rewind approx. 1 minute per 20MB RAM you give it.
RetroArch supports use of GPU shaders for image processing. This means you can achieve far more powerful effects than old-school CPU filters allow, given constraints on processing power.
The GPU shader implementation supports multiple passes, with arbitrary scaling factors, look-up textures, and arbitrary access to previous passes in the rendering chain.
We maintain a collection of Cg shaders in the common-shaders repository.
You can dump gameplay footage to disk in real-time using FFmpeg/libavcodec. It uses libx264/RGB and FLAC for fully lossless encoding. Due to encoding happening in a thread, there is no major speed hit. Lossy encoding and RTMP streaming is also supported. See the Wiki for more information. The lossless libx264/RGB video can be processed directly by FFmpeg and/or AVISynth to mention a few.
RetroArch defines a plugin API for audio DSP effects. Plugins can perform audio processing in floating point, and act as the primary resampler if desired. Care is taken to allow for GUIs in the plugin. The plugin is regularily pumped to drive a possible event loop. There is also a keybind to pop up possible GUI configuration windows.
RetroArch supports a simple, but effective netplay implementation. It employs UDP and rollback mechanics to hide latency, similar to GGPO. Due to rollback, the CPU requirements are quite high.
RetroArch renders on-screen messages for status. You are not limited to one font type. ;)
Copyright (C) Hans-Kristian Arntzen - 2011-2013