RetroPie – Running ROMs from a Network Share

RetroPie – Running ROMs from a Network Share

Good to know: If you are accessing your RetroPie installation over SSH the default Raspbian username is pi and the default password is raspberry.

Copy the existing ‘roms’ folder structure to your server

For EmulationStation to be able to see your rom files the paths given to it within /etc/es_systems.cfg need to be recreated on your networked server. Connect to your RetroPie and browse to its roms folder for reference on how each system folder is named. Either copy these folders to your networked server or manually create the folders on your networked server using the same directory names.

If you prefer to not use the EmulationStation system directory names and keep the current folder structure you have on your networked server you’ll need to edit es_systems.cfg. Use this command to copy the configuration file to the home directory wherein it will be editable through SMB (//RETROPIE/configs/all/emulationstation) or FTP.

Code
cp-etcemulationstationes_systems-cfg-homepi-emulationstationes_systems-cfg

Mount your Share

If you haven’t already, now is a good time to tell Raspbian to wait for your network at boot.

Code
sudo-raspi-config

In there, select “Boot Options” and tell it Yes.

Option 1: Add to autostart.sh (Preferred if using v4.0+)

sudo nano /opt/retropie/configs/all/autostart.sh

Add the following line to the top of that file, being sure to adjust it for your personal settings, paths and options. This will make the local roms folder use your remote server roms folder instead.

Code
sudo-mount-t-cifs-o-usernamesomethingpasswordsomething-remotehostpathtoroms-homepiretropieroms

Good to know: If you’d like to host the entire RetroPie folder remotely you can do so by removing the /roms directories from the mount command above. Make sure to have a copy of the RetroPie installation on your remote server or EmulationStation won’t be able to start RetroPie!

Restart your Raspberry Pi with sudo reboot or by simply unplugging the power cord.

Alternatively, if you have a shared folder that allows guest access, you can use the following line in your autostart.sh:

Code
sudo-mount-t-cifs-o-guestuidpi-hostnameretropie-homepiretropie

This should also allow you to write save files to your NAS.

Option 2: Add to fstab

Using your favorite editor, open up fstab:

sudo nano /etc/fstab

Add the line to mount your network share. Mine looks like this:

Code
192-168-1-10storageroms-homepiretropie-cifs-usernameusernamepasswordpasswordnounixnoserverinodefaultsusersauto-0-0

First, make sure it will mount:

Code
sudo-mount-a

Restart and check the folder to make sure it didn’t have any issues mounting at boot

Code
sudo-reboot
Code
sudo-ls-retropieromssnes

With any luck (and if you have a ton of SNES ROMs like myself), it will be fairly apparent that it was able to mount the share at boot.

Saving Games

Go ahead and make sure everything works. Don’t get to far into a game though, you might not be able to save. If you hit ‘Select + R’ (default save command) and it gives you an error, the easiest solution I’ve found is as follows.

We need to edit retroarch.cfg by deleting the # infront of the savestate_directory and savefile_directory lines and put in the desired path. I’ll be using ~/RetroPie-Save. First, make the target folder:

cd
mkdir RetroPie-Save
sudo nano /opt/retropie/configs/all/retroarch.cfg 

Mine looks like this:

savestate_directory = /home/pi/RetroPie-Save
savefile_directory = /home/pi/RetroPie-Save

If you already have some save files, it would be a good idea to move them to the ~/RetroPie-Save folder we created.

For more information please visit: https://github.com/RetroPie/RetroPie-Setup/wiki/Running-ROMs-from-a-Network-Share

1 Comment

  1. Joshua

    Thank you for these instructions.

    I found that when mounting a windows share from the “autostart.sh” file, it’s helpful to add: “dir_mode=0777,file_mode=0777” after the username and password in autostart.sh. This allows you to read and write files to the mounted windows shares without requiring sudo. It also allows save-files to function on the share, etc.

    Thanks again — very helpful info.

Leave a Reply

Your email address will not be published. Required fields are marked *