Running advmame roms from USB drive
-
Hi,
Pi Model: 2
RetroPie Version Used: 3.8.1
Built From: SD Image
USB Devices connected: 16GB USB Drive
Controller used: Keyboard
Emulator: AdvMameFor some reason, I cannot get my AdvMame roms to run from an external USB drive. I've updated the path to the roms in the es_systems.cfg file and on restart, the roms are visible. I can click them and run them once there is a copy of them in the original /home/pi/RetroPie/roms folder. But if I remove the copy in that folder and restart, although the roms still appear in the list, they no longer run. The errors that appear in the log file is that the rom files cannot be found (as if they are missing from the archive) but copying any individual rom back to the /home/pi/RetroPie/roms folder gets it loading again just fine. Any ideas or help appreciated - I've been building an arcade cabinet with the kids and would love to get this part sorted.
Update:- My brother has also tried this with his Pi 2 and has the same problem. Is there somewhere else that I need to update the roms path to get this to work? When testing, you need to be careful that RetroPie isn't copying the roms back from the USB drive - as this will cause them to work - but will fill up your SDCard pretty quickly - if you have lots of roms and only an 8GB SDCard
Gabhan
-
-
Thanks for the suggestion. I followed this tutorial to the letter but it doesn't work - at least with a Pi 2 and the latest RetroPie (I can repeat the problem on at least 3 Pi 2s with different USB drives and the latest RetroPie image). The tutorial copies the games to the USB drive, and that part does work. What doesn't work is that the games will not load when removed from the sdcard. So the list of games will be retrieved from the usb drive, but something in the code is still trying to actually load the rom from the /home/pi/RetroPie/roms folder.
-
Yes. You should mount the USB drive over /home/pi/RetroPie/roms or symlink it - you should not change /etc/emulationstation/es_systems.cfg (the tutorial is wrong)
-
Perfect - will give that a try and report back for anyone trying this in future. Many thanks.
-
@BuZz said in Running advmame roms from USB drive:
Yes. You should mount the USB drive over /home/pi/RetroPie/roms or symlink it - you should not change /etc/emulationstation/es_systems.cfg (the tutorial is wrong)
Ouch, good to know.
-
Reporting back - moving the entire roms folder to the USB drive and mounting the drive as /home/pi/RetroPie/roms works perfectly. I've added this to fstab and all seems to be working well. Many thanks for the help - my arcade buttons and joystick arrived today so now really looking forward to hooking everything up!
-
@GabhanEIS said in Running advmame roms from USB drive:
Reporting back - moving the entire roms folder to the USB drive and mounting the drive as /home/pi/RetroPie/roms works perfectly. I've added this to fstab and all seems to be working well. Many thanks for the help - my arcade buttons and joystick arrived today so now really looking forward to hooking everything up!
How did you mount the drive?
-
Not a linux expert by any means, but this is what I did:
-
Fresh install of RetroPie from the sdcard image
-
Run through the initial setup on the Pi - expanding the file system - until EmulationStation boots up
-
F4 to go to terminal - sudo su - to ensure permissions
-
cp -ar /home/pi/RetroPie/roms/ /media/usb0/
-
rm -rf /home/pi/RetroPie/roms
-
mkdir /home/pi/RetroPie/roms
-
mount /dev/sda1 /home/pi/RetroPie/roms
-
Copy some roms using samba from a PC/Mac machine to the correct roms folder
-
Restart EmulationStation and test roms work correctly - in my case they worked perfectly. This will work as long as /dev/sda1 is mounted at /home/pi/RetroPie/roms. However, this mount will not be there on reboot. To ensure it's automatically mounted, you can modify the fstab file as follows:
-
nano /etc/fstab
-
Add a line to the end of the file as follows
-
/dev/sda1 /home/pi/RetroPie/roms vfat defaults 0 0
I just researched this on part on Google, so you need to make sure your usb drive is /dev/sda1 using the command df -h. Find your USB drive in the list and substitute as appropriate. There are lots of good Linux tutorials on this on the web. Hope this helps out other Linux newbies like myself. It's only an sdcard image anyway, so if it goes wrong and it won't reboot, you can just reload the sdcard from your PC.
-
-
Awesome, thank you. :)
-
i added the guide to the wiki: https://github.com/RetroPie/RetroPie-Setup/wiki/Running-ROMs-from-a-USB-drive
it's slightly from memory and googling what i think i did before, so i hope there's no mistakes! please let me know/edit if so :)
-
@dankcushions said in Running advmame roms from USB drive:
i added the guide to the wiki: https://github.com/RetroPie/RetroPie-Setup/wiki/Running-ROMs-from-a-USB-drive
it's slightly from memory and googling what i think i did before, so i hope there's no mistakes! please let me know/edit if so :)
Right on!
-
@dankcushions awesome thanks for doing that. I'm sure we'll automate it with a module sometime but the guide is great
-
@dankcushions Thanks so much! After following your guide to the letter, it works, with a few caveats.
- the copy command yields a few errors that it cannot copy symlinks
- getting a weird "operation not permitted" even though ls -al shows full permissions for everyone. I am getting that when EmulationStation runs an sh command, and in retropie_setup.sh when updating certain emulators.
- When attempting to play certain games/emulators (example, pc port, opentyrian) I get an "operation not permitted" error and I cannot play the game.
I didn't know how to fix it when it says it can't do something and I see the file permissions says it can ;_;
Perhaps all three are linked to the same issue? My fix for now would be to wipe my sd card, put on raspbian, setup the usb stick in fstab, and THEN start the installation?
-
@orgon3 said in Running advmame roms from USB drive:
@dankcushions Thanks so much! After following your guide to the letter, it works, with a few caveats.
- the copy command yields a few errors that it cannot copy symlinks
- getting a weird "operation not permitted" even though ls -al shows full permissions for everyone. I am getting that when EmulationStation runs an sh command, and in retropie_setup.sh when updating certain emulators.
- When attempting to play certain games/emulators (example, pc port, opentyrian) I get an "operation not permitted" error and I cannot play the game.
I didn't know how to fix it when it says it can't do something and I see the file permissions says it can ;_;
Perhaps all three are linked to the same issue? My fix for now would be to wipe my sd card, put on raspbian, setup the usb stick in fstab, and THEN start the installation?
hmm, i think maybe a mv would be better than a copy?
sudo mv /home/pi/RetroPie/* /media/usb0/
- it's less steps, certainly! guide updated...i'm not sure about the permissions thing, and i don't use any of the PC emulators/ports, so not sure about that :( possibly it has to do with relative symlinks - if any exist in retropie they need to be converted to hardlinks before they're moved. this is a bit beyond my linux level, so i'm just guessing here :(
-
@dankcushions said in Running advmame roms from USB drive:
@orgon3 said in Running advmame roms from USB drive:
@dankcushions Thanks so much! After following your guide to the letter, it works, with a few caveats.
- the copy command yields a few errors that it cannot copy symlinks
- getting a weird "operation not permitted" even though ls -al shows full permissions for everyone. I am getting that when EmulationStation runs an sh command, and in retropie_setup.sh when updating certain emulators.
- When attempting to play certain games/emulators (example, pc port, opentyrian) I get an "operation not permitted" error and I cannot play the game.
I didn't know how to fix it when it says it can't do something and I see the file permissions says it can ;_;
Perhaps all three are linked to the same issue? My fix for now would be to wipe my sd card, put on raspbian, setup the usb stick in fstab, and THEN start the installation?
hmm, i think maybe a mv would be better than a copy?
sudo mv /home/pi/RetroPie/* /media/usb0/
- it's less steps, certainly! guide updated...i'm not sure about the permissions thing, and i don't use any of the PC emulators/ports, so not sure about that :( possibly it has to do with relative symlinks - if any exist in retropie they need to be converted to hardlinks before they're moved. this is a bit beyond my linux level, so i'm just guessing here :(
Well, the problem also occurs when attempting to upgrade. For me, a useful feature. In the end, I'll resort to having a few systems stored on my sd card and a few on my usb stick. I'll probably end just editing the cfg file for now and changing the specific system's path. Even installing just the core creates a symlink for genesis.
Thanks for your help though! I'm sure some linux guy will reply.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.