VMManager/QT/FSUI: Basic .m3u playlist support#14271
VMManager/QT/FSUI: Basic .m3u playlist support#14271nfriedly wants to merge 3 commits intoPCSX2:masterfrom
Conversation
There was a problem hiding this comment.
Thank you for submitting a contribution to PCSX2
As this is your first pull request, please be aware of the contributing guidelines.
Additionally, as per recent changes in GitHub Actions, your pull request will need to be approved by a maintainer before GitHub Actions can run against it. You can find more information about this change here.
Please be patient until this happens. In the meantime if you'd like to confirm the builds are passing, you have the option of opening a PR on your own fork, just make sure your fork's master branch is up to date!
When loading a .m3u playlist, parse the list and load the first file instead.
I did a search for online saves and found some that might work, such as this one for Xenosaga 3: https://hippyj3.blogspot.com/2019/09/pcsx2-full-save-collection-xenosaga.html I'm sure other files are available on that site or other sites for disc-2 saves for various games that could be used for testing. (I am not affiliated with that site. I have never heard of it until today. It was among the top search results when I searched for save files for PS2 games that had multiple discs.) |
If a .m3u file was opened, Change Disc now opens a sub menu with the entries from the playlist and an option to open the file browser. If there wasn't a .m3u playlist, it just opens the file browser directly as before.
|
I tried to test this but I couldn't get the game list to show the game in my .m3u file. Maybe I didn't format the contents of the .m3u file correctly? I'm not sure what I'm doing wrong. Is there some setting I have to enable? Could you perhaps provide an example .m3u file or instructions on how to get a playlist to show up in the game list? I downloaded the latest Windows build from here: https://github.com/nfriedly/pcsx2/actions There seem to be 6 different versions to download there, and I'm not sure what the difference between them all is. Maybe I downloaded the wrong one? |
Do you mean the main window that shows up when you open PCSX2? I haven't added support for that. Instead, go to System -> Start File, then select your .m3u file in the file browser and it should launch the first disc. (It should also work if you right-click a .m3u file and choose Open with, and then find the build of PCSX2.)
If your files are Xenosaga Episode III - Also Sprach Zarathustra (Disc 1).chd
Xenosaga Episode III - Also Sprach Zarathustra (Disc 2).chdThen save it as
TBH, I'm not sure why there are so many different versions. Maybe for compatibility with older computers? I've just been using the top one. |
Description of Changes
This gives PCSX2 the ability to parse .m3u files for multidisc games when opening via the System -> Start File menu. It automatically loads the first disc, and lists all discs in the System -> Change Disc menu as well as in a new FullscreenUI submenu that Change Disc opens when the current disc was launched from an .m3u file. (When not launched from a .m3u file, the FSUI Change Disc option opens the file browser as before.)
I'm not happy with how the new FSUI menu cuts off the file names, so I might have one more commit to widen it if I can figure out how.
Rationale behind Changes
I want this for Batocera, where .m3u files are the correct way to group multidisc games.
Fixes #6696
Suggested Testing Steps
I tested a Windows build, both via the System -> Start File menu in PCSX2, and by right-clicking a .m3u file in explorer and choosing Open with, then finding the executable for my modified pcsx2 build.
I tested the second commit by switching discs a few times.
I have not yet tested it in Batocera, but I think it will work.
I have also not yet tested how it handles save states where your on a subsequent disc. I'm moderately concerned that the "just load the first disk" behavior I chose could cause trouble there. (I don't have any save files beyond the first disk of any multidisc games.)
Did you use AI to help find, test, or implement this issue or feature?
Yes, I had copilot plan this out, then I tweaked the plan a bit, then had it implement it. I reviewed the code and made a few changes.
Future work
I think these ideas would make sense, but I'm not not planning on adding them in this PR: