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

Overclocking and Stability Testing the Raspberry Pi 2 – Part 2: Stability Testing

Stability Testing an Overclocked Raspberry Pi
 

Checking that the system is reliable after applying overclocking

Overclocking is nothing without Stability. Image - www.wallpaper.ge/
Overclocking is nothing without Stability. Image – http://www.wallpaper.ge/

Following on from Part 1 of this post on Overclocking, we turn our attention to stability testing the system; this process is crucial, as simply witnessing the Pi boot to the command shell, or a Graphical User Interface (GUI) isn’t proof that a given combination of overclock settings is stable.

Sometimes an instability will only become apparent after several hours of intensive activity on the system (which is highly likely if using the system for gaming with an installation such as RetroPie).

There are three tools / scripts which I have used in the stability testing processes. For each I will provide instructions on obtaining and installing (or running, as appropriate):

  • MPrime.py
    – Python script to search for prime numbers, which heavily loads the CPU
    – User selectable numeric range to test
    – User selectable number of cores to run upon simultaneously.
  • Memtester
    – Tests the stability of the RAM
    – Natively runs on a single CPU core, but can be run on all cores using multiple remote SSH sessions, or the Screen tool
  • Stability Test Script
    – Reads the entire SD card 10x. Tests RAM and I/O
    – Writes 512 MB test file, 10x.
    – Script can be easily updated to change the number of reads/writes etc.

This post covers the use of mprime. Subsequent posts covers the use of Memtester and the Stability Test Script. Please use the links in the above list to access the relevant information.

Continue reading

Paperboy – Sega Megadrive / Genesis Review

Retro Resolution Retro Review
 

System: Sega Megadrive /Genesis
Developer: Tengen
Year: 1991
Genre: Frustration

image
Paperboy - Sega Megadrive / Genesis - Mean Streets

Saddle up

To anyone with memories of the often cold and wet chore of the Great British paper round the digital recreation promised by Atari’s all-American Paper Boy is alluring. Grab your papers and hurtle along on a bmx throwing news-filled projectiles at your designated customers’ homes; apparently there’s none of your ‘actually walk up to the door and post the paper through the letterbox’ shenanigans for our Stateside cousins. Added to the thrill of (relatively) high-speed delivery is the positive encouragement to smash the windows of non-customers’ abodes, and to attack burglars, drunks, break-dancers, and wayward pets.

Despite the incredibly promising premise, Paperboy can be an insufferably frustrating experience, mainly due to the desperately uncontrollable nature of your protagonist’s transport; unlike a real bike the virtual incarnation proves harder to control with increasing velocity, forcing progress down to a snail’s pace to give a sporting chance of survival.

Whilst the coin-op sported a responsive handlebar controller (adapted from the Star Wars arcade machine’s analogue yoke), Tengen’s 1991 port of the 1985 Atari original is limited to the Megadrive’s lowly joypad; the resultant fight for directional precision engenders an experience making the execution of Ryu or Ken’s Dragon Punch seem simple in comparison.

Continue reading

Emulation Station – beneath the covers

What is Emulation Station, and what does it do?

Emulation Station is essentially a launcher for emulators; when RetroPie has been installed, it loads automatically when the Pi is booted, and allows user to select a game from the library, which is loaded into the required emulator.

Please note: the following assumes some familiarity with Linux, the terminal / console, and commands for basic navigation and file editing.

image
Emulation Station logo

A future post will cover core information which may be useful when getting to grips with the Pi at a lower level. Whilst the command line can be daunting if you’re only ever used to GUI systems, you really only need a smattering of commands to manipulate the files necessary for customising a RetroPie installation*

A couple of important questions to address regarding the emulators shown in the Emulation Station User Interface, before looking at the main configuration file:

Q. Why isn’t the Megadrive (Genesis/SNES/PlayStation etc) emulator showing in the list?

A. Emulation Station shows the emulators included in RetroPie in a gallery-style list which the user can scroll left or right, however a large number of the supported emulators are not shown by default. It is necessary to place at least one game ROM/image file in the emulator’s corresponding ROM folder for the emulator entry to appear in the UI.

Emulation Station - Emulator Selection
Emulation Station – Emulator Selection

Continue reading

What is RetroPie? System overview, software and hardware

image
image
image

When I began to assemble my Raspberry Pi-based emulator setup, one of the core issues was simply understanding the elements which comprise the system, namely the hardware and numerous software components which RetroPie relies upon, and which in turn rely upon RetroPie.

Understanding this stack became more crucial once the initial installation was complete, and I subsequently began to explore and customise the system (including setting individual emulator video resolution, display filtering and analog effects, and controller / joypad support).

Firstly, what is RetroPie?

According to petrockblock.com, the home of RetroPie:

“The RetroPie Project is a collection of works that all have the overall goal to turn the Raspberry Pi into a dedicated retro-gaming console.”

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.

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)

Continue reading

Emulation legality and extracting images from your own game cartridges

This post expands upon the contents of the static page on the legalities of emulation

As stated in the main Emulation Legality page, this is a complex issue (and differs across jurisdictions throughout the world). Anyone wishing to make backups of their own games is urged to conduct their own research before proceeding.

Stances towards the use of emulators and images/roms/iso’s differs from country to country, from hardware manufacturer to manufacturer, and from software developer to developer.

Nintendo, for example, provides detailed information regarding that company’s standpoint with regards to the use of emulators and game images:

Continue reading

Retro Gaming Emulation on the Raspberry Pi with RetroPie

Where possible I’ll attempt to publish blog posts covering topics in a logical order, progressing through my experiences during the setup of my Raspberry Pi RetroPie installation.

RetroPie Splashscreen
RetroPie Splashscreen

In setting up my installation I have followed a great many of the very useful step-by-step instructions provided elsewhere on the internet; sometimes these answered many questions, but raised others. I often found that I had to go Beyond the Basics, as I’d invariably run into a situation where a step in a chain of instructions didn’t work for me, or I wanted my system to do something which wasn’t directly covered in the guides I was following.

I’m planning that this blog will serve as a reference work for the most part, so that I can keep the notes on what I’ve experienced and learned in a single place, rather than scattered across posts and comments on multiple forums, blogs, and YouTube threads.

I’ll try to produce self-contained posts targeting specific issues (such as configuration of the Pi’s resolution, or the set-up of an Xbox 360 Wireless Controller).

At the time of writing the version of RetroPie I’ve used is 2.6; I’ll be updating to a 3.x build at some stage, but will stick with the older release for now. It’s likely that some (perhaps many) of the issues covered here will be no longer relevant with the ongoing enhancements to RetroPie, however many other topics will still be relevant to older, current (and future) builds.

Related Posts
Links: Raspberry Pi and Gaming Emulation via RetroPie

About
Disclaimers
Privacy Policy
Terms and Conditions
© Retro Resolution