PlayStation Emulation on the Pi: Enhancing the Experience with the Options Menu – Part Three: Analogue Controllers

Retropie’s PCSX-ReARMed PlayStation emulator supports analogue controls, however enabling support is a little unintuitive, although not difficult. There are a few small limitations and quirks, most of which are easily circumvented, as discussed below.

Hardware Setup

image
image
PlayStation Controllers. Images: softicons.com

For the most authentic experience, a genuine PlayStation DualShock analogue controller is recommended, or a functionally equivalent device (for instance I also use a wireless Xbox 360 controller). I am also assuming the use of a USB controller adaptor, such as a Mayflash or Wise unit (see my earlier post entitled What is RetroPie? System overview, software and hardware).

For analogue (and digital) controls a suitable joystick configuration file is required. Unfortunately controller setup can be nontrivial, and is beyond the scope of the current post; I am, however, planning to cover this topic in the near future.

image
Wise 3-in-1 Joy Box SS/PS/DC USB Adaptor
image
Mayflash SS/PS/N64 USB adaptor

Enabling Analogue Input via the RetroArch/Libretro Menu

With appropriate hardware in place, along with controller mappings, enabling analogue input requires access to the RetroArch/Libretro menu. For a little background, and further details, please see the following related posts:

Access to the menu is, by default, via the F1 key whilst the emulator is running.

From the main menu, first select the Options sub menu. Next, select the Core Options sub menu:

image
Libretro Menu - Main Menu - Options Menu Selected
image
Libretro Menu - Options Menu - Core Options Selected

From the Core Options menu, set the Pad 1 Type entry to Analog. Repeat for Pad 2 Type as required. The entry for Pad Type defaults to standard, that being a digital-only controller.

Continue reading

Advertisements

PlayStation Emulation on the Pi: Enhancing the Experience with the Options Menu – Part Two: Graphics

Accessing the RetroPie PlayStation Emulator’s High Resolution Mode

PlayStation. Ridge Racer Type 4. Bridge. Standard Resolution, Bilinear Smoothing
PlayStation. Ridge Racer Type 4. Bridge. Standard Resolution, Bilinear Smoothing
PlayStation. Ridge Racer Type 4. Bridge. Enhanced Resolution, Bilinear Smoothing
PlayStation. Ridge Racer Type 4. Bridge. Enhanced Resolution, Bilinear Smoothing

This post builds upon the information in the preceding article PlayStation Emulation on the Pi: Enhancing the Experience with the Options Menu – Part One: Basic Features and Save States , and the introductory piece entitled RetroPie Emulation: RetroArch, Libretro, and the Power of the Options Menu.

Many of the entries on the RetroArch/Libretro main menu screen lead to sub menus, most of which contain numerous entries, and further sub menus. Discussed here are a couple of entries within the Core Options sub menu of especial interest to PlayStation emulation.

Core Options – Enhancing the Graphics Resolution

It is possible to force RetroPie’s PCSX-ReARMed PlayStation emulator to render graphics in a resolution considerably higher than the native modes available on the genuine console’s hardware. I should note that whilst this can make stunning visual improvements to many games on the system, unfortunately the Raspberry Pi 2 lacks enough CPU power to reliably run all games at full speed.

PlayStation. Ridge Racer Type 4. Out of Blue. Standard Resolution, Bilinear Smoothing
PlayStation. Ridge Racer Type 4. Out of Blue. Standard Resolution, Bilinear Smoothing
PlayStation. Ridge Racer Type 4. Out of Blue. Enhanced Resolution, Bilinear Smoothing
PlayStation. Ridge Racer Type 4. Out of Blue. Enhanced Resolution, Bilinear Smoothing

Rendering the output in enhanced resolution incurs significant processing overhead. The emulator in its current form is only able to utilise one of the four CPU cores present on the Pi; perhaps a future (radical) enhancement to PCSX-ReARMed will unlock the full potential of the system.

All is not lost, however, and gaining additional processing power by running the Pi with maximum stable overclocking is definitely recommend – see my earlier posts on this topic for information on enabling and testing overclocking: Overclocking and Stability Testing the Raspberry Pi 2 – Part 1: Overclocking in Depth

Continue reading

RetroPie Emulation: RetroArch, Libretro, and the Power of the Options Menu

What is the Libretro Options Menu, and Why Does It Matter?

consoles and home computers
RetroArch Menu - Welcome Screen
RetroArch logo

For a while after installing RetroPie, this question plagued me. I found references to the ‘Options Menu’ seemingly everywhere, but as to where it resided or how it manifested, that seemed some closely guarded secret.

Why was I looking for the elusive menu? Well, the Options Menu holds the secret to really getting the most out of many of the RetroPie emulators, from tweaking the controller settings to switching graphics rendering engines.

In my earlier post ‘What is RetroPie? System overview, software and hardware’ I provided a brief description of RetroPie, which contains numerous home computer and console emulators, up to and including the N64. As noted in that post:

RetroPie can be thought of as a framework which wraps and extends other software components, ultimately handling the loading of a selected game image into the relevant video game emulator.

image
Libretro Logo

Many of the console emulators included in RetroPie are what are known as Libretro cores; these ‘cores’ are existing emulators, modified to utilise the Libretro API, which provides a common interface and experience across multiple systems:

Again, from the aforementioned earlier post:

The system also provisions management and configuration of numerous elements, including:

  • Loading button and axis (analog) control maps, matching upon detected Usb controller(s)
  • Setting video resolution
  • Applying filtering and video overlay effects
  • Providing state management (providing loading and saving of in-progress games)

The Libretro page on the emulation-general.wikia.com site describes Libretro in the following terms:

Libretro is an lightweight C/C++ API designed for emulators… It specifies how to write a library, called Libretro core, so that it can be loaded by a frontend supporting Libretro API like RetroArch… Libretro API can be used for example to strip emulator of it’s GUI components and convert it into dynamic library called Libretro core. (sic)

On the Libretro forum, user hunterk expands on the concept of retrofitting an emulator with the Libretro API:

Libretro porting is generally a case of mapping/wrapping the emulator/game/whatever’s internal API to the corresponding libretro functions and/or callbacks. So, many ports are very shallow and require little-to-no modification of the existing core code.

Thus, the RetroArch framework brings a set of consistent features to a broad range of emulators which were written entirely independently. All ‘core’ enabled emulators feature a common menu, the elusive Options Menu, which can be accessed and navigated via keyboard or a suitably configured control pad.

Continue reading