flyinghead / flycast

Flycast is a multiplatform Sega Dreamcast, Naomi, Naomi 2 and Atomiswave emulator
GNU General Public License v2.0
1.36k stars 167 forks source link

Feature Request: Support loading multi-disc games with m3u files #423

Open orbea opened 2 years ago

orbea commented 2 years ago

Is your feature request related to a problem? Please describe. Can .m3u files be supported for multi-disc games?

Describe the solution you'd like In other emulators (mednafen) for consoles that have multi-disc games the standard way of loading these games are plain text .m3u files. While perhaps it should not be required, it would be nice if it worked with flycast too.

For example in mednafen.

$ ls Koudelka (USA) (Disc 1).bin Koudelka (USA) (Disc 2).bin Koudelka (USA) (Disc 3).bin Koudelka (USA) (Disc 4).bin Koudelka (USA).m3u Koudelka (USA) (Disc 1).cue Koudelka (USA) (Disc 2).cue Koudelka (USA) (Disc 3).cue Koudelka (USA) (Disc 4).cue

$ cat Koudelka\ (USA).m3u ./Koudelka (USA) (Disc 1).cue ./Koudelka (USA) (Disc 2).cue ./Koudelka (USA) (Disc 3).cue ./Koudelka (USA) (Disc 4).cue

And with flycast it could be useful in a case like this.

$ ls Skies of Arcadia (USA) (Disc 1).cue Skies of Arcadia (USA) (Disc 1) (Track 3).bin Skies of Arcadia (USA) (Disc 2) (Track 2).bin Skies of Arcadia (USA) (Disc 1) (Track 1).bin Skies of Arcadia (USA) (Disc 2).cue Skies of Arcadia (USA) (Disc 2) (Track 3).bin Skies of Arcadia (USA) (Disc 1) (Track 2).bin Skies of Arcadia (USA) (Disc 2) (Track 1).bin Skies of Arcadia (USA).m3u

$ cat Skies\ of\ Arcadia\ (USA).m3u ./Skies of Arcadia (USA) (Disc 1).cue ./Skies of Arcadia (USA) (Disc 2).cue

And then I would be able to start the game.

flycast 'Skies of Arcadia (USA).m3u'

Describe alternatives you've considered What is the intended way of loading multi-disc games with flycast? I haven't found much documentation, but maybe I am just looking in the wrong place.

adamsbuilds commented 1 year ago

I think this is the single most important thing that is missing from flycast. Is it considered to be added? If not liberto core is my only option

cinnamonmatexfce commented 1 year ago

I think this is the single most important thing that is missing from flycast. Is it considered to be added? If not liberto core is my only option

You know you can swap discs from the Flycast quick menu (open it pressing TAB - by default - on the keyboard)?

flyinghead commented 1 year ago

This feature request has low priority because it's not blocking. You can eject the current disk and select a different one as cinnamonmatexfce said. Supporting .m3u would require additional UI to be able to switch to the next/previous disk in the list.

orbea commented 1 year ago

Supporting .m3u would require additional UI to be able to switch to the next/previous disk in the list.

At minimum would be two keybinds, the first to eject/insert and the second to select the next disc.

adamsbuilds commented 1 year ago

Yes but this isn't really practical in situations not involving a mouse and keyboard. For example I use batocera.linux where everything is with a controller. And most the other disc based emulators have adopted this.. dolphin even has a method of automatically switching discs while others simply have some type of key combination required. I would recommend dolphins approach because it's pretty dang amazing. So for me, using batocera, the liberto core is my best option as RetroArch can control the disc swap method pretty well. Unfortunately that's a pretty big downgrade in comparison to the standalone. In any case, would love to see the similar added to the standalone (.m3u support, preferably auto disc swap like dolphin)

flyinghead commented 1 year ago

You can switch disc with a controller. You don't need a mouse or keyboard.

adamsbuilds commented 1 year ago

Elaborate please. If it can't load an m3u files how can it swap "tracks/disc" without loading an entirely new rom manually. In my case loading from emulation station doesn't seem very practical. Wouldn't an m3u method of loading all discs be better ui?

On Sun, Sep 25, 2022, 11:09 AM flyinghead @.***> wrote:

You can switch disc with a controller. You don't need a mouse or keyboard.

— Reply to this email directly, view it on GitHub https://github.com/flyinghead/flycast/issues/423#issuecomment-1257225685, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOUFVBYYICFJWPMT3DSO3TDWAB2NDANCNFSM5I4HQGHQ . You are receiving this because you commented.Message ID: @.***>

flyinghead commented 1 year ago

When you want to switch disc, pause the game with the Menu button and select Eject Disk: image Then pause the game again with the same button and select Insert Disk: image

adamsbuilds commented 1 year ago

Thank you for the response I will mess around with it and see if I can find a method to work for my application. Or maybe just use the liberto core for multi disc games only and use the standalone for everything else . This is what I currently do out of emulation station. Thanks for the great work on this emulator to anyone involved. Do you forsee further upgraded support of multidisc based games in flycast in the future?

On Sun, Sep 25, 2022, 11:25 AM flyinghead @.***> wrote:

When you want to switch disc, pause the game with the Menu button and select Eject Disk: [image: image] https://user-images.githubusercontent.com/16261910/192154228-70a9ed55-9d43-46eb-a20e-b684afa8e026.png Then pause the game again with the same button and select Insert Disk: [image: image] https://user-images.githubusercontent.com/16261910/192154266-3a65f36e-3f20-4c74-8b3b-65bbf1fc2cc3.png

— Reply to this email directly, view it on GitHub https://github.com/flyinghead/flycast/issues/423#issuecomment-1257228765, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOUFVB5FNMQMVCC3AXQ374LWAB4JLANCNFSM5I4HQGHQ . You are receiving this because you commented.Message ID: @.***>

roguesaloon commented 1 year ago

On a steam deck here (using the flatpak version) and I would also really love to see native M3U support. The issue for me isn't about not being able to switch discs when required, but about selecting the discs with a single file/shortcut per-game.

Steam Rom Manager gets confused if you have duplicates, so you put the multi-discs (chd's/cdi's) in a sub-folder to hide them, you also want to keep the game in the roms folder which is where an M3U comes in (To tell it where to find both discs). Right now, this partially works for SRM with the caveat that flycast doesn't know what to do with the M3U, so you have to edit the steam shortcut manually to point to disc 1 and change this again to disc 2 manually when required, but then this'll break a further import with Steam Rom Manager (It'll create a duplicate).

If Flycast had an in-emulator concept of a multiple disc games from a single file (typically an M3U file), and let you launch the last opened disc for a game from there, it eliminates the issue entirely. Otherwise, you effectively need two shortcuts for the game.

SixWingedFreak commented 10 months ago

+1 For m3u support. I use m3u files in LaunchBox for multi-disc games so that I don't have two to four instances of the same game with "Disc X" at the end. Looks a lot prettier. Adjust the UI so it retains Eject Disk/Insert Disc on the same button as you have it, then add Previous Disk and Next Disk but are greyed out when it loads a file that's not m3u. A sample m3u of mine looks like this:

Alone in the Dark - The New Nightmare (USA) (Disc 1).chd Alone in the Dark - The New Nightmare (USA) (Disc 2).chd

KoB-Kirito commented 8 months ago

+1 I'm on JELOS (RGB30) and flycast just exits when you eject a disc.

Edit: Ah got it "working" at once, but you can't select or do anything on the insert disc screen. Actually I'm so stuck here I have to reset the system. image

flyinghead commented 8 months ago

You need to add content folders so that Flycast can find your disks.

byjove01 commented 3 months ago

I just want to bring my support to that feature. It would be really something to be able to load multi-disc games without using the UI to eject/re-insert disk images.