How To Share Roms (between emulators)


christo930

Well-Known Member
Joined
Jan 4, 2004
Messages
1,095
Location
Pennsylvania, USA
How do you create a "shortcut" or "alias" to share roms on a sd card? I want to have 2 different version of mame on one card and share the roms folder. On a pc or a mac it's easy to do via an alias or a shortcut. I think it's called a symbolic link in unix but I don't know how to create one especially from a windows machine.
This would also be useful with emulators that don't allow you to select the rom directory.
Any help would be appreciated.

Chris
 
if it's supported on the GP2X type:

cd /mnt/sd/game/mame2
ln -s /mnt/sd/game/mame1/roms

That should generate a symbolic /mnt/sd/game/mame2/roms --> ../mame1/roms
 
Orkie said:
FAT32 (which nearly everybody uses on SD) doesn't support symlinks.
Actually it does. A symlink is really just a file, as everything on UNIX is a file. You need to mount it on a *nix box to create the symlinks though...
 
Last edited by a moderator:
Actually, it doesn't - not unless you use UMSDOS.

QUOTE

adan@adan-desktop:/media/disk-1$ touch test
adan@adan-desktop:/media/disk-1$ ln -s test pie
ln: creating symbolic link `pie' to `test': Operation not permitted



After a bit of thought, you could however make a 'copy' of the directory using "mount --bind /mnt/sd/source /mnt/sd/dest".
 
BUMP!

im a new gp2x user, i have the same problem as the guy who started this topic, what i want to do is make a kind of rom folder and link all emulators to this one folder... i know there are some answers here in this post but i do not have a fucking scooby doo what the answers mean... can someone PLEASE give me an idiots guide how to do this for us mere mortals, i just want old school gaming thats all i ask!!! IM NOT A BAD MAN!!

any help would be great!!
 
the beef said:
im a new gp2x user, i have the same problem as the guy who started this topic, what i want to do is make a kind of rom folder and link all emulators to this one folder...
Well, it comes down to what Orkie said, as I understand it. Though I've never done this, so I could be wrong - just so you know. NB also that most emus are quite happy with any directory for their rom dir; the convention was established early on to use sd:\\roms\systemname as the directory most used. Most emus either start looking there, or will remember it if you load something from there. So Picodrive will quite hapilly remember your roms are in sd:\\roms\genesis or wherever they are. Just load the first one.

Note, though, that since most emulators use zipped rom files, having one directory for all of them would get confusing, since there's no way the emu could distinguish between a zipped GBA game and a zipped SNES game. Hence using system names as well.

However, that's the simple way, and only works if the emu lets you decide where you want your roms (mostly the case, but not so in a few important instances). The next bit will tell you how to share a romset between two recalcitrant emulators. So let's take a look at what Orkie said.

Orkie said:
After a bit of thought, you could however make a 'copy' of the directory using "mount --bind /mnt/sd/source /mnt/sd/dest".
First step is to make sure you have something better than notepad to edit .txt files with. Notepad adds extra invisible characters to the end of each line, which confuses the hell out of unix. I use Metapad, others prefer Notepad++. They're both fine. I think using edit in a command prompt would probably work, too, but for all that that's already there, let's minimise command prompt stuff for now.

Second is to find out the directory on the SD card where each emulator expects to find it's roms. Check the readme files that are probably in the .zip or .rar archive you downloaded of that emu. Let's imagine that each one uses a subdirectory called roms in it's own directory, and that you're installing, say, two copies of mame, for the sake of argument mame1 and mame2. Also work out where you actually want the roms, and note down the .gpe files that you run to run each emu. Let's assume for now you want them in roms\mame . So, so far, we know that:

- Mame1 is in sd:\\mame1 and looks for roms in sd:\\mame1\roms, and is run with mame.gpe
- Mame2 is in sd:\\mame2 and looks for roms in sd:\\mame2\roms, and is run with mame.gpe
- You want your roms in sd:\\roms\mame

Unzip each copy of mame wherever you want it. Rename both copies of "mame.gpe" to "mame" (minus quotes). Linux doesn't care about file extentions, so it'll confuse you less later if there are fewer executables to choose from.

Next, open your text editor and type the following:

CODE
mount --bind /mnt/sd/roms/mame /mnt/sd/mame1/roms
mame


And save it as mame1.gpe. Edit the line /mnt/sd/mame1/roms to /mnt/sd/mame2/roms and save as mame2.gpe. Copy the respective gpe files to their directories. Run as usual.

With any luck each instance will end up seeing the rom dir which is held elsewhere as present in their own install directories :). This won't leave your SD card properly tidy, though, when you finish with mame, and it's conceivable you'll get an error if you load it, quit, then load it again (because the rom directory is *already* mounted where you're telling Linux to mount it again), but hey, I can't see how to unbind a directory double-mounted in this way. Should work in principle, though, assuming Orkie's command is valid :).
 
Last edited by a moderator:
Back
Top