RetroPie makes its incredibly simple to create a Game Console Emulator using the Raspberry Pi (how-to here). RetroPie will play everything from Gameboy to Super Nintendo to Sega Genesis games. Unfortunately with simplicity often comes lack of choice. This means that RetroPie comes with some predefined emulator cores that it will always use. Most of the times these emulator cores will work perfectly well – but there are situations where you would like to change  the emulator core of a certain system.

An example is the NES emulator in RetroPie – I have found that using the QuickNES core gives better results than the fceu-next core which ships with RetroPie. Fortunately RetroPie uses libretro and emulatorstation which makes it very flexible, and installing a new emulator core for any of the emulated systems is a breeze. This guide will show you how to replace fceu-next with QuickNES as the NES emulator core.

Downland and compile QuickNES

First step is to download QuickNES into your emulator cores folder. Go to your emulatorcores folder and clone the libretro QuickNES project like this:

cd ~
cd RetroPie/emulatorcores
git clone https://github.com/libretro/QuickNES_Core.git

Next go ahead and compile the project:

cd QuickNES_Core/libretro/
make

This will take a while so sit back and wait.

Re-configure Emulation station

After you have successfully compiled the QuickNES libretro core, its now time to instruct Emulation station to use this new core instead of the fceu-next core.

Open the es_system.cfg file:

nano ~/.emulationstation/es_systems.cfg

Scroll down to the Nintendo Entertainment System section – is should look like this:

NAME=Nintendo Entertainment System
PATH=/home/pi/RetroPie/roms/nes
EXTENSION=.nes .NES
COMMAND=retroarch -L /home/pi/RetroPie/emulatorcores/fceu-next/src-fceumm/libretro.so --config /home/pi/RetroPie/configs/all/ retroarch.cfg --appendconfig /home/pi/RetroPie/configs/nes/retroarch.cfg %ROM%
PLATFORMID=7

Now change it to look more like this – instructing Emulation Station to use QuickNES:

NAME=Nintendo Entertainment System
PATH=/home/pi/RetroPie/roms/nes
EXTENSION=.nes .NES
COMMAND=retroarch -L /home/pi/RetroPie/emulatorcores/QuickNES_Core/libretro/quicknes_libretro.so --config /home/pi/RetroPie/configs/all/retroarch.cfg --appendconfig /home/pi/RetroPie/configs/nes/retroarch.cfg %ROM%
PLATFORMID=7

Note: the COMMAND= line spans several lines here – but should be on one line in the config file

At this point we are done – all that’s left is to start Emulation Station, play your favorite NES game and see if you got a performance improvement.

If not maybe you should try one of the other cores available – Libretro has many different cores for a lot of different consoles like: Gameboy, Gamebog Color, Super Nintendo, Sega Master System 2, Sega Genesis, Sega Megadrive, NES etc. you can find them all here. You can change any core by following the principles in this article.


1 Comment

Vinny · May 5, 2014 at 11:20 am

I tried this, copied the command line exactly as you have it but I get an error message retroarch command not found. Could that be a permissions thing? Could the file be corrupt?

Comments are closed.