RetroArch/README.md

144 lines
5.2 KiB
Markdown
Raw Normal View History

2012-04-21 23:27:15 +02:00
# RetroArch
2010-12-24 02:00:13 +01:00
2012-04-22 11:59:31 +02:00
RetroArch (formerly known as SSNES) is a simple frontend for the libretro API. An API that attempts to generalize
2012-04-16 18:40:56 +02:00
a retro gaming system, such as SNES, NES, GameBoy, Arcade machines, etc.
2012-04-22 11:59:31 +02:00
Emulator/game cores are instantiated as loadable plugins.
2010-12-24 02:00:13 +01:00
2012-04-16 18:40:56 +02:00
# libretro
2010-12-24 02:00:13 +01:00
2012-04-16 18:40:56 +02:00
libretro is an API that exposes the core of a retro gaming system.
A frontend for libretro handles video output, audio output and input.
A libretro core written in portable C or C++ can run seamlessly on many platforms.
2010-12-24 02:00:13 +01:00
2012-04-22 11:59:31 +02:00
[libretro API header](https://github.com/Themaister/RetroArch/blob/master/libretro.h)
2011-11-16 21:28:30 +01:00
# Binaries
2012-04-21 23:27:15 +02:00
Latest Windows binaries are currently hosted on my [homepage](http://themaister.net/retroarch.html).
2011-11-16 21:28:30 +01:00
2012-04-22 11:59:31 +02:00
# Related projects
GUI frontend for PC: [RetroArch-Phoenix](https://github.com/Themaister/RetroArch-Phoenix)
Cg shaders: [common-shaders](https://github.com/twinaphex/common-shaders)
More Cg shaders: [Emulator-Shader-Pack](https://github.com/Themaister/Emulator-Shader-Pack)
2010-12-24 02:00:13 +01:00
# Philosophy
2012-04-22 11:59:31 +02:00
RetroArch attempts to be very small and lean,
while still having all the useful core features expected from an emulator.
It is used through command-line. It is also designed to be portable.
2010-12-24 02:00:13 +01:00
2012-02-02 13:51:15 +01:00
# Platforms
2012-04-22 11:59:31 +02:00
RetroArch has been ported to the following platforms outside PC:
2012-02-02 13:51:15 +01:00
- PlayStation3
- Xbox 360 (Libxenon/XeXDK)
- Wii (Libogc)
2012-04-16 18:52:14 +02:00
# Dependencies (PC)
2010-12-24 02:00:13 +01:00
2012-04-21 23:27:15 +02:00
RetroArch requires these libraries to build:
2010-12-24 02:00:13 +01:00
2011-01-06 20:12:25 +01:00
- SDL
2010-12-24 02:00:13 +01:00
2012-04-21 23:27:15 +02:00
RetroArch can utilize these libraries if enabled:
2010-12-24 02:00:13 +01:00
- nvidia-cg-toolkit
2011-01-06 20:12:25 +01:00
- libxml2 (bSNES XML shaders)
2011-01-25 13:24:51 +01:00
- libfreetype2 (TTF font rendering on screen)
- libsamplerate
2010-12-24 02:00:13 +01:00
2012-04-21 23:27:15 +02:00
RetroArch needs at least one of these audio driver libraries:
2010-12-24 02:00:13 +01:00
- ALSA
- OSS
- RoarAudio
- RSound
- OpenAL
- JACK
2011-01-25 13:24:51 +01:00
- SDL
2011-01-29 01:15:09 +01:00
- XAudio2 (Win32)
- PulseAudio
2010-12-24 02:00:13 +01:00
2012-04-21 23:27:15 +02:00
To run properly, RetroArch requires a libretro implementation present, however, as it's typically loaded
2012-04-16 18:40:56 +02:00
dynamically, it's not required at build time.
2010-12-24 02:10:47 +01:00
2012-04-16 18:52:14 +02:00
# Dependencies (Console ports)
Console ports have their own dependencies, but generally do not require
anything other than what the respective SDKs provide.
2010-12-24 02:00:13 +01:00
# Configuring
The default configuration is defined in config.def.h.
2012-04-16 18:40:56 +02:00
These can later be tweaked by using a config file.
A sample configuration file is installed to /etc/ssnes.cfg.
This is the system-wide config file.
2011-01-01 17:59:59 +01:00
Each user should create a config file in $XDG\_CONFIG\_HOME/ssnes/ssnes.cfg.
The users only need to configure a certain option if the desired value deviates from the value defined in config.def.h.
2010-12-24 02:00:13 +01:00
2012-04-16 18:40:56 +02:00
To configure joypads, start up <tt>jstest /dev/input/js0</tt> to determine which joypad buttons (and axis) to use.
It is also possible to use the <tt>ssnes-joyconfig</tt> tool as well for simple configuration.
2010-12-24 02:00:13 +01:00
# Compiling and installing
2011-01-25 13:25:35 +01:00
<b>Linux/Unix</b><br/>
2012-04-21 23:27:15 +02:00
As most packages, RetroArch is built using the standard <tt>./configure && make && make install</tt>
2012-04-22 11:59:31 +02:00
Do note that the build system is not autotools based, but resembles it. Refer to ./configure --help for options.
2011-01-25 13:25:35 +01:00
<b>Win32</b><br/>
2012-04-21 23:27:15 +02:00
It is possible with MinGW to compile for Windows in either msys or Linux/Unix based systems. Do note that Windows build uses a static Makefile since configuration scripts create more harm than good on this platform. Libraries, headers, etc, needed to compile and run RetroArch can be fetched with a Makefile target.
2011-01-25 13:24:51 +01:00
2011-01-25 13:26:41 +01:00
In Linux/Unix:<br/>
2012-04-16 18:40:56 +02:00
<tt>make -f Makefile.win libs</tt></br>
<tt>make -f Makefile.win CC=i486-mingw32-gcc CXX=i486-mingw32-g++</tt></br>
2011-01-25 13:24:51 +01:00
In MSYS:
2012-04-16 18:40:56 +02:00
<tt>mingw32-make -f Makefile.win libs</tt>. # You will need to have wget in your patch for this command! MSYS should provide this.</br>
<tt>mingw32-make -f Makefile.win</tt>
2011-01-25 13:24:51 +01:00
<b>Win32 (MSVC)</b><br />
2012-04-21 23:27:15 +02:00
In addition to Mingw, it is also possible to compile a Win32 version of RetroArch with Microsoft Visual Studio 2010.
2010-12-24 02:00:13 +01:00
2012-04-21 23:27:15 +02:00
You will need Microsoft Visual Studio 2010 intalled (or higher) in order to compile RetroArch with the MSVC compiler.
The solution file can be found at the following location:
2012-04-21 23:27:15 +02:00
<tt>msvc/RetroArch/RetroArch.sln</tt>
<b>PlayStation3</b><br/>
<tt>make -f Makefile.ps3</tt>
A PKG file will be built which you will be able to install on a jailbroken PS3.
2012-04-21 23:27:15 +02:00
NOTE: A pre-existing libretro library needs to be present in the root directory in order to link RetroArch PS3. This file needs to be called 'libretro.a'.
<b> Xbox 360 (XeXDK)</b><br />
2012-04-21 23:27:15 +02:00
You will need Microsoft Visual Studio 2010 installed (or higher) in order to compile RetroArch 360.
The solution file can be found at the following location:
2012-04-21 23:27:15 +02:00
<tt>msvc-360/RetroArch-360/RetroArch-360.sln</tt>
2012-04-21 23:27:15 +02:00
NOTE: A pre-existing libretro library needs to be present in the root directory in order to link RetroArch 360.
<b> Xbox 360 (Libxenon)</b><br />
2012-04-21 23:27:15 +02:00
You will need to have the libxenon libraries and a working Devkit Xenon toolchain installed in order to compile RetroArch 360 Libxenon.
<tt>make -f Makefile.xenon</tt>
2012-04-21 23:27:15 +02:00
NOTE: A pre-existing libretro library needs to be present in the root directory in order to link RetroArch 360 Libxenon. This file needs to be called 'libretro.a'.
2010-12-24 02:00:13 +01:00
2012-02-02 13:51:15 +01:00
<b> Wii</b><br >
2012-04-21 23:27:15 +02:00
You will need to have the libogc libraries and a working Devkit PPC toolchain installed in order to compile RetroArch Wii.
2012-02-02 13:51:15 +01:00
<tt>make -f Makefile.wii</tt>
2012-04-21 23:27:15 +02:00
NOTE: A pre-existing libretro library needs to be present in the root directory in order to link RetroArch Wii. This file needs to be called 'libretro.a'.
2012-02-02 13:51:15 +01:00