I did find that I can launch mame4all from the desktop and see the roms, but not when I run mame4all from the startup. Do I need to do something to mount the drive at startup?
You need to mount your drive at startup. It's very easy to setup.
-Plug in your drive and then startup your system and get to the console. -type: 'ls -laF /dev/disk/by-uuid' and press 'enter'.
The first couple of lines will be the sd card partitions, after that, you will see something like 'lrwxrwxrwx 1 root root 9 Jan 1 1970 6060A74A60A725AE -> ../../sda'. In this case '6060A74A60A725AE' is the UUID of my drive (yours will be different).
-Save the the UUID number.
-type: 'sudo nano /etc/fstab' and press 'enter'.
This is the file that is read by mount at boot. Add a new line for your device, here is an example:
-quit and save fstab. -type: 'sudo mount -a' to mount everything listed in fstab (or you can reboot).
your drive should now be mounted to '/home/pi/roms' and if you set up your file structure the same as what is in the pimame roms folder, then you wont need to edit any of the config files or create any symlink's.
Additional notes: -You may need to change the owner settings with 'chown'. -If your drive is formatted to a different filesystem type, you need to change that in your fstab entry. If you want to use ntfs (so that your drive is also windows compatible), you have to download a driver. -If you want to mount your drive somewhere else or your file structure is different, you may want to look into using symlink's (symbolic links) to direct your system to the correct locations. -You can also download 'usbmount' by typing: ‘sudo apt-get install usbmount’, 'enter', 'y', 'enter'; then edit the configuration file to tell it where to mount.
You may need to change ownership/access permissions via fstab. I had this problem with mine (I figured that it was just because I used ntfs format). To do this, You need to use dmask and users in the options column. This is my fstab entry for the drive containing my roms:
notice 'user', rather than 'users'. This allows ANY user to mount a drive, but implies noexec, nosuid, nodev, unless overridden. So we add the rw (to add read write privileges), then a directory-mask of 000 to give full rights.
I was able to get it to work by changing fstab entry to mount the drive to /media/usbhdd and then adjust the mame config file to have the roms location entry be to /media/usbhdd/mame4all.