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:
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.