Retroarch Ps3

This time we are going to install RetroArch to the PlayStation3. You could download the DEX build instead of the CEX builds, but for this video we are going. Download RetroArch. Head to the Libretro home page, then click the “Downloads” link in the top.


Retroarch Ps3 N64

RetroArch PS3 v0.9.8.4 is released. RetroArch PS3 is a native port on the PS3 Platform. RetroArch PS3 is an ultimate emulator by the name of PetroArch (over half a year in the making). The list of system emulators it uses is impressive: SNES9x Next, FCEUmm, Final Burn Alpha, Gambatte, Genesis Plus GX, VBA Next, and even PrBoom. Not only that, this game system can suppose consoles such as Xbox 360, PS3, PC, Wii, etc.
Retroarch Ps3RetroArch PS3 v0.9.8.4 Changelog:

Retroarch Ps3 N64

RetroConsole Level: 2
Author: Themaister, Squarepusher/Twin Aphex
Put the PKG file 'retroarch-ps3-v0.9.8.3-dex.pkg' on your
USB stick, put it in your PS3. Go to the PS3 XMB - go to the
Game tab - Select 'Install Packages', and install the PKG file.
Put the PKG file 'retroarch-ps3-v0.9.8.3-cfw.pkg' on your
USB stick. Put it in your CFW PS3. Go to the PS3 XMB - go to the
Game tab - select 'Install Packages', and install the PKG file.
NOTE: The official release no longer supports Geohot/Wutangzra
CFWs. If you must use them, you have to do pkg_finalize on the PKG
to install it.
On first startup, RetroArch will select one of the dozen or
so emulator/game cores. The name of the core currently loaded will
be shown at the top side of the screen.
You can now select a ROM that this core supports and load it in
the Filebrowser.
To select a different core in the menu - press Select to go to the
Settings screen. From here, go to the 'Retro tab', and select
'Default emulator core'. Press X to go to a filebrowser where you
can select a different core. Press X to confirm, then exit
RetroArch. Start up again to boot up to the new emulator core.
To change to a different core ingame - press R3 to bring up
the 'Quick Menu'. Select 'Change libretro core'. Press X to
go to a filebrowser where you can select a different core.
During ingame operation you can do some extra actions:
Right Thumb Stick - Down - Fast-forwards the game
Right Thumb Stick - Up - Rewinds the game in real-time
('Rewind' has to be enabled in the
'Settings' menu - warning - comes at a
performance decrease but will be worth it
if you love this feature)
RStick Left + R2 - Decrease save state slot
Rtick Right + R2 - Increase save state slot
RStick Up + R2 - Load selected save state slot
RStick Down + R2 - Save selected save state slot
L3 + R3 - Go back to 'Menu'/'Quick Menu'
RetroArch is a modular multi-system emulator system that is
designed to be fast, lightweight and portable. It has features
few other emulator frontends have, such as real-time rewinding
and game-aware shading.
Libretro is the API that RetroArch uses. It makes it easy to
port games and emulators to a single core backend, such as
For the user, this means - more ports to play with, more
crossplatform portability, less worrying about developers having
to reinvent the wheel writing boilerplate UI/port code - so that
they can get busy with writing the emulator/porting the emulator/game.
Right now it's unique in that it runs the same emulator cores on
multiple systems (such as Xbox 360, PS3, PC, Wii, Xbox 1, etc).
For each emulator 'core', RetroArch makes use of a library API that
we like to call 'libretro'.
Think of libretro as an interface for emulator and game ports. You
can make a libretro port once and expect the same code to run on all
the platforms that RetroArch supports. It's designed with simplicity
and ease of use in mind so that the porter can worry about the port
at hand instead of having to wrestle with an obfuscatory API.
The purpose of libretro is to help ease the work of the emulator/game
porter by giving him an API that allows him to target multiple
platforms at once without having to redo any code. He doesn't have
to worry about writing input/video/audio drivers - all of that is
supplied to him by RetroArch. All he has to do is to have the emulator
port hook into the libretro API and that's it - we take care of the rest.
The PS3 port of RetroArch is one of the most developed console ports
of RetroArch.
A couple of unique features RetroArch PS3 boasts that is not commonly
found anywhere else:
- Game-aware shading in every emulator now (*)
- Real-time rewinding
- More shader features (motion blurring, etc)
- Switching between emulator cores seamlessly, and ability to install new
libretro cores
Included with RetroArch PS3 are a bunch of shaders - including the
latest versions of the popular xBR shader. It is possible to use two
shaders simultaneously to get the best possible graphical look.
* Check out Opium2k's manual shaders for Zelda 3 and others - you can
find DLC packs for RetroArch at this site:
The following emulators have been ported to RetroArch and are included
in the PS3 release of RetroArch.
For more information about them, see the included
'retroarch-libretro-README.txt' file.
- Final Burn Alpha (Arcade - various) [version]
- FCEUmm (Nintendo Entertainment System) [recent SVN version]
- NEStopia (Nintendo Entertainment System) [1.44]
- Gambatte (Game Boy Super Game Boy Game Boy Color) [version 0.5.0 WIP]
- Genesis Plus GX (Sega SG-1000 Master System Game Gear Genesis/Mega Drive
Sega CD) [version 1.7.3]
- SNES9x Next (Super Nintendo/Super Famicom)
- VBA Next (Game Boy Advance)
- Prboom (for playing Doom 1/Doom 2/Ultimate Doom/Final Doom)
- Mednafen PCE Fast (PC Engine/PC Engine CD/Turbografx 16)
- Mednafen Wonderswan (WonderSwan/WonderSwan Color/WonderSwan Crystal)
- Mednafen NGP (Neo Geo Pocket Color)
- Mednafen VB (Virtual Boy)
All of the emulators listed above are the latest versions currently
available. Most of them have been specifically optimized so that they
will run better on PS3 (some games would not reach fullspeed without these optimizations).
- Prboom WAD wad
- SNES9x Next smc fig sfc gd3 gd7 dx2 bsx swc zip SMC FIG SFC BSX GD3
- Genesis Plus GX md smd bin gen zip MD SMD bin GEN ZIP sms SMS gg GG sg SG
cue CUE
- VBA Next GBA gba
- FCEUmm nes NES unif UNIF
- NEStopia nes NES fds FDS
- Gambatte gb gbc dmg zip GB GBC DMG ZIP
- Final Burn Alpha zip ZIP
- Mednafen PCE pce PCE cue CUE
- Mednafen Wonderswan ws WS wsc WSC
- Mednafen NGP ngp NGP
- Mednafen VB vb VB
Selecting a ZIP file will temporarily unzip that file to the harddrive. The
temporary file will be deleted as soon as the game gets unloaded and/or when
you quit RetroArch.
NOTE: For the FBA core (and other cores that have 'block_extract' set to
true) - selecting a ZIP file from the Filebrowser will load that game
If you find that RetroArch no longer works for whatever reason, there is
a way to get it back to work -
- Remove retroarch.cfg from the 'SSNE100000' folder, then start up again.
The Libretro management service in RetroArch should automatically pick a
random libretro core and write this to the config file.
What can you expect in the future?
- Do a Blackberry Playbook/Blackberry 10 RetroArch port
- Do an iOS port of RetroArch (will need hardware for this - gifts appreciated)
- Make the libxenon port release-worthy.
- Add console-friendly features (nicely formatted names for FBA, some better
way to do core switching, etc)
- Fix NxEngine issues on consoles
- Finish up MAME 0.72 port
- Finish up ScummVM port
- Port of VICE to libretro
- More emulators, more games that will run on RetroArch
- Lots of other crazy ideas that might or might not pan out
- Mudlord for his Waterpaint/Noise shaders.
- Hyllian for the xBR shader.
- Opium2k for the nice manual shaders (bundled with PS3 release).
- Deank for assistance with RetroArch Salamander on CFW PS3s and
Multiman interoperability.
- FBA devs for adopting the libretro port.
- Ekeeke for help with the Genesis Plus GX port.
- ToadKing for having done a lot of work on RetroArch Wii.
- Freakdave for helping out with the Xbox 1 port.
Opium2K DLC for RetroArch:
IRC: #retroarch (freenode)
* [NEStopia] Famicom Disk System support. For Android users - put disksys.rom
into the same folder as the FDS ROM you're trying to load. For everyone else -
put disksys.rom into your system directory.
- Y Button will switch sides of a disk.
- If you get any problems of the sort DISK A / B ERR 07' - pressing Y button again or letting it run its course should do it.
- NOTE - Famicom Disk System loading is slow, so you might be tempted to fast forward through most of it. However, I'd advise caution when doing so and to savestate regularly in case 'fast forwarding' can negatively affect disk loading.
* [FBA core] Various changes/fixes
- Hook up Eco Fighters controls (Turn 1/Turn 2 bound to L and R buttons)
- Hook up Pnickie controls (Turn 1/Turn 2 bound to L and R buttons - press
one of the buttons to progress beyond start screen)
- Hook up Continental Circus controls - Brake 2/Brake 3 (L1/L2 buttons)
and Accelerate 2/Accelerate 3 (R1/R2 buttons)
- Hook up Gun Smoke controls - Start button (needed to progress beyond
title screen)
- Hook up Mighty Pang controls (P1 Shot1/P1 Shot2/P2 Shot1/P2 Shot2)
- Fixed Varia Metal palette
- Fixed Fairyland Story palette
- Fixed Return of the Invaders palette
- Fixed Act-Fancer palette issue
- Endian fixes in the following games (PS3/360/Wii/Gamecube) -
- Surprise Attack
- Rollergames
- Ultra Man
- Oh My Gods
- Moonwalker (Sega System 18 bootleg) [magicseb]
- Hyper Pac
- Snow Bros 1
- Honey Dolls
- Fixes pitch issue in Gals Hustle (will possibly fix more games as well)
* [FBA core] [For Wii/Gamecube/Xbox 1 only] The main FBA version now has CPS1/CPS2/
Neogeo and Mega Drive/PC Engine drivers removed. To play CPS1, use FBA Cores CPS1.
To play CPS2, use FBA Cores CPS2. To play NeoGeo, use FBA Cores Neo.
* [FBA core] Made FBA Cores CPS1 - use this to play CPS1 games (all CPS1 ROMs
fit into memory on Gamecube).
* [Android] Fixed regression where a button bound to AKEYCODE_BACK would 'exit out'
of RetroArch.
* [Android] Fixes Madcatz fighting stick being autodetected properly.
* [Android] Input autodetection expanded -
- iControlpad
* [Gamecube] Made RetroArch cores 'standalone' - ie. no core switching.
* [Xbox 1] Add Low RAM mode - this needs to be used to play games that won't otherwise fit into RAM,
such as Street Fighter Alpha 3/Vampire Savior and other big ROMs in FBA Cores CPS2/NeoGeo/FBA.
* [Unzipping [All consoles/Android]] Moved from rzlib to miniz/minizip -should increase compatibility
with ZIP archives

Download: RetroArch PS3 v0.9.8.4 CFW
Download: RetroArch PS3 v0.9.8.4 DEX
Source: Here

RetroArch is the official front end for the libretro API. RetroArch and libretro provide a way to take an existing emulator and load that emulator as a library or 'core'. RetroArch then handles the input (controls) and output (graphics and audio) while the emulator core handles the emulation of the original system. With a few simple changes to the emulator source code, almost any existing emulator could become a libretro core.

In RetroPie, the libretro emulator cores are identified with a lr- in front of their name. For example, lr-snes9x2010 is the libretro core of the SNES emulator called snes9x2010.

RetroArch and libretro provide ability to configure controllers once for many emulators instead of having to configure each emulator individually. However, RetroArch also provides the freedom to configure specific emulators individually and even individual games differently if the user wants. This allows a specific setting or button mapping for a certain console or even just for a certain game.

For emulators which are not libretro cores, there are emulator-specific configurations under the respective system's wiki page.

The RetroPad concept

When you configure your controller in EmulationStation, the RetroPie setup script automatically configures RetroArch with the same controls.

RetroArch controls map real-world controller buttons to a virtual controller called a 'RetroPad'. A RetroPad does not exist in real life, it's a concept only within RetroArch. A RetroPad has an ABXY layout like a SNES controller plus four shoulder buttons and dual analog sticks like a Sony DualShock.

You don't have to map all of the RetroPad buttons to a real world button. If your real controller has less buttons than a DualShock, then the virtual RetroPad also has less buttons, that's perfectly fine.

As RetroArch starts an emulator core, it maps the RetroPad configuration to the emulated system's original controls. The mapping for many consoles is represented by the pictures below and on each system's wiki page. If you wish, you can reconfigure this control mapping, either for all RetroArch, for a specific system, or even for a specific ROM.

Retroarch Controls

There are 3 main ways to configure input for RetroArch:

  • Autoconfigurations - made in EmulationStation
  • Hardcoded Configurations - made by editing retroarch.cfg file(s)
  • Core Input Remapping - an easy way to do specific control configurations for specific cores, made in the RetroArch RGUI


RetroArch controls have been integrated into EmulationStation and will be the first thing you see when you boot from the RetroPie SD image the first time. You can also access it from the start menu within EmulationStation under the Configure Input option. Your joypad is automagically configured for libretro (RetroArch) emulators when you configure your controller in EmulationStation. You'll know if your controller has been automagically configured if you see a flash of yellow text on the bottom of the screen with your gamepad ID when you start a game.

The following diagrams are for the 3 most common controllers: Super Nintendo, Xbox 360, and PlayStation 3. They can be used as a reference when configuring your controllers. Each emulator page on the wiki has a diagram of the original controller for its respective console that will correspond to the same inputs listed below.

After you've configured your controller the autoconfig will be created here:

This is an example config for a USB SNES controller

As seen above in the config for the USB SNES controller, each input on the controller has an associated value. When setting up the controller in EmulationStation, these values are then assigned a respective action on RetroArch.

For example, suppose the 'A' button on a USB SNES controller has a value of '1.' When setting up the controller, EmulationStation would prompt you to press the 'A' button on your controller. Pressing the 'A' button would then record into the config file as input_a_btn = '1', so RetroArch will know that the 'A' button on your physical controller corresponds to the 'A' button on RetroArch's virtual controller, the RetroPad. Therefore, the next time you play a game such as Super Mario Bros. pressing the 'A' button will tell RetroArch to press the 'A' button on its RetroPad, causing Mario to jump. If you accidentally pressed the 'B' button with a value of '2' during setup when it prompted for 'A,' then it would be recorded into the config file as input_a_btn = '2', so if you want to jump in Super Mario Bros., you would have to press 'B' on your controller.


Hotkeys are combinations of buttons you can press in order to access options such as saving, loading, and exiting games. The following defaults are set automatically the first time you set up your controller from EmulationStation (the numbers will vary depending the controller you use).

Default joypad hotkeys:

HotkeysActionCode Example
SelectHotkeyinput_enable_hotkey_btn = '6'
Select+StartExitinput_exit_emulator_btn = '7'
Select+Right ShoulderSaveinput_save_state_btn = '5'
Select+Left ShoulderLoadinput_load_state_btn = '4'
Select+RightInput State Slot Increaseinput_state_slot_increase_btn = 'h0right'
Select+LeftInput State Slot Decreaseinput_state_slot_decrease_btn = 'h0left'
Select+XRGUI Menuinput_menu_toggle_btn = '3'
Select+BResetinput_reset_btn = '0'

Determining Button Values

If you want to edit the entries in the .cfg file for your controller, you will need to know the values corresponding to the buttons on your controller. Usually the relationship between the two can be deduced by looking at the file and noting the entries' names along with the values next to them, assuming that the values have not been jumbled from previous edits or been mixed up due to unknown issues. For example, the USB gamepad above has an entry for input_x_btn = '0', indicating that the 'X' button on the controller (or the button that you associated as 'X' during controller setup in EmulationStation) has a value of '0.'

On the other hand, maybe you are not sure if the values in the .cfg file is correct or the file is missing entries for buttons that are available on your own controller, such as a 'Home' button. You can run jstest (joystick test) in the terminal by selecting Quit EmulationStation (a keyboard will be required for the following steps).

In the terminal, type and enter
jstest /dev/input/js0

Replace js0 with js1, js2, js3, etc. as needed if not detected.

A multitude of rows and columns should appear. Pressing buttons or moving analog sticks/joystick will cause various entries in the columns to swap between on and off and fluctuate through a range of numbers. The value next to an on/off entry corresponds to the button that you have pressed. The fluctuation of numbers from -32767 to 32767 correspond to the input on your controller that has a range of motion, such as analog sticks/triggers.

If you are interested in figuring out which is your 'Select' button, pressing and holding 'Select' on your controller will cause one column to switch from off to on. The value next to it corresponds to the 'Select' button. If you have a controller with a 'Home' button, pressing the 'Home' button will also cause one column to switch from off to on. To exit jstest, press Ctrl + c. To return to EmulationStation from the terminal, type and enter emulationstation.

Using these values, you can edit the .cfg file for that controller as needed. For example, if you were interested in switching the your Hotkey button to a 'Home' button available on your controller, you would edit input_enable_hotkey_btn = 'some number', replacing 'some number' with the value you found for your 'Home' button in jstest.

Video Tutorial

Hardcoded Configurations

These configurations are manual edits you can make that are locked to a specific libretro core and controller. Hardcoded controls can be configured either globally, specific to the emulator core, or specific to an individual game.

Config Hierarchy

All RetroArch based emulators can be configured in the following way:

Global settings - that are settings which should apply to all systems - are done in the file:


System-specific settings are done in the files:


Here, SYSTEMNAME is atari2600, snes, etc. All settings in these files will override the corresponding global setting as long as they are placed above the #includeconfig line.

ROM-specific settings can be created in the runcommand menu and show up as configuration files by ROM title:


The ROMNAME includes the original file extension before the .cfg, e.g. These configurations are used when starting this specific ROM.

Custom RetroArch Override Examples

Example Default Per-System retroarch.cfg

Example Per-System Control Override retroarch.cfg


Note the values below are for one person's controller, your values may differ. Make sure that these values are placed above the #includeconfig line:

Example Per-ROM Override retroarch.cfg

Core Input Remapping

Core Input Remapping differs from the other two methods as it remaps how the core receives input rather than how the gamepad is coded, for example you can tell the snes core to switch button A and B on the controller for gameplay, but you can still use 'A' to select in the RGUI and 'B' to go back where as hard-coding would make B select and A back. Core Remapping is much more practical than hard-coded mapping but is limited to the cores that support it.

  • Start a game of the system you want to remap the buttons
  • Invoke RGUI (Hotkey+X with player 1)
  • Go to Quick Menu and then Controls
  • Configure the buttons the way you want
  • Select Save Core Remap File
  • OR, if you want to save this remapping for the current game only, select Save Game Remap File

Remaps are saved as .rmp files in directory:

Retroarch Controls Cheat-Sheet

Video Tutorials

  • Core input remapping: Remapping your controller by Floob
  • Testing Joypad: Testing joystick by Floob
  • Configuring USB Controllers With Retroarch, Controller not configured fix by Herb Fargus
  • Configure a wireless PS3 controller with RetroPie 3 by Floob
  • XBox 360 Wireless Controller Configuration by Herb Fargus

Default Core Controls for All Emulators


Atari 2600

Atari Lynx



Gameboy Color

Gameboy Advance

Game Gear


Megadrive/Genesis (3 Button)

Megadrive/Genesis (6 Button)

Nintendo 64

Nintendo DS


Neo Geo

Neo Geo Pocket




Super Nintendo

Sega Saturn





Sega Dreamcast