RetroArch is a multi-system emulator for Linux, Windows, Mac OS X and *BSD. 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
, 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.
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 single 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 support, you should visit the IRC channel #retroarch @ irc.freenode.org, or the forum.
Builds for RetroArch 0.9.7-rc1 can now be found in the RetroArch section.
This marks the first official release of RetroArch, formerly known as SSNES.
3 and XBox360 ports by Squarepusher have matured a lot more.
A ton of changes are in (too much to list tongue), and binaries have been released on xbins.
Core has received too many changes to highlight them all, however:
- Internal API is now libretro, an evolution from libsnes.
- Add IPS patching support.
- Add rotation support for arcade-style cores.
- Fix bug where pulseaudio driver was using far too much CPU.
- Not specifying an explicit path for libretro core is now an error (no default core).
- Add new button defines for L2/R2/L3/R3, as well as two analog sticks. Now matches the feature set of a DualShock 1 controller.
- Add UDP command interface for RetroArch. This allows external processes to fire commands, e.g. "QUIT", "SAVE_STATE", etc. Useful for frontends, remotes, etc.
- Add possibility to automatically save states on exit, which are automatically loaded on startup, so you can start directly where you left off.