muldjord / skyscraper

Powerful and versatile game scraper written in c++
GNU General Public License v3.0
479 stars 127 forks source link

Add support for multi-disk titles for Pegasus Frontend #232

Open igno2k opened 4 years ago

igno2k commented 4 years ago

Describe the feature / request At the moment there will be an entry in the file metadata.pegasus.txt for every file found by Skyscraper. Pegasus supports grouping multi-disk titles in one entry like this:

game: files: <game name disc 1.chd> <game name disc 2.chd> ...

It would be great to recognize multi-disk titles by default, fetch metadata only once and group them accordingly in the metadata file.

muldjord commented 4 years ago

It's a pretty good idea. The other frontends could probably benefit from this as well. I'll add it to the roadmap.

spilinek commented 4 years ago

Have you tried using a .m3u file instead? I've been able to do the following in attractmode, but I assume it would work with other frontends.

In the roms directory create game name subdirectory. Move the .chd files into the game name subdirectory. In the roms directory create game name.m3u with the contents:

/fullPathToRoms/game name/game name disc 1.chd /fullPathToRoms/game name/game name disc 2.chd

In your Skyscraper config.ini add setting for this platform to ignore the subdirectory: subdirs="false"

You may also need to add you your config.ini support for the .m3u extension. I had to add this to the dreamcast and gamecube platforms: *addExtensions=".m3u"**

With this configuration I only see one game entry in the gameslist for the .m3u file. The .chd files are not in the gamelist since I've disabled subdirectories.

johncip commented 2 years ago

Here's how I do this currently. I haven't tested how memory card saves work with this setup.

(@spilinek's suggestion got me on the right path, but that emulator core requires the m3u files to be in the same folder as the data files.)

I'm running skyscraper, pegasus-frontend, retroarch, and, for this example, the pscx2 core.


Partial skyscraper config.ini:

[ps2]
inputFolder="/home/john/roms/ps2"
emulator="/usr/bin/retroarch -L /usr/lib/libretro/pcsx2_libretro.so \"{file.path}\""
extensions="*.iso *.m3u"
excludeFiles="disc*"
subdirs="true"

Under ~/roms/ps2, which is where I keep my PS2 ISOs, I also have subfolder for a multi-disc game.

Files in ~/roms/ps2/Star Ocean - Till the End of Time (USA):


Full contents of Star Ocean - Till the End of Time (USA).m3u:

disc1.iso
disc2.iso

...and that does what I want.

Subfolders are on, m3u files are included, but anything named disc... gets ignored. So as long as I name the multi-disc game ISO files that way, only the m3u file will be seen by skyscraper.

(And retroarch+pscx2 won't crash, because the m3u and iso files are in the same folder.)