Edit 03/2017 : This post is heavily outdated. I recommend using Lakka as your system of choice for your Raspberry Pi. Have a look and test it, you won’t miss Retropie!
I think that we can all agree that the Raspberry Pi is a wonderful piece of Hardware. Using Retropie, I wanted to be able to play some console games from the 8/16Bit Era. (NES, Mega Drive etc..)
However, out of the box, performance of some systems (especially Nintendo Systems), was very low. Even my Dingoo A320 (which has less CPU Power) out-performs the Raspberry Pi in almost every way.
Most noticeable was the sound, which was horrible in most Nintendo Games (SNES and Game Boy were the worst)
Lakka works much better out-of-the-box and is way more user-friendly than Retropie.
-
Getting rid of crackling Sound
-
Faster overall emulation
-
Better Neo Geo Emulation
-
Better Master System Emulation
-
Better FBA Emulation
-
Change GBA emulator Controls
-
Faster Selection of Games in emulationstation after using es_scraper
-
Gaining space on your SD Card
-
Removing unneeded Services
-
Results
Getting rid of crackling Sound
Garbage Sound in most Nintendo Emulators is very annoying, and due to a configuration issue (and also the use of the wrong roms).
First, lets change the audio settings :
Modifiy /home/pi/RetroPie/configs/all/retroarch.cfg
Edit : Never versions of Retropie have a different location : /opt/retropie/configs/all/retroarch.cfg
Replace audio_out_rate = 48000
with audio_out_rate = 22050
and uncomment # audio_sync = true
to audio_sync = true
Even though almost every post I’ve found suggests to set the audio_out_rate to 44100, I personally think that (with my TV Setup), 22050 is a better value.
If your TV is connected via Composite and is NTSC capable, force NTSC Mode in /boot/config.txt
:
sdtv_mode=0
Strangely, Game Boy emulation is way better when TV is in NTSC Mode.
Now comes the strange part :
Faster overall Emulation
After disabling the “rewind” function, many games seem to run a lot smoother :
Modifiy /home/pi/RetroPie/configs/all/retroarch.cfg
Edit : Never versions of Retropie have a different location : /opt/retropie/configs/all/retroarch.cfg
Replace rewind_enable = true
with rewind_enable = false
and video_threaded = false
with video_threaded = true
Better Neo Geo Emulation
piFBA emulates Neo Geo games better than gngeo. This is how to change the emulator for Neo Geo Games:
Modify /home/pi/.emulationstation/es_systems.cfg
:
Find the Neo Geo Section, and change the following :
COMMAND=/opt/retropie/emulators/gngeo-pi-0.85/installdir/bin/arm-linux-gngeo -i /opt/retropie/roms/neogeo -B /opt/retropie/emulators/gngeo-pi-0.85/neogeobios %ROM%
# alternatively: COMMAND=/opt/retropie/supplementary/runcommand/runcommand.sh 1 "/opt/retropie/emulators/pifba/fba2x %ROM%"
into
#COMMAND=/opt/retropie/emulators/gngeo-pi-0.85/installdir/bin/arm-linux-gngeo -i /opt/retropie/roms/neogeo -B /opt/retropie/emulators/gngeo-pi-0.85/neogeobios %ROM%
COMMAND=/opt/retropie/supplementary/runcommand/runcommand.sh 1 "/opt/retropie/emulators/pifba/fba2x %ROM%"
/opt/retropie/emulators/pifba/
Better Master System Emulation
The built-in Mega Drive Emulator (PicoDrive) is in my opinion superior to Osmose (the built-in Emulator for Master System)
You can simply change the Emulator by modifying /home/pi/.emulationstation/es_systems.cfg
Find the Sega Master System Section, and change the following :
COMMAND=/opt/retropie/emulators/osmose-0.8.1+rpi20121122/osmose %ROM% -joy -tv -fs
into
COMMAND=/opt/retropie/supplementary/runcommand/runcommand.sh 1 "/opt/retropie/emulators/RetroArch/installdir/bin/retroarch -L /opt/retropie/emulatorcores/picodrive/picodrive_libretro.so --config /opt/retropie/configs/all/retroarch.cfg --appendconfig /opt/retropie/configs/megadrive/retroarch.cfg %ROM
(You can copy / paste this Command line fro the Mega Drive Section)
Better FBA Emulation
As with the Neo Geo, piFBA is far better then the default Final Burn Alpha Emulator.
Modify /home/pi/.emulationstation/es_systems.cfg
:
Find the Final Burn Alpha Section, and change the following :
COMMAND=/opt/retropie/supplementary/runcommand/runcommand.sh 1 "/opt/retropie/emulators/RetroArch/installdir/bin/retroarch -L /opt/retropie/emulatorcores/fba-libretro/fb_alpha_libretro.so --config /opt/retropie/configs/all/retroarch.cfg --appendconfig /opt/retropie/configs/fba/retroarch.cfg %ROM%"
# alternatively: COMMAND=/opt/retropie/supplementary/runcommand/runcommand.sh 1 "/opt/retropie/emulators/pifba/fba2x %ROM%"
into
#COMMAND=/opt/retropie/supplementary/runcommand/runcommand.sh 1 "/opt/retropie/emulators/RetroArch/installdir/bin/retroarch -L /opt/retropie/emulatorcores/fba-libretro/fb_alpha_libretro.so --config /opt/retropie/configs/all/retroarch.cfg --appendconfig /home/pi/RetroPie/configs/fba/retroarch.cfg %ROM%"
COMMAND=/opt/retropie/supplementary/runcommand/runcommand.sh 1 "/opt/retropie/emulators/pifba/fba2x %ROM%"
Games like Final Fight run much better.
[wpfilebase tag=fileurl id=9 linktext=’Here is my controller configuration for a PS3 Controller’ /]Change GBA Emulator Controls
You need a USB keyboard connected to the Raspberry PI for this to work.
Start a GBA game, and hit the F10 key on the keyboard. A menu will show up. Select Game Pad Control and remap the buttons to your liking. I suggest also to enable the Hotkey option, so you just have to press “Select” + “R” on your Gamepad to enter the Menu. (No Keyboard needed anymore)
If you have no keyboard available, you can use [wpfilebase tag=fileurl id=10 linktext=’my config file’ /]. Just place it in /home/pi/RetroPie/emulators/gpsp/raspberrypi
(where you should have put your GBA Bios as well)
Faster Selection of Games in emulation station after using es_scraper
After using es_Scraper ( the script which downloads artwork for your games), navigating through emulationstation was very slow. This was because the script downloaded high resolution artwork (although the option to limit to 375px was selected). Images were a few MB in size.
So I used a batch Photo Processor (I recommend Phatch) to resize all artwork to 375pixel in width. Image size was reduced to 30-60KB. ([wpfilebase tag=fileurl id=8 linktext=’Here is my phatch script’ /])
This made navigating the Games much more faster.
Gaining space on your SD Card
I see that a lot of effort was put into Retropie, but the Image size (almost 4GB uncompressed) is way bigger then what I expected it to be . There are a lot of “leftovers” in the image which can be deleted.
- Remove Raspbian update packages that are already installed:
empty the folder /var/cache/apt/archives
- Remove checked out Source Code (hidden .git folders)
find '/home/pi/RetroPie/' -type d -name '.git'
find '/opt/retropie/' -type d -name '.git'
This will show you a list of folder which can be safely deleted
- Remove emulators and Rom folders that are not needed
Doing this I gained around 700MB in Space on my SD Card, now I can put more games on it 😉
There are also some packages (like HP Printer Drivers) that can be removed, see section “Removing unneeded Services” below.
Removing unneeded Services
Retropie is based on Raspbian, and uses a lot of features that a Console Games emulator does not need, for example a Print Server.
Edit : This is not needed for recent Retropie versions
To remove the Print Server, including its Driver packages :
sudo apt-get purge cups
You’ll also free some important SD Card Storage.
Results
Most emulators that I use run much better after applying these tips.
Some systems need overclocking the Raspberry Pi (especially SNES and Pc-Engine)
Keep in mind that my Raspberry Pi is not overclocked (Retropie overclocks by default), and here are my results :
Most games are playable, some are unplayable (Ghouls n Ghosts) |
Legend
Good , games are very playable
Ok, games are playable but may have slowdowns or sound issues
Not Ok, massive slowdowns
1 comments
SNES emulation works great when overclocked. i haven’t tried disabling rewind. overclocking doesn’t appear to have any noticable impact on heat even when kept on 24/7