The Complete Guide To The UltraSlim Raspberry Pi Image.

I’ve tried a number of different Raspberry Pi Emulator Distros before I finally settled on UltraSlim. The first thing that struck me about UltraSlim when I started going through it was that the author really was thinking about the end user when he structured the image. Making changes or troubleshooting in UltraSlim was made much easier because of the foresight the author had here. But the main selling point for me, unlike most other ( all other? ) images that contained a emulationstation front-end. UltraSlim came with XBMC already installed!


The only real draw-back I could find, was a serious lack of documentation. Not just for the UltraSlim image it self -but the entire raspberry Pi community in general. I spent more time searching through forum posts, changing configuration settings and researching linux commands than I did actually enjoying my Pi. Want to add a Bluetooth controller? There goes 2 hours… Want 2 controllers? Another hour… etc, etc. My goal here was to make the barrier to entry as easy to overcome as possible for beginners so that anyone can dive right in and setup their Emulators, controllers, customizations within minutes…not hours(or days?!) So with that, Enjoy UltraSlim and I hope this guide gets you up and running just a little bit faster.


I am not the author of UltraSlim, I’m merely a guy who writes an awesome blog that loved the image. The architect of this raspberry Pi image is TakenOver83, You can check out his original post debuting UltraSlim here. TakenOver put a lot of hard work into creating a great image, Please consider buying the guy a beer(donating) if you enjoy the image! 


General Info


Install UltraSlim to SD

1.) Download latest release of UltraSlim.

2.)  Flash image with windisk32imager.

3.)raspi-config” will run on the first boot. Make sure to re-size your file system, set regional settings, time-zone, etc..

4.) Do not reboot from raspi-config. Instead select No if it asks to reboot. This allows the first boot script to finish. (which will reboot for you)

Key File Locations

Roms location = ~/Roms/
Retroarch main config = ~/Emulators/Retroarch/retroarch.cfg
Retroarch core configs = ~/Emulators/Retroarch/configs/[emu]/retroarch.cfg
emulationstation config = ~/.emulationstation/es_systems.cfg
emulationstation mappings = ~/.emulationstation/es_input.cfg

Access Your Pi Via SSH (Putty)

1.) Download Putty.exe

2.) Run Putty.exe and connect to your Pi.



3.) You will get prompted to accept a Certificate, This is normal – Accept.

4.) Lastly, Login with the default credentials of:

User:  pi
Pass:  raspberry


Access Your Pi Via SSH (FTP Client)

1.) First we need to install SSH.


2.) Once Installed, You should be able to start the service by running:


3.) Then we need to enable SSH in raspi-config:


4.) Lastly, you need to configure and connect with your FTP Client. Below is a screenshot of my working connection information via FileZilla.


User:  pi
Pass:  raspberry


Access Your Pi via Samba

In Windows explorer, You can access your Raspberry Pi /home/pi directory by typing either of the following into a run command or Windows explorer.

  • \\\
  • \\UltraSlim\

You can customize your localhost name to something other than UltraSlim by running the “raspi-config” command.

Misc. Info About UltraSlim

  • Lirc (remote support) is installed and enabled. Just copy your lircd.conf to /etc/lirc.
  • SSH = pi/raspberry
  • You can put your own scripts in ~/Roms/apps/ and it will show in EmulationStation.
  • F4 = Exit emulationstation

If you run one of the script’s from emulationstation and it throw’s you back to emulationstation, then exit emulationstation with [F4] and try again. Should work fine after that.

Wi-fi Setup

1.) First we need to identify what type of wifi device we have plugged into our Pi.

Then take note of your wireless adapter info…

Next we need to do a search based on our results:

Our above search Returned x1 result for the required driver, So next we are going to install the required firmware via:



2.) Finally we will need to configure our wlan interface…


Click to Expand
[learn_more caption=”Unsecured Network”]


[/learn_more][learn_more caption=”WEP Config”]  

You may need to format your wireless key entry as such:
wireless-key s:<your wep password>

For Example:


[/learn_more][learn_more caption=”WPA2 Config”]  

[/learn_more][learn_more caption=”WPA2 Enterprise”]

First we want to change network/interfaces to use wpa_supplicant like so…


For this one, I also had to leverage wpa_supplicant…

Then setup my WPA2 Enterprise wireless connection like so…


It took me a long time to figure out how to get this one working…. My understanding is that this is because WPA2 wifi networks / 802.1x networks can vary in their configuration, so there is not a one size fits all solution like the other standards.

In any case, I hope this is able to help!

[/learn_more][learn_more caption=”Troubleshooting Your WiFi Connection…”]
  • Lookup your wifi card model @ to make sure that there are no known issues/bugs with your specific device.
  • Make sure your device works!! This may sound stupid, but I spent half a day trying to get a wifi card working on my Raspberry Pi… only to found out that the device didn’t work in the first place! It would scan the networks in range but never connect. I only figured this out after it did the same thing in Windows XP and Windows 7… Do yourself a favor and confirm that you have a working card!
  • You can run the following commands to see where issues may lie…
  • For advanced configuration of /etc/network/interfaces – You can check out this Post by Pencoys.


Finally, Reboot one last time. When your Pi comes back up, you should now see an IP address populated for your wifi device!If you do not get an IP address after the reboot, Make sure to Look at my Wifi Troubleshooting section above!


Set Static IP Address – Wired

1.) SSH into your Pi.

2.) Then we want to edit the network interfaces:


3.) You’ll see some settings that look like this:

Replace the line: iface eth0 inet dhcp
with: iface eth0 inet static

4.) Then specify the address, netmask, network, broadcast and gateway, like this:

iface eth0 inet static


**If you are unsure what the above settings should be, You can run the following:


5.) Finally, Reboot and make sure that you can ping the new static IP address. Then make sure your Pi can reach the inter-webs!


To Properly ShutDown

There are 2 ways to shutdown your Pi properly:


Ran from command line:


Simply hit the Menu key from emulationstation and select “Shutdown”


Guide Change Log

I thought it would be helpful to track my progress with the guide some place, so why not here? I’ve also decided to include a  “To Do” Section so that others can see what I plan to add in the future and offer up further suggestions / assistance.

To Do:

  • Add Xboxdrv section (wired ps3 controller)
  • ??? – Suggest something!

On Hold:

  • Get help with Remote control Setup instructions
  • Get joystick to work in XBMC ( waiting on next release )
  • Get Airplay to work in XBMC ( waiting on next release )

If anyone wishes to contribute documentation for additional controller types, Please leave a comment or feel free to E-mail me directly @

Update: (3/20/2014)

  • Get help with Xbox 360 Setup instructions (Thanks msargenttrue!)
  • Format Apple / Android XBMC remote section
  • Add Wired PS3 Controller Section
  • Made Code boxes more copy/paste friendly
  • Misc. Formatting / Spellchecking!

Update: (3/19/2014)

  • Updated audio troubleshooting section
  • Added XBMC-Nightly build section ( Thanks Etheric!)
  • Cleaned up XBMC section
  • Add “Where can I download Roms section” ?
  • Wifi Setup

Update: (3/17/2014)

  • Add Intro
  • Added instructions for getting quake & Doom to work. Also added install directions for Duke3d.
  • Elaborated on Performance / Audio troubleshooting
  • Cleaned up troubleshooting section
  • Added additional Emulators, Cleaned up section
  • Reformat PS3 Bluetooth controller setup section
  • Misc. formatting improvements

Update: (3/16/2014)

  • Fleshed out the PS3 controller section
  • Added a few new emulator setup directions.
  • Currently working to troubleshoot audio issues in some of the Emulators…

Also still seeking help in documenting Xbox controller setup! If you have a spare controller to send me, I’ll do all the hard work – I just need one to test with!


**Didn’t log updates prior to 3/17. But I assure you there were many!


Controllers & Remotes


Android/Apple – XBMC Remote control

Before we dive into configuring our phone as a remote device for XBMC, we will need to find the IP address of our Raspberry Pi. To do that go to:

System > System Info > Summary

Once you have your IP address, syncing your phone to XBMC should be a piece of cake.

[learn_more caption=”Android XBMC Remote”]

There are probably a dozen different XBMC remote apps available for you to choose from, So by all means feel free to try a few different ones out. I just personally favored the Yatse remote app.


1.) Download the Yatse XBMC Remote From the Google Play Store.

2.) Before you Open the App, Make sure that XBMC is running

3.) Finally, Enter your XBMC configuration info and connect!



[/learn_more][learn_more caption=”Apple XBMC Remote”]

Just like It’s android counter-part, there are a number of different Remote XBMC remote apps to choose from – again I just personally preferred this one.


1.) Download the Official XBMC Remote App.

2.) Make sure that XBMC is running before you open the app.

3.) Then simply configure the app using your Raspberry Pi IP address.
         (Although Auto-discovery should work as well!)




PS3 Wired Controller Setup

[learn_more caption=”Setting Up A Wired PS3 Controller”]

1.) First, Grab the device name of your controller by running:


2.) Then we will want to edit es_input.cfg to allow us to navigate UltraSlims menus. (Make sure you are using the exact device name from step 1 for the below config file!)

Edit  ~/.emulationstation/es_input.cfg

  • notepad++ in Windows
  • sudo nano in command line


3.) Next we need to configure our controller keymaps for use in our Emulators.

Browse to:  /Emulators/Retroarch

Edit Retroarch.cfg and append the below config to the end of the file.


Note: You will have to press the PS button before it recognizes your controller!

**Tested working in Ultraslim v1.6

[/learn_more][learn_more caption=”Control XBMC w/ Your wired PS3 Controller”]

As detailed by TakenOver himself:


1.) Install Xboxdrv


2.) Edit the script in /Roms/Apps to leverage Xboxdrv.


3.) Find your controllers driver file.



4.) Next, you will want to Create a PS3.ini file for xboxdrv to reference.
(If you use a different file name, change the script in step 1 to reference the different name!)

(This config is using a genuine PS3 controller!) 


5.) Save and Exit. ( Ctrl+x > Y > Enter )

6.) Finally. Reboot and test!


**If you encounter any difficulties during your setup/configuration – Please check out the xboxdrv Man page.


PS3 BlueTooth Controller Setup

[learn_more caption=”Installing & Configuring The PS3 Controller”]

1.) Make sure you are using a Bluetooth Dongle from this list of approved devices. Also make sure that if you are overclocking your Raspberry Pi at all – you are using a powered USB hub for your Bluetooth dongle!

Now would also be a good time to tell you to make sure your PS3 controller is plugged in via USB cable to your raspberry Pi.

2.) Install Dependencies

3.) Now we should be able to see if the bluetooth dongle is detected.

(Note: You may need to use a powered USB hub)

You should see something similar to this:


What we are looking for here is that it is reading in a “UP” state.


4.) Next we need to download sixpair and pair the Bluetooth dongle with the controller.


5.) You should still have your controller plugged in at this point, If not Plug it in now.

To pair the controller we need to run:

You should see something like:
Current Bluetooth master:  00:02:72:BE:8C:8F
Setting master bd_addr to: 00:02:72:C0:77:AA


6.) Next we Need to install SixAD to manage the controller.

**If you encounter issues installing SixAD or if the Checkinstall command in the next step doesn’t run successfully, you will probably need to apply the patch detailed below!

If you encounter errors when installing sixad, This is the compilation patch that helped me get things working:

After you save and exit, you should be able to then run the make command.


7.) Then we need to run CheckInstall:

I’ve highlighted the 3 prompts you will encounter when running the Checkinstall command. Essentially you want to do the following:

  • Enter “y” at the first prompt
  • Enter a name at the second prompt and then hit “Enter”
  • At the last prompt, leave it blank and hit “Enter” Again.



8.) We’ll want to set the sixad daemon to run at startup, and then manually run the startup process now.


9.) Now you can unplug the controller and press the PS button. After a few seconds the controller should vibrate and the LED should show that you are connected as the 1st player!

10.) Finally, We need to create a default controller profile for sixad:

Sudo nano /var/lib/sixad/profiles/default


When you are done save and exit. Then reboot your Pi. After boot-up you should be able to sync the controller once again by pushing the PS button. Please read the other PS3 setup sections to configure control setup for Emulators and Retroarch.



**Tested working in Ultraslim v1.6

[/learn_more][learn_more caption=”Setting Up A Second Bluetooth Controller”]

This section assumes that you already have got your 1st controller working via Bluetooth. It also assumes that you will be using the same Bluetooth dongle to connect both controllers. You shouldn’t experience any input lag with 2 controllers running off of the same dongle, however you may want to consider a 2nd dongle to support 3-4 players.


1.) Disconnect your 1st controller by rebooting your Pi or holding the PS button for 12 seconds to turn the controller off.

2.) Connect your second controller via a usb cable and give it a moment to recognize the controller.

3.) Then just like before, we have run the following command to sync the controller to our Bluetooth dongle.

You should get something like the following:

Current Bluetooth master: 00:02:72:BF:BC:8F
Setting master bd_addr to: 00:02:72:C0:77:AA

4.) Disconnect your 2nd controller from the USB cable, then hit the PS button to sync. If successful it will register the controller and rumble.

5.) Finally, you will want to add the proper keymaps for the 2nd player using the below sections:

  • Controlling emulationstation with your PS3 controller (optional)
  • Emulator Controls w/ PS3 controller


It is important to note as well that certain games wouldn’t register the 2nd controller for whatever reason. Please try a few different Roms when testing the 2nd controller! I wasted a good amount of time trying to register the 2nd controller with Donkey Kong Country 3…and it just wouldn’t work. Only to find out later that a different Rom on the Emulator registered player 2 just fine.

If you happen to figure out this little quirk – Please share your solution in the comments 🙂

[/learn_more][learn_more caption=”Navigating emulationstation w/ PS3 Controller”]

Delete  ~/.emulationstation/es_input.cfg

Restart your Pi and you should be prompted to config your controller again.

After you configure your new PS3 controller, you should be able to browse through menus!


For reference, this is what my new es_input.cfg file looks like in its entirety.

(Just remove the 2nd controller input if you don’t want the 2nd player to have control!)

To find your controllers Bluetooth address, Run:


[/learn_more][learn_more caption=”Emulator Controls w/ PS3 Controller”]

Browse to:  /Emulators/Retroarch

Edit Retroarch.cfg and append the below config to the end of the file.

(Each additional player will need their own config entry, The example above shows the proper setup for 2 players)

[/learn_more][learn_more caption=”Controlling XBMC w/ PS3 Controller”]

After spending a week trying to get this functionality working…I’ve finally called it quits. Smarter men than me are working actively to get this functionality working in the next release of XBMC-Gotham.

I will update this section when there is an easy to implement solution, but until then we’ll just have to be patient and keep an eye on the upcoming Gotham release dates.


XBox 360 Wired Controller Setup

**A huge thanks to User msargenttrue from the Raspberry Pi forums for contributing all of the below XBox 360 controller documentation.


[learn_more caption=”How to Setup The Xbox 360 Controller (x1 wired)”] 1.)  Start by installing xbox drivers from the terminal:
2.) When the installation is complete edit the rc.local file:
3.) Add this above the exit 0:
4.)  Save the file
5.) Navigate to Retroarch:
6.) While in this directory, input the following command:
7.) Follow instructions to map buttons.
8.)  Next use this command to append the button mapping config files to retroarch.cfg
(i.e. p1-p4 if mapping multiple controllers):
9.) Save and reboot and you should be good to go.

Here’s is the p1.cfg file I ended up with that illustrates the button mapping
(includes home exit button mentioned in next section):


I basically followed this guide (but I updated paths for UltraSlim and included all steps below):

The one’s also useful:

Refer to above links for details relating to the wireless Xbox 360 controller or multiple controllers.

[/learn_more][learn_more caption=”Configure Xbox Home Button to Exit Emulators”]

Add lines to the bottom of both “retroarch.cfg” and “p1.cfg”:

 Note: button 8 is the home button on the Xbox 360 wired controller.


View section: My emulator won’t close through my gamepad!


[/learn_more][learn_more caption=”Control Emulation Station with Multiple Controllers”]
I combined a wireless keyboard and wired Xbox 360 controller in es_input.cfg by following the 2nd post here:’s my final es_input.cfg for reference:




Where can I download Roms?

The 1st rule of Roms, Is you don’t talk about your Roms…


Just kidding:D I don’t understand why so many of the Pi forums are afraid to share this information… Heck even included a number of places where you can find Roms to download. In any case, You have a few different options available to you:

  • Torrents
  • Newsgroup Downloads
  • Rom Sites

For me, I found it easiest to just use


Roms Legend

(U) = US
(E) =  Europe
(J)  =  Japan
(G) =  Germany
(!)   =  Good Rom :)
[a]  =   Alternative version
[f*] =   Fixed to run better on copiers or emulators
[m*] = Multilanguage
[b*] =  Bad Dump :(
[f*]   = Unsure
[h*]  = Hack
[o*]  =  OverDump (sometimes bad, sometimes good)
[m*] = Not sure.

Supported Rom Formats

nes = .nes .NES .zip .ZIP
snes = .smc .sfc .fig .swc .SMC .SFC .FIG .SWC .zip .ZIP
sega = .smd .SMD .bin .BIN .zip .ZIP .iso .ISO
Ps1 = img .IMG .pbp .PBP .bin .BIN
Atari2600 = .a26 .A26 .bin .BIN .rom .ROM .zip .ZIP .gz .GZ
N64 = .n64 .z64 .N64 .Z64 .rom .ROM
FBA = .zip .ZIP .fba .FBA
mame = .zip .ZIP

Remove Default Games

Remove Cave Story:


Remove Doom3:

Remove rom from Doom Folder in \Roms\Doom

Remove Dinothaw:


Remove Qauke3:




Update to XBMC-Gotham

This is the same update procedure that TakenOver details for UltraSlim.


Update to XBMC-Gotham Nightly Builds

A Big thanks to Etheric from the Raspbery Pi forums for helping me figure this one out! The upgrade path detailed here is a bit hap-hazard but it finally allowed me to play with some XBMC Nightly builds!
(FYI – Joystick is still disabled in latest build! – Blarggg)

**Please Note that it may be easier to pull your SD card and make a backup of your current image than to restore your UltraSlim image if something goes wrong. You can find the details on how to do this in the TroubleShooting section.

1.) Prep System


2.) Upgrade to the December Gotham Build as described by TakenOver.

Now browse to /home/pi  and delete the XBMC.tar.gz used to upgrade in this step.


3.) Next, We want to visit this Thread and download our desired nightly. Just grab the link from the wget command.

For Example:


In order for the UpdateXBMC script to recognize the .tar.gz Nightly file, we need to rename it to something like:

  • xbmc-rbp-13-20140317-nc3.tar.gz

The important thing here is that the file starts with “xbmc-rbp”.


5.) Run the update script one last time.


It will probably complain this time about not being able to find the files… Shouldn’t make any difference though.



6.) When it is done, XBMC will end up here:

  • /opt/xbmc-bcm-20140317-nc3/xbmc-bcm

This is a problem because XBMC is going to be looking to run in the usual directory:

  • /opt/xbmc-bcm

So we just need to fix the folder heiarchy here….


7.) Finally, Etheric recommends running the following so that xbmc doesn’t keep complaining about missing scripts from previous versions.


If you run into issues along the way and need to revert to the last good backup of XBMC. You can run the following:


There is probably a better way to implement the recovery of your previous version of XBMC, but this is what worked for me. Essentially all we are doing is deleting the old xbmc-bin folder, extracting the contents of our backup and moving it to the /opt directory.

AirPlay in XBMC

Just wanted to quickly mention AirPlay functionality in XBMC. So far I’ve only been able to get photo & music sharing to work correctly, If you are interested in what it takes to make that happen you can checkout my UltraSlim thread on the Forums for more details:

***If you know any tips/tricks to get video playback working with AirPlay, I encourage you to share in the comments section!

Adding Media

Most users will be adding media content from another windows machine or NAS. Below is the procedure you want to use in the XBMC menu.

  1. Windows Network(SMB)
  2. WorkGroup
  3. NAS / Name of PC containing your Shared media Files
  4. Select your desired shared media folder
  5. Enter username & password if prompted
  6. Then select your desired “Scraper” category ( TV, Movies, Music, etc… )


Customize The Look and Feel of XBMC

Their are some pretty ambitious authors behind XBMC that have put together some great “Skins”. Changing the GUI of your XBMC machine can make a huge impact on usability / navigation and …well, making your media center look awesome.

Recommended Add-Ons(new)

This is an on-going list of recommended XBMC add-ons that I have personally found to be noteworthy.

  • YouTube
  • Pandora / GrooveShark
  • ??

Obviously the list isn’t all that populated yet. I’ll try to keep this populated with other worthwhile Add-Ons when I encounter them. However, If you would like to suggest one in the comments – I’ll be sure to check it out and Add it here.

I’d also like to quickly suggest you take a look at this short video:

I haven’t gotten around to testing the myriad of plugins available using his method, but it certainly looks promising.




All of the below instructions were derived from this great tutorial by Vanfanel.

Playstation Emulator

[learn_more caption=”PSX Re-armed”]

Already included in Ultraslim – Use the Emulator update script to up date if desired. This is  considered by many to be the best PSX emulator available for the Raspberry Pi. If you wish to try alternatives, it should be pretty easy to piece together from the other guides below.

If you do happen to try the alternatives, please share in the comments below and let me know how it went for you!


Super Nintendo Emulator

[learn_more caption=”PiSNES / SNES9x”]

UltraSlim comes pre-packaged with a working SNES emulator – PocketSNS. However I’ve heard multiple times in different threads that audio playback is much better in this Emulator. So here it goes….



Since we already have a SNES emulator in place, we can simply re-use alot of the already created folders in UltraSlim. We do however have to edit es_systems.cfg to tell it and use the new Emulator core that we moved.

Find the SNES section in es_systems.cfg and edit the .so file used – like so:


Just tested snes9x compared to pocketsnes…. Pocketsnes is way better from initial testing. Don’t bother with snes9x!

[/learn_more][learn_more caption=”SNES9x-next”]

UltraSlim comes pre-packaged with a working SNES emulator – PocketSNS. However I’ve heard multiple times in different threads that audio playback is much better in this Emulator.

This is the newer version of snes9x, hopefully it performs better than than the old version!


Since we already have a SNES emulator in place, we can simply re-use alot of the already created folders in UltraSlim. We do however have to edit es_systems.cfg to tell it and use the new Emulator core that we moved.

Find the SNES section in es_systems.cfg and edit the .so file used – like so:


Performance is still sub-par compared to PocketSNS. May have something to do with the modified Make command…


Game Boy + Game Boy Color

[learn_more caption=”TGBdual-Libretro”]

This is my recommended Emulator for Gameboy Roms.


Login via SSH w/ Putty


Create folder:  /Roms/gbc
Create folder:  /.emulationstation/gbc

This folder is going to house your emulator artwork. The easiest way to get this working is to simply copy the artwork contents of another emulator. There should be a .xml file and an artwork folder.

Simply modify the .xml file to point to your new artwork & folder path. It should be pretty straightforward.

Create folder:  /Emulators/Retroarch/configs/gbc

Still in this folder, create retroarch.cfg with the following placeholder text:


Edit  ~/.emulationstation/es_systems.cfg

  • notepad++ in Windows
  • sudo nano in command line

Lastly, If you really want to go the full nine here – You can add an entry for the emulator under the update_emulator script @ Roms\apps\. If you open up the shell script, It should feel pretty straight forward on how to modify an existing entry to work with your new emulator.

[/learn_more][learn_more caption=”Gambette-Libretro”]

This emulator did not work for me!

This is here for reference only, please use tgdual-libretro.


Login via SSH w/ Putty


Create folder:  /Roms/gbc
Create folder:  /.emulationstation/gbc

This folder is going to house your emulator artwork. The easiest way to get this working is to simply copy the artwork contents of another emulator. There should be a .xml file and an artwork folder.

Simply modify the .xml file to point to your new artwork & folder path. It should be pretty straightforward.

Create folder:  /Emulators/Retroarch/configs/gbc

Still in this folder, create retroarch.cfg with the following placeholder text:


Edit  ~/.emulationstation/es_systems.cfg

  • notepad++ in Windows
  • sudo nano in command line

Lastly, If you really want to go the full nine here – You can add an entry for the emulator under the update_emulator script @ Roms\apps\. If you open up the shell script, It should feel pretty straight forward on how to modify an existing entry to work with your new emulator.


Install Duke3d

“Time to Kick Ass and Chew Bubblegum… and I’m all out of bubblegum”


Install Dependencies


Install Duke3d


Edit  ~/.emulationstation/es_systems.cfg

  • notepad++ in Windows
  • sudo nano in command line

sudo nano /etc/X11/xorg.conf


Create folder:  /.emulationstation/duke3d

This folder is going to house your emulator artwork. The easiest way to get this working is to simply copy the artwork contents of another emulator. There should be a .xml file and an artwork folder. You will probably want to choose a unique image to represent the Emulator as well.

Simply modify the .xml file to point to your new artwork & folder path. It should be pretty straightforward.


Finally reboot:


The opening splash image and menu screen flash when you first load the game, However once you start gameplay it seems just fine. If you wish to use a controller instead of the keyboard, you will need to map your joystick manually. To do this, Load the game and navigate to Options > Joystick Setup. Detailed information about this can be found Here.


Install directions derived from RetroPie Setup Script.

Fix Doom

You will need additional .wad files to play Doom.

This means however you’ll get a rom list like this in emulationstation:

You can download the above .wad files Here.

Once downloaded, simply extract the file and place it in the /Roms/doom folder.


Fix Quake

Quake 3 is already setup and configured in UltraSlim…well almost.

It requires a few (8 to be exact) .pak files first.

1.) Download the .pak files @

2.) Browse to: \\ULTRASLIM\Home\Q3A\baseq3

3.) Unzip them in the directory listed above and start Quake!


4.) If you want to use your Joystick to control Quake, you will need to go to:

  • Setup > Controls > Look > Joystick = On
  • Exit out of Quake
  • Boot Quake once more and go back into Controls
  • Use your mouse and joystick to configure your controls




Not content with the huge library of Emulators & Game options?

Check out this great thread on the Raspberry Pi Forums detailing a ton of extra games!

For additional emulators you will want to check out the Libretro GitHub page.




General Tips:

1.) Make sure you are using compatible Hardware.

Click HERE For a full list of supported Peripherals.


2.) Adjust the memory that is dedicated to graphics/cpu:


3.) Adjust the overclock settings:

 **It should also be noted that the UltraSlim image is already overclocked to the ‘meduim’ setting by default.


4.) Below are a few helpful commands to help navigate/troubleshoot:

Search for a specific file / folder name on the Pi.

List all the files, folders & hidden folders in a directory.

List all controller devices:


5.) Before you hose your image troubleshooting an issue – Make a Backup!

  • Power off your Pi.
  • Plug your SD card into your PC
  • run win32diskimager and run the read command to make a backup!


6.) There are some fantastic resources available @ Ranging from general information to advanced user & programmer guides. Definitely worth bookmarking!


Troubleshooting Audio Issues

Audio issues seem to plague every emulator distro, UltraSlim is not exempt here unfortunately… Since this topic spans the entire spectrum of raspberry Pi emulators and we are working with a limited amount of horsepower with the PI, a lot of times there is little you can do to improve sound quality within certain Emulators or Roms. I will however attempt to cover some of the basics.

1.) Change Memory Split. ( see General Tips section above)

2.) Change Overclock (see General Tips section above)

3.) Try a different Rom. Particularly smaller file sized Roms.

4.) Try a different Emulator

5.) Try lowering the qaulity of your audio by editing audio_out_rate.



6.) Update Your Pi!

(This is what finally fixed my audio issues with pocketSNES!)


Additional information can be found @


Improve GamePlay Performance


1.) Change Memory Split. ( see General Tips section above)

2.) Change Overclock (see General Tips section above)

3.) Try a different Rom. Particularly smaller file sized Roms.

4.) Try a different Emulator ( Or updating it )

5.) You can completely disable audio



Specifically PSX & N64 emulation seem to be the most difficult to get working correctly. And for good reason, these emulators are pushing the processing power of our awesome little Pi to the very limit. As stated above, typically the best thing you can do to improve performance is target Roms that are of a smaller file size and don’t require a large amount of rendering.


For n64 emulation, a list of titles that are known to work well can be found HERE. Often times to achieve seamless gameplay – you will need to make adjustments in the Emulator configuration file. The catch is that each title operates best with different settings… There is a great forum post describing n64 emulation and configuration settings HERE.

Personally, The only n64 title that seems to work for me so far is Super Mario 64. It should be noted as well that it is only a 8mb Rom file. If you really want to emulate more than a handful of games in n64 well – You should be prepared to read up on overclocking your Pi, educate yourself on how to make adjustments in your emulator configuration file and for that matter making minor performance adjustments through-out the image. I’ve even read that people have been starting to attach heat sinks to their Pi’s.


Much of what has been said about N64 emulation can be easily applied to PlayStation emulation. That being said, PSX should be just a little bit easier to get working as it requires slightly less horsepower. I’ve read numerous places that 256 memory split offers an ideal experience, however I never actually noticed a difference personally.



I Need Your Help!!
To make this the best Pi Emulator guide possible. Please share any tips/tricks/advice or information you have in the comments section below. I would be particularly appreciative of any additional documentation for other controllers.

Thank you,


  • You can view my progress / future updates via the ChangeLog section.

    If you would like to submit documentation, Discuss Features or Troubleshoot an issue – Please post in the dedicated forum Thread:

    Or if you would prefer, the original Authors thread:


    • BillGato

      I was trying to install the PS3 controller onto my Pi and reading the instructions I got an error. I added the “plus” signs lines to my shared.h file but it doesn’t seem to want to install. Getting this:

      install: cannot stat `bins/sixad-bin’: No such file or directory
      make: *** [install] Error 1

      **** Installation failed. Aborting package creation.

      Cleaning up…OK

      • Previously they were incorrect. Sometimes the plugin I use to include code will mess with special characters like that. Try replacing those 2 lines in shared.h with the proper updated lines again and it “should” work.

        ***Also, Please don’t reply to existing comments if they are not related! Kind of makes the comments a mess to follow.


        • BillGato

          Sorry about the comment thing. If I need to reply elsewhere to continue this, just tell me who I should reply to.

          I added those lines you specified. You include the “plus” signs right?

          I get the same error. I also got some output from the “make” command. It seemed to have alot of errors as well. Related?

          Disclaimer: I only know enough about Linux to be dangerous.

          pi@UltraSlim ~/QtSixA-1.5.1/sixad $ make
          mkdir -p bins
          g++ -O2 -Wall -Wl,-Bsymbolic-functions sixad-bin.cpp bluetooth.cpp shared.cpp textfile.cpp -o bins/sixad-bin pkg-config --cflags --libs bluez -lpthread -fpermissive
          make: *** [sixad_bins] Error 1

          Is that normal?

          • Ah, sorry if I wasn’t clear in the post.

            The plus signs only signify the lines to add, they shouldn’t be included. That is probably where you’re getting tripped up!

  • Cool guide!
    You can use this for wifi setting:
    sudo aptitude update
    sudo aptitude install wicd wicd-gtk wicd-curses
    Its a network manger in LXDE

  • Billgato

    I don’t get video when I plug it into a TV but do get video when plugged into a monitor. Haven’t changed anything in the stock image. Ideas?

    • Assuming that you are using HDMI for both devices:

      I would try adding the following lines in /boot/config.txt


      Then Reboot.

      For more information regarding your /boot/config.txt file. Check out:

      If you are using composite Video, I would check out this link:

      • BillGato

        I tried adding those lines to the config but it didn’t have any effect. I think I figured it out though so I will share. I have an HDMI splitter that I use that has no problems with the other 10 things I have hooked up to it but the Raspberry Pi will not initialize video when attached to it. When I plugged it directly into the HDMI I got video. When I tried booting up the Pi after being directly plugged in and then changed the HDMI cable to one that used the HDMI switcher (while leaving the Rasperry Pi on) the video came up, probably because it had already initialized.

        I can only conclude that something in the way the Raspberry Pi is made simply doesn’t detect video when using the HDMI switcher. It’s just weird because I have hooked up countless other devices with no problems to that thing.
        Thanks for the help on that.

        Maybe there is some way in Linux to tell it to force HDMI, even when it doesn’t detect anything plugged in…or something. I don’t know. Not a big deal but would welcome ideas.

  • Óscar Liñán

    Wear time trying to stop the image list, but problems arise me. To connect remotely with Putty I have no problem, but when I do it with Filezilla to transfer some data not let me, any ideas? Then I could not update the system, there were some errors. Also when installing the Quake 3 I did not find the specified directory to unzip the files. I wonder if this mupen64plus ready to run or to do something to make it work.

    • 1.) Shouldn’t need to use FileZilla. Can simply access all the important files via Samba from any Windows machine on the same network.

      2.) Update what part of the system? What were the errors?

      3.) for Quake 3, do you mean: \\ULTRASLIM\Home\Q3A\baseq3 ?

      • Óscar Liñán

        Ok, I try to connect via Samba.

        Yes, I mean \\ULTRASLIM\Home\Q3A\baseq3, that is different of /home/pi/Q3A/baseq3, right? If I copy the extracted zip files in /home/pi/Q3A/baseq3 the game don’t run, but I can’t find \\ULTRASLIM\Home\Q3A\baseq3, what can I do?

        It’s possible to play with the emulators that appears on ES_Scraper option only copying roms on the correct path? Or I have to do something with the emulators?

        • Actually they are the same directory. Just depends..

          \\UltraSlim\home\ = Samba path
          /home/pi/ = Pi path

          You said you copied the unzipped files to that directory correct? in which case it should just work. I tested the process about 2 weeks ago, so I know that it works… not sure why you are having difficulty.

          You said you can’t find the \\Ultraslim\home ? Did you check out the samba section under “general” of the guide? that explains everything you need to know.

          No idea what you mean about Es_Scraper… Can you rephrase the question?

  • Magnus

    Hi, thanks for your guide. I have a problem that maybe you could help with?

    I’ve installed ultraslim on my pi, updated and configured everything as I want it and it’s (finally) all working great. So now I want to make a backup img of my SD card (for personal use).

    I’m on win7 and use Win32DiskImager and its simple enough, you just read the card to image so no problem in making the img.
    The problem is that it becomes a 8gb img (the same size as my SDcard).
    I understand the principle of DiskImager simply making a copy of the SDcard but the ultraslim1.6.img is only around 1.3gb and on my pie i’ve only installed maybe 100mb ontop of that so the rest is just empty space.
    So how do I my img smaller (like the ultraslim img is)?

    (I understand the need to expand the filesystem in raspi-config to make use of all avalible space on the SD card on a new install but how do I do it in reverse if you get what I mean)

    • Magnus,

      I also encountered the same issue, Only I was making 16gb images of my SD card. That space goes quick when you are running a 120gb SSD!

      I spoke briefly with TakenOver on how he did this, and he suggested using Gparted.
      (Via live CD if necessary)

      Here is a Guide for that process:


      • Magnus

        I’ve considered my options and I must confess I’m not feeling confident enough to try partitioning linux devices on my desktop PC, especially now since my brain is still abit swollen after setting up the raspberry pi.

        Anyway I came up with the idea of just configing a new install of ultraslim on an old 2gb SDcard and just make a backup of that one. That should result in a backup img of ~2gb wich is good enough.
        Abit of a cop out solution but hey it works! 🙂

  • BillGato

    Make errors solved but still no bluetooth PS3 controller.

    I took out the “plus” signs and low and behold everything went with no errors. I got all the way to the end and then rebooted. The PS3 controller was unplugged and so I turned it on when the Pi was initializing and …. nothing. It doesn’t do anything. It rumbles when I push the PS button and seems like it is pairing but nothing works onscreen. I tried deleting the es_input.cfg to see if it would see my controller and verify it was working and it said “No Joystick Detected” and didn’t respond to any buttons. I then did an “ls /dev/input/” to see if it found the device but no js0 or js1. At this point I am stumped.

    Something I noticed that I thought strange was that I loaded up Mario in the NES emulator and didn’t push anything. I then turned on the controller and it rumbled like it was pairing then I saw a message that’s font was too big to fully but it said “PS3 controller (part of the MAC address)”. It kind of makes me think that the bluetooth part is working but not the joystick binding. I don’t know because it works just find when plugged in but when unplugged I get a big nothing.

    • Ah That is good news. That sounds like your PS3 controller is pairing then.

      Try running:
      cat /proc/bus/input/devices

      You should see your ps3 controller. It is important to note that you will have to press the PS button after each reboot to sync it as well.

      If you can see your PS3 controller after running the above command, you should just need to follow the other tutorials under bluetooth setup.

      Setup controller for Emulators & Retroarch.

      You said you deleted es_input and restarted…Did you push the PS button after reboot to re-sync it? It should have been detected…. Try going through the above setup sections again and let me know how that works out for ya.

  • Magnus

    If you could, would you mind explaining the steps to adding an emulator more in detail? specificly the commands

    Example from your Snes9x guide (and my assumptions):
    cd Emulators (changing directory to Emulators)

    git clone (git runs/calls git wich is some form of service/programe, clone points it at the url (where the emulator code/files are))

    cd snes9x/libretro (changing directory again, this time at the cloned url ?)

    make -f Makefile platform=armv6e (make compiles (or rather it runs make found in the previous stated directory?) what does the -f option do? and Makefile platform=armv6e is the pi? Or maybe it is for retroarch?)

    ( is created)

    mv ~/Emulators/Retroarch/cores (moves to target dir)

    How correct are my assumptions? I’m mainly confused about if I should always be using “git clone” to access a github and how to correctly compile emulators to run on this build of the pi, the importance the “platform command” is as I’ve seen other examples not specifying this. Is it only for use with retroarch?

    I fully understand how to add a emulator into the emulationstation frontend so no need to further explain that.

    • Right…well… where to start?

      A lot of the questions you have are very general, and I am no linux “expert” – but I will do my best to address them.

      CD Emulators = ( from the home directory, moves to the Emulators folder )

      Git clone = Clones the target github url directory.

      Here is a more detailed over view of git clone:

      Make: the make command was constructed the way it was because I derived the instructions from vanfanels guide as stated above. The guide specified the above format. This is also the same method that TakenOver used to compile his Emulators ( and I believe it to be the ‘proper’ way ) Although as you said, you could probably get away with just running ‘make’.

      Here is the man page for make which explains the -f command:

      mv = move. So yes you are moving the created .so file to the correct directory


      As far as elaborating on this portion of the guide… what exactly do you feel needs to be elaborated on? The guide is already HUGE, I don’t want to wander down the path of detailing linux commands and what they do. There is already a ton of resources available to answer those questions better than I could do in a single post.

      In any case, hope that helps.


      • Magnus

        Yes I realise that the answers I’m looking for is probably best asked/found elsewhere, and you are right, this guide is probably big enough as it is.

        Again, thanks for your help and the guide.

  • Óscar Liñán

    Hi another time Ryan!

    I have problems to configure the ps3 controller via bluetooth. When I have to compile the file sixpair.c with gcc I’m not in the correct directory, what is the directory that’s saved sixpair.c?

    I still have problems with Quake 3. First, I save the extracted folder in /home/pi/Q3A/baseq3 and the game don’t run, after, I save the inside files of the extracted folder in /home/pi/Q3A/baseq3 and the game don’t run… specifically, what files or folders I must to save in /home/pi/Q3A/baseq3?

    Via Samba I save roms of N64, SNES and GEN on /home/pi/roms/(emulator), I load the roms with ES_Scraper and then I reboot the Pi. The emulators and the roms appears on the initial page as expected. SNES and GEN games run very well, with sound exception sometimes, but N64 games have many problems with sound and image, what can I do to make mupen64plus function properly?

    Thanks for all!

    • Six pair should be run from whichever directory you ran the wget command.

      Unzipping the contents of the folder in the listed path for quake is all u should need to do. I’m not sure why you are encountering issues here….

      Ps1 and n64 emulation performance have been addressed in the video and audio performance sections under the “Troubleshooting” heading of the guide.

      • To clarify what needs to be done with Q3A, I’ve uploaded a screenshot. I also just double checked the documentation on a brand new image of UltraSlim v1.6.

  • laurids

    hey there!

    first of all i wanna thank you for this great guide!
    everything went fine but theres just a little problem with login in via ssh. if i try to enable ssh in the raspi_config theres a error (“error a4 ssh”). if i open up the ssh directory theres nothing in it. what could be the reason for this? can’t find an answer anywhere 🙁 should i install a fresh version?

    thanks for the help!

    • Interesting… are using putty to login via ssh?

      It should just work out of the box, shouldn’t need to make any changes.

      If u want to try a fresh install on a spare card to verify, that is where I would start.

      • laurids

        and i forgot: i wanna use cyberduck for this because im using a mac. had single rasbian running before ultra slim and there was no problem connecting to my pi via ssh. but if the ssh directory is empty its kind of natural that it won’t work, right?

  • laurids

    ok i installed everything new. first boot rasp config comes up and i try to enable ssh but same problem again. i update under the “advanced” section and again “there was an error running option a7 Update” instead of “option a4” in the ssh section. maybe because my wifi doodle isn´t set up yet. but there should be a possibility to enable ssh anyway, right? wifi was no problem before i installed the fresh os.

    could you copy the content of your ssh directory? maybe i can set it manually.

    best regards!

    • Ah.. 2 things:

      1.) Are you sure you have an active network connection ( just ask cause you mentioned wi-fi )

      2.) Try using putty if you haven’t already. ( for the time being ) I know others have mentioned problems using ftp ( aka cyberduk) . It’s an issue that is on my to do list, but I simply have not gotten around to resolving it yet.

      I also get the same error when attempting to enable ssh in sudo raspi-config for what it’s worth. This may be an issue you might want to mention in detail to TakenOver83 in the UltraSlim Forum post so that he can address it the next image.


      • laurids

        connecting with putty=no problem. thanks for the advice!

        • Glad to hear it. I’m working on the FTP issue now…will update the guide with a new section when resolved.

          • Ok… Figured it out 😀

            Give me a few minutes and You should see a new section for connecting via FTP / SSH under the “General” heading.

  • laurids

    i try to get access connecting the pi directly to the router and with putty on my windows partition. thanks for the help, if i get through it i let you know.

    • New Section has been added 😀 I also was trying a few other things while troubleshooting SSH, Please let me know if that works for you or not.

      • laurids

        Works like a charm! i can now edit the directory with my mac machine. but i still can’t access the pi´s console to make changes. i used remote desktop control (windows application for mac) and that worked fine but with ultra slim i cants access. but i can do that when i connect my pi to my display. glad that i can put my old windows machine back away 😉 thanks you!

        is there any progress getting airplay to xbmc? do you think it is possible to add more os to the emulation station, like shairport for just streaming audio? maybe a little like these guys ( but they are working with noobs. would be nice to use the pi as a airplay speaker when its not connected to the display.

        any idea? i´m stupid, sorry 😉

        • Hmm.. Well I use Putty to connect to the Pi’s Terminal to throw commands at it. Not sure what the Mac alternative would be…

          You should be able to follow the “Update to Gotham Nightly build” section to get airplay support. But I recommend making a backup first.

          Here is a Forum Thread for the latest changes to XBMC in their nightly builds…

          As far as streaming audio… Well you have a few options:
          1.) pandora/grooveshark/spotify plug-in under XBMC
          2.) Pianobar

          P.S. – I’m not entirely sure from the thread you linked what software you are talking about regarding a headless streaming Pi…?

          • laurids

            the link was just to demonstrate how it could be possible to add more os to the emulation station. thanks kind of what im thinking about. adding a headless streaming os (what ever this could be) to the emulation station and then add this os to boot first so that i can stream music to the pi without having a display attached.

            does that even sound possible?

            • Possible? Sure, probably.

              The way I would try to impliment it would be to get the latest XBMC nightly working with airplay and then boot straight into XBMC on startup. I think that would be the easiest way to go about what you are trying to accomplish.

              That said. Some of that is outside the realm of this guide… However If/When you are able to figure it out – I would be happy to add your documentation to the guide here. I would check the UltraSlim forum thread first, as I believe others have answered how to boot straight into something other than emulationstation before.

              Best of Luck.

              **If you wish to continue troubleshooting with me, in order to avoid a never ending thread in the comments section – Please registar on the EDT Forums and start a thread Here:

  • laurids

    sure, thanks again!

  • i keep getting “sixad started press ps button now” I press it and nothing happens it just sits there, the lights go off on my controller and i have to ctrl c to get out of it.. any advice?

    • What step are u on from the guide?

      If you aren’t too far in, or If u have a spare sd card… I would re image. Simply because it’s easy to botch an image if u are troubleshooting.

      Did u get any make errors with sixad? Did u follow that section that addresses that issue?

      • Stewart,

        I just ran the PS3 BlueTooth controller setup from a fresh image of UltraSlim. I can verify that the process works 100% on the latest version of UltraSlim ( v1.6)

        As stated earlier, I would start over and make sure not to gloss over any details in the guide. If all else fails, Re-image and try again.

        **For anyone else having trouble with ps3 bluetooth controller setup, I’ve reformatted it slightly in a effort to make the process easier to follow.


        • Tried it again on fresh install but same issue.. What Bluetooth dongle are you using?

          • I’m using a Asus Mini Bluetooth Dongle (USB-BT211).

            Is your model listed as an approved bluetooth device?? When you run the hiconfig command – Does it show it is running in an “UP” state?

  • turns out it was the dongle.. got a new one and it works! Anyway to get rid of the its awesome the first 5 times you see it when it boots?

    • Glad that worked for you 😀

      Hmm Not sure what you are asking with the second question… can you re-phrase that one?

  • Piet Jansen

    I’ve not yet a controller, or is there an android emulator controller that will work?
    How can I get beyond the screen where it says “no joysticks detected”, “press f4 to quit” without an usb keyboard.

    I only want to use XBMC till I got a joystick

    • You will want to have a USB keyboard, Trust me 😀

  • Thank you for the guide! It helped me get my pi running with this image in an afternoon. One note, the most recent kernel has changed the way we need to load xboxdrv..


    the line to add to rc.local is…
    xboxdrv –trigger-as-button –wid 0 –led 2 –detach-kernel-driver –deadzone 4000 –silent & sleep 1

    –wid 0 for wireless, –id 0 for wired controller

    for 2 to 4 controllers add another line per controller changing wid/id to 1, 2, 3 respectively and led to 3, 4, 5 respectively.

    • Note: your commenting system has changed the required – – to a single – in the code above.

  • how do we add cheats to the different emulators?

    • No idea Stew… But I would start by searching the forums.

      And remember, cheaters never win. 😀

  • christofarian

    any reason why i cant get my xbox 360 joystick to work with n64 roms….it works with jsut about all the the others

    • Each emulator can use its own retroarch config file. es_systems.cfg defines the path for each emulators config file and if it cannot find it – It defaults to the global config file.

      My advice would be to try deleting the config file for your n64 emulator if you have one. ( maybe populated after a upgrade?? not sure… ) Otherwise I would try updating the N64 Emulator.

      Lastly… You could simply copy the global retroarch.cfg file into your N64 path. (Again, this is specified in es_systems.cfg)

      Please let me know if that works for ya!

      • christofarian

        i will try asap thank you . .. . also ive noticed some lag with the n64 emulator . . im overclocking to 900 mhz and have a 256 graphics split already

        • Lag is kind of expected with most 64 / ps1 titles. See the Troubleshooting section for more information.

          • christofarian

            is installing the apt-get install xboxdrv nessecary or just the coding in rc.local

        • christofarian

          so i tired to update the N64 emulator and just the N64 emulator and now when i try and launch a rom it says that the n64 emulator is not found and goes right back to the menu screen of emulation station. any suggestions. I guess updating it sent the files to a different file location

  • Hey great guide, much appreciated.
    did you know this: or am I doing something wrong?

    sudo apt-get install bluez-utils bluez-compat bluez-hcidump libusb-dev libbluetooth-dev joystick checkinstall -y

    result =
    Err wheezy/main smbclient armhf 2:3.6.6-6+deb7u2
    404 Not Found
    Err wheezy/main libsnmp-base all 5.4.3~dfsg-2.7
    404 Not Found
    Err wheezy/main libsnmp15 armhf 5.4.3~dfsg-2.7
    404 Not Found
    Failed to fetch 404 Not Found
    Failed to fetch 404 Not Found
    Failed to fetch 404 Not Found
    E: Unable to fetch some archives, maybe run apt-get update or try with –fix-missing?

    (have tried –fix-missing, no dice)

    FYI im working through winscp to do this bit…not sure if that matters (prob not as its a 404 error)
    Also when checking that website, i dont see a wheezy folder.

    Any ideas?

  • also fyi, i literally copied your text and pasted in to WinScp terminal…not sure if something is a miss, but then again that directory doesnt show in a web browser either…thank you

  • and that is now sorted out, needed to update the apt.

    however the knock off controllers wont sync. they just keep flashing…they work on a ps3 and are recognized in lsusb, BT adapter is the caimbridge silicon

    any suggestions?

    followed your guide to a T without error.

    cant find how to install ps3 controller via retro-config though. looking for that menu in retro-config

    • The section was for authentic ps3 controllers…. There are several knockoff brands and each may have their own nuances with setup. If your bt device is on the approved list and it’s still not working… well my advice would be to buy the authentic controller and be done with it! Best of luck.

  • Understood, I didn’t realize there was an issue with knock off.
    I will have to try a legit controller then.

    Any rough idea on some nuances?

    I have tested hciscan, and can see my bluetooth keyboard. but the ps3 is not showing up on the list when i set it to listen mode.

    • Using the Caimbridge USB mini. Fully supported by PI.

  • Hi guys,
    I’m not very good at using Linux, so I ask help here to understand what I do wrong in using this fantastic OS (I’m note very at English, too…try to excuse me).
    I’ve installed the UltraSlimv1.6 on an 8 gb SD card and after I had it parted (divided) into 2 partitions of 60 mb and 1,3 gb, with very little free space left (the other of the 8 gb were not allocated). I put this card into the RaspPi and the boot and the config went fine, but where do I put the Roms if there’s no free space in the SD card? And in which folder exactly I’d have to place metal slug roms to play with them? Please, try to drive step by step because I can lost myself even in my bedroom! 😉 Thank you for your great work!

    P.S.: I use Ubuntu 12.04, but I’m not very good with the terminal…I only try to improve myself!


  • I solved my problems because I didn’t see something you’ve just written. But I have problem on running metal slug..Mame doesn’t load it…

    • I would try a few different Roms to make sure that the Rom isn’t at fault. Also you will want to make sure the file extension for the mame ends in either ” .zip or .Zip “

  • I downloaded from different sites but it’s always the same rom in .zip. Name is (12,8 on the site – 13,2 mb on my pc), and it doesn’t work. I’ll keep trying. 😉

    • I was going to try the new XBMC Gotham image this weekend anyways – I’ll take a moment to look at the MAME stuff as well.

      If I can peel myself away from Dark Souls2 that is… 😀

  • heads up cambridge bluetooth CSR dongle is a no go for RPI…its the generic chinese one. no good

    I am paired and working, in most cases.

    Snes and NES are truly fucked. all buttons are switched around, i dont have any CFG files in the respective cfg folders. not sure whats up.

    • all emulators use the global cfg file by default. ( \\ULTRASLIM\Home\Emulators\Retroarch\retroarch.cfg )

      If you wish to have custom button mapping for certian emulators…simply copy retroarch.cfg to the emulators config location.

      example: \\ULTRASLIM\Home\Emulators\Retroarch\configs\nes\retroarch.cfg

    • So on multiple SNES roms the righ dpad is stuck down, character constantly moves right.

      NES and PSX the buttons are all switched around relative to how emulationstation and JSTEST perform. Also contrasting to how retroarch.cfg is setup.

      i am finally at a stand still.

      any suggestions all?

      (new ps3 official ds3 and new dongle, IOGear GBU521 – Bluetooth 4.0 Micro adaptor (lots of good reviews for RPI and dualshock 3)

      can remap and figure out the mixed buttons but i cant get passed the stuck dpad button issue. so strange, only present on retroarch roms

      • I had a similar issue awhile back, for me it ended up being a corrupt config file after using notepad++ to make some changes for controller configs. I would make a backup of your image and see if you can replicate it on a new image – It’s easy to mess something up when you are troubleshooting weird issues and sometimes the easiest thing to do might simply be to start with a fresh image.

  • Beegood

    Can you manage main menu with controller ?

    • Yes. There is a section for it in the guide.

  • Brennan Manion

    Hello i love this idea and i want to do it but i am having problems i cant seem to get any emulators to show up how do i do it i have roms for it…..please help……

    • you just add the roms to the proper emulator folder and then the emulators will appear in the main menu.

  • Sam Craig

    for the life of me I cant get the controller to exit to menu. All my 360 controllers work button wise but no matter what button I add to the cfg file to exit emulation it never happens, I always have to grab a keyboard and hit esc

    • I wish I could point you in the right direction…however the 360 controller documentation was user created – I don’t have any 360 controllers to test with.

      I’d go through the guide once more and start from scratch if possible. If it’s still not working – I would start pouring through the Raspberry Pi Forums.

      ~Best of Luck

  • Jason

    I can’t get neogeo games to work on PiFBA… do you have any suggestions?

  • expandables

    Hi i cant get wifi to work for nothing

    • Ok… I’m going to need some details if you want help.

      1.) what model wifi card do you have? ( is it on the approved hardware list?)
      2.) Can you paste your network interfaces config so I can take a look?

  • Raül HardRock

    Hi, I have some troubles with the keyboard configuration and mame. I know all the emulators get the config from retroarch.cfg but if I try to run some game I can’t play with my keyboard. Why? What I should do?

    • Raül HardRock

      … There are more troubles. Under 1.6 version, I follow the tutorial (thanks!!!) but Doom2 only run until his menu. When you want to play, stay in the game menu all the time. Directly Doom3 doesn’t work. It try from emulationstation, I can see some console commands but returns to the Doom menu. Any idea?

      …XBMC after updating to Gotham version do the same

  • expandables

    How to get gba emulator working on the ultraslim can you give a guide please?

    • There is already a section for this.

      See Game Boy + Game Boy Color > Gambette-Libretro

  • Nigel Taylor

    Followed instructions to update xbmc to gotham, but now when I select xbmc from the Applications menu, a screen of info appears and disappears that I dont get chance to see, and then I’m returned back to the menu.

    Any ideas?

    • Nigel Taylor

      Found an error about a missing referenced lib, bit of digging and it seems after doing
      sudo apt-get install libxslt1.1
      then I can now get xbmc to start.

      (Got probs with horrible constant noise now, but I’ll look into that later)

      • Nigel Taylor

        sudo rpi-update
        Fixed the noise.

        • interesting… well thanks for posting the resolution for others.

          Glad you got it working Nigel!

  • expandables

    Hi how to get composite display working?

  • expandables

    I appreciate your guide a lot but can you update the emulators guide because i try to install the gbc emulator and it didn’t work. Please can you put a game boy advance full guide as u did with gameboy and gameboy color

    • There are so many emulators out there…it would be tough to cover them all.

      Instead that section was meant to be more of an outline to the process. It shouldn’t change much from emulator to emulator. I’ll try to find some time to update the guide though in the future….but to be honest I have a lot of different projects going on currently and I’m not sure when I’ll get to it…

      There is a ton of great information on the Raspberry Pi Forums should you run into any road blocks.

    • Are you using – TGBDual-Libretro ?

  • expandables

    When i try to do the TGBDual-Libretro gameboy guide it didn’t work.
    When i try to cd tgbdual-libretro/tgbdual There was no such folder or file as tgbdual.
    But all i am saying is can you put a guide for gameboy advance because most people want that emulator

  • ksh5022

    So I seem to be running into what may be the simplest of problems, my keyboard is not responding trying to press [Enter] to initiate setup. It is a Logitech MK520, an approved device, so I can’t figure out what the issue is. Anybody have a recommendation that does not require use of another keyboard?

    • Demon

      Have the same issue with three different keyboards.

      • wired keyboards? Wireless keyboards would most likely require a driver install for the receiver…

        I haven’t encountered any issues with keyboards myself…I would try reaching out to the raspberry pi forums community to troubleshoot.

        • Demon

          I tried with a wireless at first but it wouldn’t work so I tried two wired keyboards that still didn’t work. They all thre work fine when I boot using NOOBS and the wireless I am using as we speak to configure EmulationStation. Not really sure what the problem is in UltraSlim.

          • That is odd… Can you replicate the issue on a fresh Raspbian image? ( base for ultraslim)

            • Ludo

              I have the exact same issue with a G15 Keyboard.
              No problem with Raspbian.

              Is there any keyboard driver removed?


              • None that I’m aware of… Doesn’t seem like something TakenOver83 would remove…

          • brody

            same issue here, works fine with noobs. but does not work with UltraSlim

  • expandables

    Anyway to put Wpagui in the application settings on screen?

    • Good idea…I would suggest it to TakenOver83. Perhaps he will add it to the next version…

  • expandables

    This is how i got Game boy advance to work on the menu screen. Use putty cd into Emulators and make a directory for the Emulator and cd into it by doing this mkdir gpsp cd gpsp Now download gpsp by this command wget Now Make it “runnable” by doing this chmod +x gpsp Next step Create folder: /Roms/gpsp Create folder: /.emulationstation/gpsp Next step Edit ~/.emulationstation/es_systems.cfg
    Add this Line:




    EXTENSION=.gba .GBA .zip .ZIP

    COMMAND=~/.emulationstation/ 2 ” ~/Emulators/gpsp/gpsp %ROM%”


    Now put the gba bios file where gpsp emulator is. Then put your roms in The gpsp rom folder. Now you should have gba on the menu 🙂

  • brody

    So when I first flashed and booted everything worked great. Unfortunately the Pi wasn’t recognizing my keyboard so I had no choice but to pull the plug and shut down. I now am not able to boot. The green light flashes and then goes red. I have formatted, and reflashed the image but it does the same thing. I flashed to another micro SD and the same the same thing happens. The noobs card that came with the pi works fine. any suggestions?

    • Interesting… I can’t for the life of me think of why users are all of a sudden having problems with keyboards being detected of all things.

      Have you tried leaving the pi unplugged for a minute and then re-seating the SD card and booting?

      It’s odd that after all your flashing / re-imaging you are still having problems…. are you using windisk32imager to image your SD card?

      • Brody

        Yes I was/am using windisk32imager. I finally got the SD card to work again after putting it in a camera taking a few pictures and reformatting (??? worked somehow or coincidence). However, keyboard still was not working so went to BestBuy bought the cheapest usb keyboard they had there (insignia something) which again works on noobs but not UltraSlim. I desperatly want this image to work its the one i’ve been excited about since ordering my pi.

        It doesn’t seem the keybarods are even getting powered on UltraSlim (can’t get the caps lock lights etc to turn on.)

        • brody

          couldn’t figure out how to edit soo…
          is there anywhere I could find the 1.5 image to test?

        • It’s starting to sound like a power issue then – which would explain the keyboard not working and the Pi not being able to boot.

          What do you all have plugged into the pi? ( any external hd’s, flash drives, etc ) I would start by removing everything but the essentials and see if your keyboard works then.

          Have you tested a different power supply?

          • brody

            Only A keyboard … Would ultraslim take more power than my retropie with keyboard,edimax wifi, and two retrolink controllers? Cause that has been working flawlessly. It boots fine now just no keyboard

            • brody

              As in I only had a keyboard in . And doesn’t matter the powersupply (tried 4 )

              • Well then… I really don’t know. I would take a look in the Raspberry Pi Forums to see if anyone else is having that issue.

    • Ah…interesting. It’s starting to sound like a power issue then – which would explain the keyboard not working and the Pi not being able to boot.

      What do you all have plugged into the pi? ( any external hd’s, flash drives, etc ) I would start by removing everything but the essentials and see if your keyboard works then.

      Have you tested a different power supply?

  • Ryan

    I flashed the microsd card and went to start up my pi but only the red light comes on and nothing happens. I tried NOOBS after on the same card and it worked fine. Am i doing something wrong?

    • aivie

      i did same thing you did.

      • Do you have a model B+?

        • aivie

          none 🙁 i got it working just now…but how do i get to show the multimedia center, and add more games?

          • aivie

            im new to this device though, its my first time to use raspberry, i need help to make use of emulator and media center, its a school project, thanks.

          • Lost

            Hey, how did you get this working? Mine is stuck on the red light. I have the model B+. Can anyone help?

            • Alex Ellsworth

              This is probably just an issue with the video being output over Composite rather than HDMI as you expect. Check out config.txt on the sd card after you have flashed the image to it. you should remove the “#” from the line that says #hdmi_force_hotplug=1 this will force your output to HDMI.

              Good luck.

        • aivie

          how am i gonna add games ? need your help as i am so new to this, i got ultraslim work in one of my monitor, but using other monitor isnt possible. How to add videos and music using XBMC? thank you 🙂

        • momovanli


  • _PArker

    It seems like it doesn’t support the B+ model D:

    • Yea i don’t think takenover83 has done a new image since the B+ launched.

  • super


  • expandables

    Has anyone did an rpi-update, which updates the firmware so that it can be use on the b+?

  • aivie

    is ultraslim only applicable for pi b+?
    i tried it on my sd card with my pi b and its not working :(, need help please.

    • Model B is recommended, but it should work on the model A as well. B+ is currently not supported to my knowledge.

  • expandables

    Has anyone tried a rpi-update to work with pi b+?

  • expandables

    I know that the intro.mp4 bootvideo is in home/pi/media what if i want to make another video section name media2 and place the intro.p4 in that directory. How can i make the intro.mp4 work to be loaded when it boots up when the intro.mp4 is in a different media directory name media2?

  • aivie

    is Ultraslim requires specific monitor? it doesnt work with other monitor though

  • expandables

    Ryan do you have a model b+ and if so did u get ultraslim to work with rpi-update?

  • expandables

    Hi Ryan how to set up a controller with emulation station interface. I know that you can do it at first start but how do I set it up again?

    • That should be in the guide – If it’s not I know for sure you can find it in the ultraslim forum thread 🙂

  • Pi-Noob

    How do I use 2 xbox controllers?

  • expandables

    HEY just askin will a snes usb controller work with xbmc using xboxdrv?

  • expandables

    Hi Ryan I update to kodi nightly builds and when i exit out of kodi i get a black screen please can u respond and help?

    • expandables

      Ryan where are you?

      • I’ve since moved on to a great deal of other projects, your best bet for future support (outside the scope of this guide) is still the forums.

  • David

    Under controllers and remotes can you add an snes usb controller to the list, to work on both games and emulation station. I want it to where i don’t need a mouse or keyboard after i configure everything.

  • Alex Ellsworth

    I’ll add to the swath of people who are having Keyboard/Mouse/Ethernet issues with the UltraSlim boot.

    I’ve for now just used a RetroPie image. Wish I could have this one though.

  • marty

    If you have a b+ there are some updated images on pages 17 and 18 of the forum linked above.

  • LvZ

    Niiiice. I was looking for something like this. Do you know if this is compatible with the new Raspberry Pi 2 B?
    Or how to make it work with it. Tank you in advance.

    • I’m not sure exactly…I didn’t notice an update for it on the Authors thread. Perhaps it’s something that he will re-visit when he gets the time. In the mean time, I think there may be other ways of porting images over to work with the newer models….If you are ambitious – You can start looking for ways to do that!

Pin It on Pinterest